繁体   English   中英

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

[英]configuring WSO2 API manager custom authenticator and claims

我无法使用WSO2 API管理器1.9.0通过定制身份验证器坚持定制声明。 对于上下文,我一直在尝试模拟自定义Twitter身份验证器,并使用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/myCustomClaim中的默认wso2声明中http://wso2.org/claims

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

要进行此工作是否需要一些其他配置?

不知道这是否是原因,但是我发现了有关索赔的以下内容: https : //wso2.org/jira/browse/IDENTITY-3016

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

可能AM 1.9落后于IS 5.0吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM