【发布时间】:2015-07-21 15:38:17
【问题描述】:
我无法通过使用 WSO2 API 管理器 1.9.0 的自定义身份验证器来保留自定义声明。对于上下文,我一直在尝试模拟 custom twitter authenticator 并使用 JWT 将声明传递给我们的后端。
身份验证器如下所示:
@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 中找到的默认 wso2 声明中添加了 http://wso2.org/claims/myCustomClaim
检查在 {APIM_HOME}/repository/database/WSO2CARBON_DB 和 {APIM_HOME}/repository/database/WSO2AM_DB 找到的两个 h2 数据库我无法找到“some_value”得到持久化(即使我只是 grep {APIM_HOME “some_value”的 } 目录。
是否需要一些额外的配置才能完成这项工作?
【问题讨论】: