从自定义应用生成群组SSO令牌

时间:2016-04-01 10:12:51

标签: single-sign-on atlassian-plugin-sdk atlassian-crowd

如果我可以使用此令牌登录人群,我怎样才能在人群登录(通过休息服务)后生成SSO令牌? 我的意思是我用

crowdClient.authenticateUser(...)

之后

crowdClient.authenticateSSOUser 

使用相同的凭据(我以相反的顺序尝试)

我将此令牌存储在crowd.token_key会话变量中,但Crowd不通过此令牌验证我。

但如果我首先登录人群,我的应用会识别此标记。

我认为它应该取决于ValidationFactor,但我不知道应该使用哪个。

1 个答案:

答案 0 :(得分:0)

我在CROWD源代码中找到了解决方案。您需要使用下一个验证因子生成令牌:

 List<ValidationFactor> validationFactors = new ArrayList<>();
 validationFactors.add(new ValidationFactor(ValidationFactor.REMOTE_ADDRESS, request.getRemoteAddr()));
 String remoteAddressXForwardFor = request.getHeader(ValidationFactor.X_FORWARDED_FOR);
 if (remoteAddressXForwardFor != null && !remoteAddressXForwardFor.equals(request.getRemoteAddr())) {
     validationFactors.add(new ValidationFactor(ValidationFactor.X_FORWARDED_FOR, remoteAddressXForwardFor));
 }