CAS 实现单点登录(一):环境搭建、部署及简单使用
来源:互联网 发布:软件国画山水价格 编辑:程序博客网 时间:2024/06/04 17:52
环境搭建:
apache-tomcat-7.0.55
jdk1.6.0_43
CAS Server版本:cas-server-3.4.10-release
CAS Client版本:cas-client-3.2.1
如果想在自己的本地环境搭建成功,就下载我上面的各软件版本,这个在我计算机上搭建成功了,我一开始版本没配套,出现了各种问题。搭建不成功。
步骤:
1.修改host文件
在 C:\Windows\System32\drivers\etc\hosts 增加下面的域名对应关系:
127.0.0.1 sso.kxl.com127.0.0.1 app1.kxl.com127.0.0.1 app2.kxl.com
sso.kxl.com的域名部署cas server的tomcat,和证书的生成,其他的两个分别部署两个webapp。
2.创建证书:
证书相当于单点登录(SSO)认证系统中的钥匙,保证客户端与服务器的交互的安全;在这里简单用jdk自带的keytool工具生成证书。
- keytool生成证书:
keytool -genkey -alias ssotest -keyalg RSA -keypass kxlpwd -keystore d:\keys\ssotest.keystore -storepass kxlpwd
- 导出证书到文件:
keytool -export -alias ssotest -keystore D:\keys\ssotest.keystore -file d:\keys\ssotest.crt -storepass kxlpwd
- 为客户端的jvm导入证书
keytool -import -keystore D:\java\jdk1.6.0_43\jre\lib\security\cacerts -file d:\keys\ssotest.crt -alias ssotest
注意:命令行中提示输入的新密码是:changeit
3.解压下载的tomcat,复制三份,用于模拟三台tomcat服务器上分别部署了cas-server,webapp1.webapp2的应用。
4.部署cas-server到tomcat_cas
将下载的cas解压缩后提取cas-server-3.4.11/modules/cas-server-webapp-3.4.11.war文件,复制到 D:\soft\apache-tomcat-7.0.55\tomcat_cas\webapps目下,并重命名为cas.war,tomcat启动的时候会解压缩这个war包部署到tomcat服务器
修改/tomcat-cas/conf/server.xml为:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" keystoreFile="d:/keys/ssotest.keystore" keystorePass="kxlpwd" clientAuth="false" sslProtocol="TLS" URIEncoding="UTF-8" />
我们启动tomcat-cas服务器的tomcat,在目录…\tomcat_cas\bin\startup.bat ,双击启动启动tomcat-cas, 验证https访问配置:
点击高级配置,然后点击箭头进入(我用的是谷歌浏览器,其他的浏览器可能不太一样):
在浏览器地址栏输入:https://sso.kxl.com:8443/cas/login ,回车
输入用户名密码admin/admin,登入进去:
5.部署webapp应用
就用tomcat默认自带的 …\webapps\examples 作为演示的简单web项目
1)修改tomcat-app1的启动端口,在文件 /conf/server.xml文件找到如下内容:
<Server port="8005" shutdown="SHUTDOWN"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
修改成如下:
<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" />
2)启动tomcat-app1,浏览器输入 http://app1.kxl.com:18080/examples/servlets/ :
3)接下来复制 cas-client-3.2.1的lib包cas-client-core-3.2.1.jar到 tomcat-app1\webapps\examples\WEB-INF\lib\目录下, 在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>https://sso.kxl.com:8443/cas/login</param-value> </init-param> <init-param> <param-name>serverName</param-name> <param-value>http://app1.kxl.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>https://sso.kxl.com:8443/cas</param-value> </init-param> <init-param> <param-name>serverName</param-name> <param-value>http://app1.kxl.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> <!-- ======================== 单点登录结束 ======================== -->
6 、按上面的相同的方式部署webapp2,
conf/server中端口前面改成2**
webapps/examples/WEB-INF/下的web.xml中增加上面的filter,修改相关的url.
7、测试:
分别访问app1,app2
打开http://app1.kxl.com:18080/examples/servlets/servlet/HelloWorldExample
打开http://app1.kxl.com:18080/examples/servlets/servlet/HelloWorldExample这个时候两个app都是未认证过的。都会跳转到cas server进行验证
- 在app1这端输入用户名密码admin/admin,进行验证,显示app1的应用,
然后在app2端刷新一下网页,就直接显示登入了。
- CAS 实现单点登录(一):环境搭建、部署及简单使用
- CAS单点登录的环境搭建及使用
- cas单点登录环境搭建
- CAS单点登录环境搭建
- 使用 CAS 在 Tomcat 中实现单点登录(一)
- CAS单点登录(SSO)介绍及部署
- CAS实现单点登录(sso)搭建流程 服务器端搭建
- sso 单点登录cas使用(1): cas 4.2.7 maven cas-overlay部署服务端
- cas单点登录搭建
- 使用CAS+tomcat搭建单点登录
- 单点登录CAS使用记(二):部署CAS服务器以及客户端
- 使用 CAS 在 Tomcat 中实现单点登录(SSO)
- 使用 CAS 在 Tomcat 中实现单点登录(二)
- 使用CAS实现SSO(单点登录)
- 使用CAS框架快速实现单点登录
- java使用CAS实现SSO单点登录
- cas实现单点登录
- cas 实现单点登录
- JSON格式
- 面向对象
- Android Studio:Minimum supported Gradle version is 3.3. Current version is 3.2 问题解决
- BZOJ 736 [CTSC1999][网络流24题] 星际转移
- Lazy Physics Cat Gym
- CAS 实现单点登录(一):环境搭建、部署及简单使用
- 4.16 盒子模型浅谈
- Boostrap的form-group和form-control
- c++作业4
- 卡尔曼滤波
- 克隆二叉树
- 中毒的父母
- java 网页读取与存储
- python笔记