WSO2 2.6.0升级至4.1.0后APIMgtGatewayJWTGeneratorImpl获取UserType问题
WSO2 APIM 2.6.0 升级到4.1.0:JWT生成相关问题解答
1. 如何在APIMgtGatewayJWTGeneratorImpl中获取UserType字段?
你可以从JWTInfoDto对象的jwtValidationInfo属性的claims集合中提取aut字段值,这个字段对应旧版本的UserType。示例代码如下:
String userType = jwtInfoDto.getJwtValidationInfo().getClaims().get("aut");
2. 为什么APIMgtGatewayJWTGeneratorImpl中硬编码claims.put(dialect + "usertype", "Application_User")?
这是WSO2 APIM 4.x版本网关JWT生成器的默认实现逻辑,默认将usertype固定为"Application_User"。如果需要适配你的业务场景,你可以自定义类继承APIMgtGatewayJWTGeneratorImpl,重写generateToken方法,替换硬编码逻辑,改为从jwtValidationInfo的claims中读取aut字段值来设置usertype。
3. "aut"字段是否等价于旧版本JWTGenerator中context.getUserType()的返回值?
是的,二者等价。旧版本TokenValidationContext.getUserType()返回的是UserType枚举值(比如UserType.APPLICATION、UserType.USER),新版本中对应的就是jwtValidationInfo的claims里的aut字段字符串值(比如"APPLICATION"、"USER"),可以直接用这个字段替代旧的UserType逻辑。
内容的提问来源于stack exchange,提问作者Yaroslav
相关产品推荐
相关产品推荐

