本地搭建两个客户端
打开开发工具idea,创建两个maven项目名称分别为:clientOne、clientTwo;默认创建一个maven web app 因为是测试应用暂且只需要修改web.xml。方法如下:
idea创建maven web app 命名为clientOne
该clientOne对于之前篇幅中说的client1.huzd.com
pom.xml 中加入cas sso client 的jar坐标
<dependency>
<groupId>org.jasig.cas</groupId>
<version>3.1.1</version>
<artifactId>cas-client-core</artifactId>
</dependency>
修改web.xml,代码如下:
<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>
<!-- 该过滤器负责对Ticket的校验工作,必须启用它 -->
<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>https://server.huzd.com:8443/cas-server</param-value>
<!-- 此处必须为登录url/cas-server/,带有任何其它路径都会报错,如“https://server.huzd.com:8443/cas-server/login”,这样也会报错。根据代码调试过程可以断定,这里的url是client和server通讯时用来拼凑ticket校验URL路径的。 -->
</init-param>
<init-param>
<param-name>serverName</param-name>
<!--这里注意url 的路径,server.huzd.com 在host文件中配置对应的127.0.0.1 端口号一定要与启动Tomcat服务器的端口一致,一般cas server 服务器单独部署,-->
<param-value>http://client1.huzd.com:8888</param-value>
</init-param>
<init-param>
<param-name>redirectAfterValidation</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 该过滤器负责用户的认证工作,必须启用它 -->
<filter>
<filter-name>CASFilter</filter-name>
<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
<init-param>
<param-name>casServerLoginUrl</param-name>
<!--这里是搭建的 cas server 服务端的IP;对于未登录的用户跳转到如下地址进行认证-->
<param-value>https://server.huzd.com:8443/cas-server/login</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://client1.huzd.com:8888</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--
该过滤器负责实现HttpServletRequest请求的包裹,
比如允许开发者通过HttpServletRequest的getRemoteUser()方法获得SSO登录用户的登录名,可选配置。
-->
<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 HttpServletRequest Wrapper Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--
该过滤器使得开发者可以通过org.jasig.cas.client.util.AssertionHolder来获取用户的登录名。
比如AssertionHolder.getAssertion().getPrincipal().getName()。
-->
<filter>
<filter-name>CAS Assertion Thread Local Filter</filter-name>
<filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CAS Assertion Thread Local Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
创建第二个客户端web应用;名称为clientTwo 过程类似shan上述步骤 1 2 3 ,注意域名要映射对;第二个客户端对于 client2.huzd.com
接下来就可以愉快的测试了。
本文由 huzd 创作,采用 知识共享署名4.0 国际许可协议进行许可本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名最后编辑时间
为:
2020/01/22 11:02