【问题标题】:CAS Single Sign Out requests being ignored by JSP+SpringCAS Single Sign Out 请求被 JSP+Spring 忽略
【发布时间】:2010-11-17 09:14:16
【问题描述】:

我已经为我的 Spring+JSP webapp 的单点登录设置了 CAS,但现在我发现单点注销实际上并没有让我退出应用程序。我已经确认,如果我转到 CAS 注销页面,我会收到来自 CAS 的 SAMLP 注销请求。但是,当我返回应用程序中的安全页面时,我无需重新登录 CAS 即可进入。如果我转到本地应用程序注销页面 (/j_spring_security_logout),我将被注销并立即重定向到 CAS 登录页面。

简而言之,本地应用似乎没有注册来自 CAS 的注销请求并调用自己的注销过程。

这是我的 web.xml

的 CAS 部分
<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<filter>
    <filter-name>CAS Single Sign Out Filter</filter-name>
    <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>CAS Single Sign Out Filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
    <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>

<filter>
    <filter-name>CAS Authentication Filter</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    <init-param>
        <param-name>targetBeanName</param-name>
        <param-value>authenticationFilter</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>CAS Authentication Filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<filter>
    <filter-name>CAS Ticket Validation Filter</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    <init-param>
        <param-name>targetBeanName</param-name>
        <param-value>ticketValidationFilter</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>CAS Ticket Validation Filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<filter>
    <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
    <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
</filter>

<filter>
    <filter-name>CAS Assertion Thread Local Filter</filter-name>
    <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>
</filter>

我是否需要创建一个特定的 CAS bean 来处理我的 applicationContext.xml 文件中的注销?还是完全通过web.xml文件配置?

【问题讨论】:

    标签: spring jsp single-sign-on cas


    【解决方案1】:

    当您调试 SingleSignOutFilter 时,它是否会使用户会话无效?也许 CAS 令牌被保存在其中,或者保存在 SecurityContextHolder 中,因此它不会要求新的登录。我有类似的问题,很抱歉不能完全理解 SS + CAS。

    【讨论】:

      猜你喜欢
      • 2016-11-18
      • 2012-02-23
      • 1970-01-01
      • 2014-04-28
      • 2020-05-07
      • 2018-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多