本文目录:
- 一、概述
- 二、演示环境
- 三、部署CAS-Server相关的Tomcat
- 四、部署CAS-Client相关的Tomcat
- 五、测试验证SSO
一、概述
最近在研究Sina单点登录,网上有博主分析了它的登录机制,并且还给出了仿Sina的Ajax异步单点登录的思路及代码片断,因为第一次接触CAS,没办法一下子构建自己想要的异步单点登录项目,所以开始在网上不停的查找相关的文章,由于网上大多数的CAS配置都是基于HTTPS的,需要生成证书,导入证书到jre中,但是Sina的单点登录却不是基于HTTPS的,所以此文的目的是对CAS单点登录HTTP配置进行测试。
CAS的官网:https://www.apereo.org/cas
参考文章:http://www.micmiu.com/enterprise-app/sso/sso-cas-sample/
http://blog.csdn.net/ycyk_168/article/details/18668951
二、测试环境
本文测试过程在同一个机器上的(也可以在三台实体机器或者三个的虚拟机上),环境如下:
- Windows7 64位
- JDK 1.6.0_10
- Tomcat 6.0.43
- CAS-server-4.0.0、CAS-client-3.3.3
根据演示需求,用修改hosts 文件的方法添加域名最简单方便(这个非常重要),在文件 C:\Windows\System32\drivers\etc\hosts 文件中添加三条:
#test CAS SSO Start
127.0.0.1 sso.rocye.com
127.0.0.1 appone.rocye.com
127.0.0.1 apptwo.rocye.com
#test CAS SSO End
- sso.rocye.com =>> 对应部署cas server的tomcat,这个虚拟域名还用于证书生成
- appone.rocye.com =>> 对应部署app1 的tomcat
- apptwo.rocye.com =>> 对应部署app2 的tomcat
三、部署CAS-Server相关的Tomcat
3.1 解压apache-tomcat-6.0.43.zip并重命名后的路径为 e:\sso\tomcat-cas
3.2 下载官网最新版cas-server-4.0.0-release.zip 为例,解压提取cas-server-4.0.0\modules\ cas-server-webapp-4.0.0.war文件,把文件复制到 e:\sso\tomcat-cas\webapps\ 目下,并重命名为:cas.war启动tomcat-cas,得到项目发布文件夹cas
3.3 修改WEB-INFO\deployerConfigContext.xml加入p:requireSecure="false"
<bean id="proxyAuthenticationHandler"
class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
p:httpClient-ref="httpClient" p:requireSecure="false" />
3.4 修改WEB-INF\spring-configuration\ticketGrantingTicketCookieGenerator.xml,修改p:cookieSecure="false"
<bean id="ticketGrantingTicketCookieGenerator"
class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
p:cookieSecure="false"
p:cookieMaxAge="-1"
p:cookieName="CASTGC"
p:cookiePath="/cas" />
3.5 修改WEB-INF\spring-configuration\warnCookieGenerator.xml,修改p:cookieSecure="false"
<bean id="warnCookieGenerator"
class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
p:cookieSecure="false"
p:cookieMaxAge="-1"
p:cookieName="CASPRIVACY"
p:cookiePath="/cas" />
3.6 重新启动Tomcat,在地址栏输入: http://sso.rocye.com:8080/cas/login回车:
输入登录名:casuser密码:Mellon 得到登录成功页面:
这里不用管登录页上面的红色提示信息:“Non-secure Connection…”,这只是这个登录页面对于URL不是https开头的一个验证提示信息,继续登录得到“登录成功”表示已经部署成功。
四、部署CAS-Server相关的Tomcat
4.1 解压apache-tomcat-6.0.43.zip并重命名后的路径为:e:\sso\tomcat-app1,修改conf下的配置文件server.xml如下:
<Server port="18005" shutdown="SHUTDOWN">
…
<Connector port="18080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="18443" />
<Connector port="18009" protocol="AJP/1.3" redirectPort="18443" />
4.2 以官网最新版cas-client-3.3.3-release.zip为例,解压提取cas-client-3.3.3\modules\ cas-client-core-3.3.3.jar文件,以tomcat默认自带的 webapps\examples 作为演示的简单web项目,把jar文件复制到 webapps\ examples项目的lib文件夹下,同时还要复制slf4j-api-1.7.1.jar。
4.3 在tomcat-app1\webapps\examples\WEB-INF\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> <filter> <filter-name>CAS Filter</filter-name> <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class> <init-param> <param-name>casServerLoginUrl</param-name> <param-value>http://sso.rocye.com:8080/cas/login</param-value> </init-param> <init-param> <param-name>serverName</param-name> <param-value>http://appone.rocye.com:18080</param-value> </init-param> </filter> <filter-mapping> <filter-name>CAS 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>http://sso.rocye.com:8080/cas</param-value> </init-param> <init-param> <param-name>serverName</param-name> <param-value>http://appone.rocye.com:18080</param-value> </init-param> </filter> <filter-mapping> <filter-name>CAS Validation Filter</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> <!-- ======================== 单点登录结束 ======================== -->
4.4 按照上面的4.1-4.3步骤得到tomcat-app2,相应端口改成28080…配置文件添加的单点登录配置也要对应修改好。
五、测试验证SSO
预期流程:打开app1 url —-> 跳转cas server 验证 —-> 显示app1的应用 —-> 打开app2 url —-> 显示app2应用 —-> 注销cas server —-> 打开app1/app2 url —-> 重新跳转到cas server 验证。
启动之前配置好的三个Tomcat,分别为:tomcat-cas、tomcat-app1、tomcat-app2
打开浏览器输入链接地址:http://appone.rocye.com:18080/examples/servlets/servlet/HelloWorldExample它会跳转到登录页面:
输入登录名:casuser密码:Mellon 得到下面的页面:
再在地址栏输入app2的地址:http://apptwo.rocye.com:28080/examples/servlets/servlet/HelloWorldExample它会直接进入下面的页面,不需要再登录:
紧接着打开一个新Tab页输入:http://sso.rocye.com:8080/cas/logout
再次打开之前访问的两个页面:
http://appone.rocye.com:18080/examples/servlets/servlet/HelloWorldExample
http://apptwo.rocye.com:28080/examples/servlets/servlet/HelloWorldExample
都会直接跳到登录页,表示成功。
本文到此已结束,下一步将会整合此文中的功能到Spring+Struts+Mybatis框架上,并升级为ajax异步的方式。
相关推荐
CAS 单点登录 HTTP协议 配置指南 SSO CAS 单点登录 HTTP协议 配置指南 SSO CAS 单点登录 HTTP协议 配置指南 SSO
3 CAS单点登录简介(针对实践选择的技术) 5 3.1 技术快速使用说明 5 3.1.1 设置服务器域名 5 3.1.2 生成证书(这里采用JDK自带的工具keytool) 5 3.1.3 为客户端JVM导入证书 6 3.1.4 将证书应用到Web服务器Tomcat 7...
然后clean install tomcat7:run 就能跑起来,注意要修改node1和node2里的shiro.properties配置文件,要配置登录成功成功返回的路径 我的访问的分别是: 服务端: http://localhost:8050/cas-server 客户端:...
spring下使用shiro+cas配置单点登录,多个系统之间的访问,每次只需要登录一次 ## 系统模块说明 1. cas: 单点登录模块,这里直接拿的是cas的项目改了点样式而已 2. doc: 文档目录,里面有数据库生成语句,采用的...
1.cas的搭建与配置 2.将cas从https请求改为http请求 3.cas的认证方式:数据库认证+自定义认证方式(想怎么验证都可以) 4.自定义登录页面。 这可是精华,花费了我一个多星期时间整理出来的技术文档(简单明了)
这是我的博文http://blog.csdn.net/jadyer/article/details/47067279用到的代码
此文档详细说明了CAS服务端及客户端相关配置,以及使用http和https配置。
单点登录实 , CAS 客户端,服务器端配置,单点登录实 单点登录实
本资源是cas服务端的war包,内部配置文件常用的修改已经加了备注,直接放到tomcat中就能启动,键入http://localhost:8080/cas/login即可验证
war直接放在tomcat下面运行即可,无须任何配置,访问地址http://127.0.0.1:8081/cas/login
spring boot整合spring security 实现SSO单点登陆 完整DEMO. 1、配置本地hosts 127.0.0.1 sso-login 127.0.0.1 sso-resource 127.0.0.1 sso-tmall 127.0.0.1 sso-taobao windows系统的路径在C:\WINDOWS\system...
CAS Server 4.0 , Client 3.3 ,共3个TOMCAT,已经配置完毕,下载后, 1 修改tomcat-caswebappscasWEB-INF/deployerConfigContext.xml 中的35、48行,数据的配置; 2 在表t_user 中加一行数据 口令:e10adc3949ba59...
统一身份认证-CAS配置实现 SSO单点登录Spring-Security+&+CAS+使用手册 统一身份认证-CAS配置实现 CAS登录验证(密码MD5、SHA加密后_再进行Base64加密实现代码)_与Liferay的用户身份验证对应
casServerLoginUrl 是CAS服务器登录的地址; casServerUrlPrefix 是CAS服务器地址 serverName 子系统URL地址 Forms验证的loginUrl地址 <forms loginUrl=...
-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置 --> org.jasig.cas.client.session.SingleSignOutHttpSessionListener <!-- 该过滤器用于实现单点登出功能,可选配置。 --> ...
kubectl-版本1.11或更高版本需要安装和配置才能访问已部署的Discovery Environment名称空间。 配置 服务器项目使用dotenv来配置环境变量集。 环境变量的完整列表为: PORT-服务器将侦听请求的端口号。 DB-DE...
cas 配置mysql 的数据源;create table user_ (screenName varchar(30), password_ varchar(45) , primary key (screenName))insert into user_ (screenName,password_) values ('test01','psw01');insert into user...
etc目录包含需要复制到/etc/cas的配置文件。 当前文件是: cas.properties log4j2.xml 建造 mvnw clean package 或者 mvnw.bat clean package 部署方式 嵌入式码头 使用密码changeit在/etc/cas/jetty/...
│ ├─jeeplatform-sso-cas-----------------------CAS单点登录服务端 │ │ │ ├─jeeplatform--sso-oauth2---------------OAuth2.0单点登录服务端 │ │ ``` ## 二、系统设计 ### 系统管理(模块名称...
5.3 Java配置和表单登录 34 5.4授权请求 35 5.5处理注销 36 5.5.1 LogoutHandler 37 5.5.2 LogoutSuccessHandler 37 5.5.3更多注销相关参考 38 5.6认证 38 5.6.1内存认证 38 5.6.2 JDBC认证 39 5.6.3 LDAP认证 39 ...