使用Spring Security Core插件的自定义单点登录身份验证服务

时间:2012-11-02 13:40:07

标签: grails spring-security

我正在开发Grails应用程序,并希望与自定义单点登录服务集成(不是CAS,但类似)。我正在努力寻找我需要定制的所有部分才能实现这一目标。有人可以向我解释一下我需要用什么来完成这个工作吗?我已经阅读了插件上的文档,但它假设我知道要覆盖哪些bean以及放置所有需要的文件。

根据我在每个方面的研究,我已经阻止引用了我认为需要做的事情。

运营顺序

1 - 用户请求安全内容(目前应用程序中的所有内容都是安全的)

  

我相信此设置位于Config.groovy文件中:

 grails.plugins.springsecurity.rejectIfNoRule = true
 grails.plugins.springsecurity.securityConfigType = "InterceptUrlMap"
 grails.plugins.springsecurity.interceptUrlMap = [
     '/**':['ROLE_ADMIN']
 ]

2 - Spring Security检查用户是否在身份验证服务提供的cookie中设置了特定值

  

我猜我需要创建一个身份验证过滤器,但我不知道它放在哪里或它应该是什么样的。

  • 如果他们不这样做,用户将被重定向到此自定义SSO服务,他们登录后,一旦通过身份验证,用户就会被重定向回我的应用程序(设置新的cookie)

3 - Spring安全检查cookie值并根据自定义服务验证(通过HTTP POST)

  

从某些研究中,我认为我需要使用PreAuthenticatedProcessingFilter,但我无法找到任何如何做到这一点的例子。

4 - 自定义服务返回一系列名称/值对,然后需要在本地应用程序数据库中创建用户(如果用户的数据,则更新“lastLoggedIn”的时间戳)已经在数据库中)

  

我相信这是在与3号相同的PreAuthenticatedProcessingFilter或GrailsUserDetailsS​​ervice中完成的

5 - 用户的身份验证在会话中缓存一段时间(6-8小时),因此每次用户都不需要对SSO服务进行重新验证请求新资源。

  

我不确定这是否是本身已经完成的事情,或者我是否需要添加代码来执行此操作(并且还设置会话超时)

0 个答案:

没有答案