(Grails插件)Spring Security Single Signout

时间:2014-08-04 20:13:25

标签: grails spring-security spring-security-cas

我正在尝试了解Spring Security如何处理单点登录。我正在使用带有多个Grails应用程序的CAS服务器。这是我的情景:

App#1&登录

  1. 用户导航到Grails应用#1。
  2. app#1没有User的身份验证数据,并检查CAS服务器。 CAS服务器没有用户的cookie数据,因此CAS会提示用户登录。
  3. 用户登录CAS并获取有效票证。用户将从步骤1重定向回应用程序#1 URL。
  4. 在身份验证后的第一个请求中,app#1将CAS票证加载到其SecurityContextHolder中。后续请求使用故障单数据来验证用户是否已通过身份验证。
  5. App#2&注销

    1. 用户导航到Grails app#2。
    2. app#2没有用户的身份验证数据,并检查CAS服务器。 CAS服务器具有用户的cookie数据,并使用此数据对用户进行身份验证。
    3. 在身份验证后的第一个请求中,app#2将CAS票证加载到其SecurityContextHolder中。后续请求使用故障单数据来验证用户是否已通过身份验证。
    4. 注销

      1. 用户通过点击app#2的注销页面退出应用#2。 app#2不再有用户数据存储在SecurityContextHolder中。
      2. 用户被重定向到CAS服务器注销页面。 CAS不再拥有用户的有效票证。
      3. 对应用#2的后续(受保护)请求会将用户重定向到CAS登录页面。
      4. 由于app#1在其SecurityContextHolder中仍有CAS票据数据,因此对app#1的后续(受保护)请求不会将用户重定向到登录。上下文必须以某种方式清除或过期。
      5. 我应该如何阻止用户访问应用#1中受保护的网址?我可以为SecurityContextHolder设置过期日期吗?

0 个答案:

没有答案