2009-08-06 9 views
1

私はSpring + JSP webappでシングルサインオンのCASをセットアップしましたが、今はシングルサインアウトが実際に私をログアウトしていないことがわかりましたアプリケーション。私はCASログアウトページに行くと、CASからSAMLPログアウト要求を受け取ることを確認しました。しかし、アプリのセキュリティ保護されたページに戻ると、私はCASにログインし直さずに入ります。ローカルのアプリログアウトページ(/j_spring_security_logout)に行くと、私はログアウトし、すぐにCASログインページにリダイレクトされます。CASシングルサインアウト要求がJSP + Springで無視される

簡単に言えば、ローカルアプリケーションが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> 

は、私は私のapplicationContext.xmlをファイルでログアウトを処理するために作成された特定のCAS豆が必要ですの?またはweb.xmlファイルで完全に設定されていますか?

答えて

1

SingleSignOutFilterをデバッグすると、ユーザーセッションが無効になりますか?おそらく、CASトークンがSecurityContextHolderに保持されているため、新しいログインを要求しないことがあります。私も同様の問題があり、SS + CASを完全に理解できないのは残念です。

関連する問題