使用自定义身份验证提供程序

时间:2016-04-19 17:45:47

标签: spring authentication cookies spring-security single-sign-on

我目前正在使用Spring Security 3.2.5。我编写了一个CustomAuthenticationProvider,它使用外部登录服务检查user / pass是否正确,然后使用principal,pass和details创建Authentication(此Details部分是我们用户实体的POJO)。它还会生成一个SingleSignOn令牌并使用它创建一个cookie,因此它可以使用此cookie在环境的每个其他应用程序上“自动登录”。

我想知道如何实现这一目标。我可以通过在每个应用程序的登录页面上调用“自动登录”方法来执行此操作,该方法将调用我们的登录服务并检查令牌是否有效。如果有效,则手动创建Authentication对象。但我试图尽可能地与Spring Security集成,所以这是我的最后一个选择。

我已经阅读了很多关于如何轻松实现“记住我”的文档(即http://docs.spring.io/spring-security/site/docs/3.2.5.RELEASE/reference/htmlsingle/#remember-me),但我们的令牌是以不同的方式生成的(所以我只是不能简单地使用基于哈希的令牌)方法)也不访问数据库,因为我必须使用内部服务。

所以,基本上,我需要创建一个过滤器,如果用户未经过身份验证,则会读取cookie并检查令牌是否有效;如果是,请登录;否则,忽略cookie(或删除它)并让正常登录(通过我的自定义身份验证提供程序),但我不知道如何完成它。

我应该写一个过滤器吗?实现一个接口?

请,我需要一些指导。

0 个答案:

没有答案