我在本地代码中新建了一个接口, 现在需要本地启动开发环境并使用postman验证该接口, 但是现在遇到一个问题是不知从何处取Jwt_Token, 导致接口验证报401未授权错误. 我本地是没有启动任何前端代码的, 请问我该如何从纯后端的角度去获取Jwt_Token?
package io.choerodon.iam;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.security.jwt.JwtHelper;
import org.springframework.security.jwt.crypto.sign.MacSigner;
import org.springframework.security.jwt.crypto.sign.Signer;
import io.choerodon.core.oauth.CustomUserDetails;
public class JwtGenerator {
public static void main(String[] args) throws JsonProcessingException {
CustomUserDetails details = new CustomUserDetails(“admin”, “”, Collections.emptyList());
details.setUserId(16968L);
details.setLanguage(“zh_CN”);
details.setTimeZone(“CTT”);
details.setTenantId(0L);
details.setRoleId(2389L);
details.setRoleMergeFlag(true);
List setRoleIds=new ArrayList<>();
setRoleIds.add(2388L);
details.setSiteRoleIds(setRoleIds);
List tenantRoleIds=new ArrayList<>();
tenantRoleIds.add(2389L);
details.setTenantRoleIds(tenantRoleIds);
details.setEmail("hand@hand-china.com");
details.setOrganizationId(0L);
ObjectMapper objectMapper = new ObjectMapper();
Signer jwtSigner = new MacSigner("hzero");
String token = objectMapper.writeValueAsString(details);
String jwt = "Bearer " +JwtHelper.encode(token, jwtSigner).getEncoded();
System.out.println(jwt);
}
}
我试过了, 以前有人发帖也是问jwt_token的问题, 我按照回答人员贴出来的图去生成之后, 调用接口提示invalid jwt token
我也尝试过使用项目配置文件里的jwt密钥以及payload改为自己的请求体信息, 依然还是invalid
用上面那个代码生成
我在本地启动iam之后执行那个代码没有效果, 看了下代码创建用户或者角色都会进行当前登录用户的校验, 而且是写在jar包里的没法注释, 这该怎么处理?