最近做了单点登录,记录一下,参考网上资料
web.xml
<!-- 登录成功后的欢迎页面-->
<welcome-file-list>
<!-- <welcome-file>login1.html</welcome-file> -->
<!-- <welcome-file>index.html</welcome-file> -->
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!--退出-->
<context-param>
<param-name>casServerLogoutUrl</param-name>
<param-value>http://xxx.com/logout</param-value> <!--server cas 地址-->
</context-param>
<context-param>
<param-name>serverName</param-name>
<param-value>http://127.0.0.1:8080</param-value>
</context-param>
<listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>
<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>
<!-- 1.2.1 配置业务系统认证过滤器(必须) -->
<filter>
<filter-name>CAS Authentication Filter</filter-name>
<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
<init-param>
<param-name>casServerLoginUrl</param-name>
<param-value>http://xxx.com</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>127.0.0.1:8080</param-value>
</init-param>
<init-param>
<param-name>renew</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>gateway</param-name>
<param-value>false</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Authentication Filter</filter-name>
<url-pattern>/*</url-pattern> <!-- 服务端验证 -->
</filter-mapping>
<!-- 配置业务系统票据验证过滤器(必须) -->
<filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>http://xxx.com</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>127.0.0.1:8080</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 自动根据单点登录的结果设置本系统的用户信息 -->
<filter>
<display-name>AutoSetUserAdapterFilter</display-name>
<filter-name>AutoSetUserAdapterFilter</filter-name>
<filter-class>com.syzton.sunread.security.AutoSetUserAdapterFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AutoSetUserAdapterFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Filter
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
// _const_cas_assertion_是CAS中存放登录用户名的session标志
Object object = httpRequest.getSession().getAttribute(AbstractCasFilter.CONST_CAS_ASSERTION);
if (object != null) {
Assertion assertion = (Assertion) object;
String loginName = assertion.getPrincipal().getName();
System.out.println(loginName);
httpRequest.getSession().setAttribute("username", loginName);
}
chain.doFilter(request, response);
}
注销,index
<li><a href="/logout.jsp" ng-click="logout()">注销</a> </li>
退出,logout.jsp
<%
session.invalidate();
response.sendRedirect(application
.getInitParameter("casServerLogoutUrl")
+ "?service="
+ application.getInitParameter("serverName"));
%>
casServerLogoutUrl 和serverName 为web.xml 配置
为了退出后显示也是不少cas server 退出页面,跳转到登陆页面
文章转载于: https://blog.csdn.net/danmo598/article/details/50518438
版权声明:博客对我来说是记忆的笔记和知识的分享~非常感谢博客大神的帮助,若有无意侵权,请您联系我,谢谢 https://blog.csdn.net/qq_36698956