java - 配置 WSO2 API 管理器自定义身份 validator 和声明

标签 java wso2 wso2-api-manager wso2-identity-server

我无法使用 WSO2 API 管理器 1.9.0 通过自定义身份 validator 保留自定义声明。对于上下文,我一直在尝试模拟 custom twitter authenticator并使用 JWT 将声明传递到我们的后端.

validator 如下所示:

@Override
protected void processAuthenticationResponse(HttpServletRequest request, HttpServletResponse response, AuthenticationContext context) {
   String username = (String) request.getAttribute("userName");
   //authenticate 
   
   //try to persist claims
   context.setSubject(username);
   Map<ClaimMapping, String> claims = new HashMap<ClaimMapping, String>();
   claims.put(ClaimMapping.build("http://wso2.org/claims/myCustomClaim",     
         "http://wso2.org/claims/myCustomClaim", null, false), "some_value");

   context.setSubjectAttributes(claims);
}

我还将 http://wso2.org/claims/myCustomClaim 添加到 http://wso2.org/claims 中找到的默认 wso2 声明

检查在 {APIM_HOME}/repository/database/WSO2CARBON_DB 和 {APIM_HOME}/repository/database/WSO2AM_DB 中找到的两个 h2 数据库,我无法找到持久保存的“some_value”(即使我只是 grep {APIM_HOME} 目录中的“some_value”。

是否需要一些额外的配置才能使其工作?

最佳答案

不确定这是否是原因,但我发现了以下有关声明的内容: https://wso2.org/jira/browse/IDENTITY-3016

“这在以前是不可能的,因为我们需要从登录用户那里了解租户域。但是从 IS 5.0 开始,这是可能的,因为我们将租户域作为 URL 的一部分发送”。

AM 1.9 可能落后于 IS 5.0 吗?

关于java - 配置 WSO2 API 管理器自定义身份 validator 和声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31543620/

相关文章:

java - 如何从 Android 中的不同 Activity 调用方法

git - 如何使用和理解 wso2 git 存储库?

ssl - WSO2 api 管理器不向 WSO2 DAS(数据分析服务器)发送数据

java - GeoLite2 数据库在添加到 jar 时损坏

java - 正则表达式获取冒号之前和之后的字符串

java - 使用自定义注解

wso2 - WSO2 BAM 的创建小工具

wso2 - wso2 esb 中热部署的自定义中介器

java - PKIX 路径构建失败 : SunCertPathBuilderException: unable to find valid certification path to requested target