在cookie中手动存储Crowd SSO令牌?

时间:2012-11-26 17:21:17

标签: single-sign-on atlassian-crowd

我正在尝试使用Atlassian Crowd实施SSO,并且出现了令人惊讶的缺乏良好的文档甚至示例。

到目前为止,我使用 CrowdClient.authenticateSSOUser 对用户进行身份验证,如果成功则返回SSO令牌(字符串)。然后,我将这个令牌自己填入cookie中(通过HttpServletResponse)。在随后的页面访问中,我获取所有cookie,搜索此cookie,然后在其上调用 CrowdClient.validateSSOAuthentication 方法。

我的问题是:我应该在SSO中使用更多的Crowd代码吗?我似乎手动做的比我预期的要多。

......我看到其他可能性的提示......例如:

  1. crowd.properties 中,您可以指定 crowd.token_key ,这显然是应用应该使用的名称将令牌存储在Cookie中(尽管设置这个值并不会神奇地发生这种情况。)

  2. 最新版本中存在类似CrowdHttpTokenHelper的内容 - 但似乎没有容易找到的相关示例(或JavaDoc以外的文档)。

1 个答案:

答案 0 :(得分:1)

是的,有可能有希望帮助或至少作为参考。

对于现成的实现,您可能需要查看Integrating Crowd with Spring Security

如果您需要更好的控制,请使用CrowdHttpAuthenticator。它允许您使用用户名和密码验证请求,以及检查会话是否具有现有会话cookie。 (其concrete implementation将接受属性并使用crowd.token_key。)

如果这些不符合您的需求,

CrowdClient可用,但它不是唯一的选择。