代码已上传至Github 地址:https://github.com/ylw-github/SSO-Demo.git
整个工程结构图如下: Maven项目依赖cas,内容如下:
4.0.0
com.pyg
sso-demo
1.0-SNAPSHOT
SsoDemo1
SsoDemo2
pom
org.jasig.cas.client
cas-client-core
3.3.3
javax.servlet
servlet-api
2.5
provided
客户端工程1搭建
1)声明parent,并设置打包方式为war:
sso-demo
com.pyg
1.0-SNAPSHOT
4.0.0
sso-demo1
war
2)新建web.xml,部署tomcat时,IP端口要与web.xml声明的servername对应的IP端口一致,例如工程1的端口是8079,内容如下:
org.jasig.cas.client.session.SingleSignOutHttpSessionListener
CAS Single Sign Out Filter
org.jasig.cas.client.session.SingleSignOutFilter
CAS Single Sign Out Filter
/*
CASFilter
org.jasig.cas.client.authentication.AuthenticationFilter
casServerLoginUrl
http://192.168.25.128:8080/cas/login
serverName
http://localhost:8079
CASFilter
/*
CAS Validation Filter
org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter
casServerUrlPrefix
http://192.168.25.128:8080/cas
serverName
http://localhost:8079
CAS Validation Filter
/*
CAS HttpServletRequest Wrapper Filter
org.jasig.cas.client.util.HttpServletRequestWrapperFilter
CAS HttpServletRequest Wrapper Filter
/*
CAS Assertion Thread Local Filter
org.jasig.cas.client.util.AssertionThreadLocalFilter
CAS Assertion Thread Local Filter
/*
3)新建index.jsp,内容如下:
一品优购
欢迎来到一品优购
客户端工程2搭建
仿照前面工程一设置,步骤二的端口为8078,index的内容也做了部分修改,欢迎来到一
改为欢迎来到二
。
(1)启动 cas 部署的 tomcat (2)启动客户端工程 1 和客户端工程 2 (3)地址栏输入 http://localhost:8079/ 和 http://localhost:8078/ ,地址均会跳转到 CAS 登录页 (4)输入用户名和密码后,页面跳转回 8079 ,再次访问8079和8078 也可以打开主页面。
单点退出登录地址栏输入 http://192.168.25.125:8080/cas/logout(tomcat配置的cas服务器地址)即可看到退出后的提示页面。 但我们更希望退出登录后,能自动跳转到某个页面,那如何处理呢?
修改 cas 系统的配置文件 cas-servlet.xml
改为 true 后,可以在退出时跳转页面到目标页面,修改 index.jsp 的退出链接
退出登录