單點登錄CAS使用記(六):單點登出、單點註銷

單點登出基本上沒有啥配置

直接在原來logout的時候,重定向到Cas-Server的logout方法

複製代碼
    @RequestSecurity
    @RequestMapping(value = "loginout", method = { RequestMethod.GET,
            RequestMethod.POST })
    public String loginout(HttpSession session)
    {
        session.invalidate();
        return "redirect:https://demo.testcas.com/cas-server/logout";
    }
複製代碼

但是這樣的話,logout後,最終會停留在這個頁面上

一般這不是我們想要的。

我想要的是,一旦用戶登出,重新回到登錄頁面。

那麼重新修改原有項目的logout方法,如下:

複製代碼
    @RequestSecurity
    @RequestMapping(value = "loginout", method = { RequestMethod.GET,
            RequestMethod.POST })
    public String loginout(HttpSession session)
    {
        session.invalidate();
        return "redirect:https://demo.testcas.com/cas-server/logout?service=https://demo.testcas.com/cas-server/login";
    }
複製代碼

加上了一個Service後綴,並且指定了一個URL,意思是成功logout後,想要回到哪個頁面。

然後,在Cas-Server項目的cas-servlet.xml中,找到

複製代碼
    <bean id="logoutController" class="org.jasig.cas.web.LogoutController"
        p:centralAuthenticationService-ref="centralAuthenticationService"
        p:logoutView="casLogoutView"
        p:followServiceRedirects="true"
        p:warnCookieGenerator-ref="warnCookieGenerator"
        p:ticketGrantingTicketCookieGenerator-ref="ticketGrantingTicketCookieGenerator" />
複製代碼

加上這麼一個屬性: p:followServiceRedirects="true"

意思是:成功Logout後,如果包含Service參數,則重定向到Service指定的網址。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章