Quantcast
Channel: IT社区推荐资讯 - ITIndex.net
Viewing all articles
Browse latest Browse all 15843

(转) 让CAS退出后返回指定的页面

$
0
0

参考:

1)  http://my.so-net.net.tw/tzuyichao/misc/forfun.cas.04.html

2)  http://www.iteye.com/topic/1115922

 

------------------------------------------------------------------------------------------------------------------

CAS退出默认是转向CAS内置的退出页面,在实际应用中需要跳转到自己指定的页面。退出转向决定于org.jasig.cas.web.LogoutController,我们看一下原代码。

 

Java代码   收藏代码
  1. protected ModelAndView handleRequestInternal(  
  2.     final HttpServletRequest request, final HttpServletResponse response)  
  3.     throws Exception {  
  4.     final String ticketGrantingTicketId = this.ticketGrantingTicketCookieGenerator.retrieveCookieValue(request);  
  5.     final String service = request.getParameter("service");  
  6.   
  7.     if (ticketGrantingTicketId != null) {  
  8.         this.centralAuthenticationService  
  9.             .destroyTicketGrantingTicket(ticketGrantingTicketId);  
  10.   
  11.         this.ticketGrantingTicketCookieGenerator.removeCookie(response);  
  12.         this.warnCookieGenerator.removeCookie(response);  
  13.     }  
  14.   
  15.     if (this.followServiceRedirects && service != null) {  
  16.         return new ModelAndView(new RedirectView(service));  
  17.     }  
  18.   
  19.     return new ModelAndView(this.logoutView);  
  20. }  

 

 可以看出,当this.followServiceRedirects && service != null时才会跳转到自己指定的view,service应该都比较熟悉了,它是客户传的参数,

指定cas中心转向哪里,但我们仅仅传service 还是不行的,还需要把followServiceRedirects属性设为true,下面看看如何修改这个属性

 

修改cas-servlet.xml配置文件中的logoutController,新增属性p:followServiceRedirects="true",修改后如下:

 

Xml代码   收藏代码
  1. <bean id="logoutController" class="org.jasig.cas.web.LogoutController"  
  2.     p:centralAuthenticationService-ref="centralAuthenticationService"  
  3.     p:logoutView="casLogoutView"  
  4.     p:followServiceRedirects="true"  
  5.     p:warnCookieGenerator-ref="warnCookieGenerator"  
  6.     p:ticketGrantingTicketCookieGenerator-ref="ticketGrantingTicketCookieGenerator" />  

 

 

 

<bean  id="logoutController"  class="org.jasig.cas.web.LogoutController"
206    p:centralAuthenticationService-ref="centralAuthenticationService"
207    p:logoutView="casLogoutView"
208    p:warnCookieGenerator-ref="warnCookieGenerator"
209    p:ticketGrantingTicketCookieGenerator-ref="ticketGrantingTicketCookieGenerator"  >
210        <property  name="followServiceRedirects"  value="true"  />
211

</bean>

 

退出页面如下所示

1<a  href=" https://localhost:8443/cas/logout?service=http://app:8080/app">Logout</a>


已有 0人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐




Viewing all articles
Browse latest Browse all 15843

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>