配置WSO2 API管理器自定义身份验证器和声明

时间:2015-07-21 15:38:17

标签: java wso2 wso2is wso2-am

我无法使用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/myCustomClaim添加到http://wso2.org/claims

中的默认wso2声明中

检查数据库在{APIM_HOME} / repository / database / WSO2CARBON_DB和{APIM_HOME} / repository / database / WSO2AM_DB中找到的两个h2数据库我无法找到&#34; some_value&#34;得到持久化(即使我只是为#34; some_value&#34; grep {APIM_HOME}目录。

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

1 个答案:

答案 0 :(得分:0)

不确定是不是原因,但我发现以下有关索赔: heredoc

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

可能是AM 1.9落后于IS 5.0?