cas服务端已经搭建完成,现进行cas客户端接入,步骤如下:
一、编写一个简单的项目(正常情况可在eclipse中编写web项目,然后进行相关配置,再打包,部署)
1.在tomcat的webapps路径下新建文件夹,以“cas-client1”命名
1.1 cas-client1中新建index.jsp,index.jsp中内容如下:
<html>
<body>
cas-client1
<br/><br/><br/>
Hello World,<%=request.getRemoteUser()%>!
<HR>
<a href="http://127.0.0.1:8080/cas/logout">Logout</a>
</body>
</html>
1.2 cas-client1中新建文件夹,以“WEB-INF”命名
1.2.1 WEB-INF中新建web.xml,web.xml中内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1"
metadata-complete="true">
<display-name>cas-client1</display-name>
<description>
cas-client1.
</description>
<filter>
<filter-name>CAS Single Sign Out Filter</filter-name>
<filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>http://127.0.0.1:8080/cas</param-value>
</init-param>
</filter>
<listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>
<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://127.0.0.1:8080/cas/login</param-value>
</init-param>
<init-param>
<!-- 客户端 -->
<param-name>serverName</param-name>
<param-value>http://127.0.0.1:8080</param-value>
</init-param>
</filter>
<filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>org.jasig.cas.client.validation.Cas30ProxyReceivingTicketValidationFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>http://127.0.0.1:8080/cas</param-value>
</init-param>
<init-param>
<!-- 客户端 -->
<param-name>serverName</param-name>
<param-value>http://127.0.0.1:8080</param-value>
</init-param>
<init-param>
<param-name>redirectAfterValidation</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>useSession</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>authn_method</param-name>
<param-value>mfa-duo</param-value>
</init-param>
</filter>
<filter>
<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
<filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CAS Single Sign Out Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS Authentication Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>
index.jsp
</welcome-file>
</welcome-file-list>
</web-app>
1.2.2 WEB-INF中新建文件夹,以“lib”命名,lib文件夹内放入如下jar包:
cas-client-core-3.4.1.jar
commons-logging-1.2.jar
log4j-api-2.8.2.jar
log4j-slf4j-impl-2.8.2.jar
slf4j-api-1.7.25.jar
这些jar文件,可以在D:\apache-tomcat-8.0.28\webapps\cas\WEB-INF\lib中查找或直接百度查找并下载拷贝过来
2.再拷贝一份tomcat的webapps路径下的“cas-client1”,以“cas-client2”命名(重命名和修改文件只是为了明显进行区分)
2.1 修改D:\apache-tomcat-8.0.28\webapps\cas-client2内的“index.jsp”,修改后如下:
2.2 修改D:\apache-tomcat-8.0.28\webapps\cas-client2\WEB-INF下的“web.xml”,修改的地方如下图中红框内容:
附:cas-client1和cas-client2源码下载地址:https://download.csdn.net/download/dai_haijiao/10978613
二、重启tomcat进行访问测试
浏览器访问:http://127.0.0.1:8080/cas-client1,回车后,跳转到cas的登录界面,如下:
输入用户名密码(casuser/Mellon)登录后会看到:
此时,我们修改浏览器中的地址成:http://127.0.0.1:8080/cas-client2后再进行访问时,就回直接进入页面,而不必再次登录。如下:
点击页面上的”Logout“后就回登出,如下:
登出后http://127.0.0.1:8080/cas-client1和http://127.0.0.1:8080/cas-client2的登录状态失效,若需要继续访问,则需要重新登录任意一个即可。