0

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

crowdClient.authenticateUser(...)

在那之后

crowdClient.authenticateSSOUser 

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

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

但是,如果我首先登录人群,我的应用程序会识别此令牌。

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

4

1 回答 1

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));
 }
于 2016-04-04T12:47:31.727 回答