博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cas(sso)服务器
阅读量:6124 次
发布时间:2019-06-21

本文共 5446 字,大约阅读时间需要 18 分钟。

hot3.png

 

1.cas4.0server端下载地址 

迅雷地址:http://developer.jasig.org/cas/cas-server-4.0.0-release.zip

也可以去最新的地址:

https://www.apereo.org/projects/cas/download-cas或者http://developer.jasig.org/cas/选择你需要的下载 

2. 部署cas服务 

 

解压cas-server-4.0.0-release.zip后拷贝出cas-server-4.0.0\modules的cas-server-webapp-4.0.0.war到tomcat的webapp目录,重命名为cas

 

3.创建证书(下面会用到)

证书是单点登录认证系统中很重要的一把钥匙,客户端于服务器的交互安全靠的就是证书;本教程由于是演示所以就自己用JDK自带的keytool工具生成证书;如果以后真正在产品环境中使用肯定要去证书提供商去购买,当然现在也有免费。

keytool -genkey -alias tomcatcas -keystore d://castest -keyalg RSA -validity 3666

 详细操作:

 
因为sso.castest.com不存在,估需要修改hosts文件 (C:\Windows\System32\drivers\etc\hosts)

增加:127.0.0.1 sso.castest.com

4.导出证书

证书导出:

keytool -export -alias tomcatcas -keystore d://castest  -file d://tomcatcas.crt

 

 

5.为客户端的JVM导入证书

如果命令中存在空格,命令将报错

keytool -import -keystore D:\software\Java\jdk1.8.0_20\jre\lib\security\cacerts -file D:/tomcatcas.crt -alias tomcatcas

 

 
 注意:这里需要输入密码,此密码不是前面设定的密码,是DK安装后会默认创建一个密钥库,密码为:changeit

D:\software\Java\jdk1.8.0_20\jre\lib\security\ -- 是jre的目录;至此证书的创建、导出、导入到客户端JVM都已完成,下面开始使用证书到Web服务器中

 

6. 启用Web服务器(Tomcat)的SSL,也就是HTTPS加密协议

 

打开tomcat目录的conf/server.xml文件,取消开启84和88行左右的注释代码,并设置keystoreFile、keystorePass修改结果如下:

    参数说明:

  • keystoreFile:在第一步创建的key存放位置
  • keystorePass:创建证书时的密码
 7.简单配置CAS SERVER后进行验证
  启动tomcat后浏览器输入http://sso.castest.com:8443/cas/
注意:cas4.0以前主需要用户名和密码相同即可,但是4.0后默认的用户名/密码: casuser/Mellon否则会报“cas Invalid credentials.”提示
 成功进入cas登录页面
 
8. casserver的数据验证配置
需要依赖的jar:c3p0-0.9.1.2.jar,mysql-connector-java-5.1.21.jar,cas-server-support-jdbc-4.0.0.jar拷贝到cas\WEB-INF\lib下
对配置文件修改:
tomcat/webapp/cas/WEB-INF/deployerConfigContext.xml
1).注释默认的简单登录配置
 2).增加数据库连接 
  3).更换验证Handle(找到id=authenticationManager的bean)
 是为了注释掉key-ref="primaryAuthenticationHandler"的部分,然后引入id=dbAuthHandler的bean之后重启tomcat 进行验证.服务端就配置完成
 
8.客户端配置 
1). 增加cas-client的jar包(
cas-client-core-3.4.1.jar
),有两种方式:
  • 传统型 :下载cas-client,地址:http://developer.jasig.org/cas-clients/,然后解压cas-client-3.1.12.zip,在modules或者WEB-INF文件夹中,请根据自己的项目情况选择使用
  • org.jasig.cas.client
    cas-client-core
    3.4.1

 

2).客户端所有的web.xml配置

CAS Single Sign Out Filter
org.jasig.cas.client.session.SingleSignOutFilter
CAS Authentication Filter
org.jasig.cas.client.authentication.AuthenticationFilter
casServerLoginUrl
https://localhost:8443/cas/login
serverName
http://localhost:8080
CAS Validation Filter
org.jasig.cas.client.validation.Cas10TicketValidationFilter
casServerUrlPrefix
https://localhost:8443/cas
serverName
http://localhost:8080
redirectAfterValidation
true
CAS HttpServletRequest Wrapper Filter
org.jasig.cas.client.util.HttpServletRequestWrapperFilter
CAS Assertion Thread Local Filter
org.jasig.cas.client.util.AssertionThreadLocalFilter
CAS Single Sign Out Filter
/*
CAS Authentication Filter
/*
CAS Validation Filter
/*
CAS HttpServletRequest Wrapper Filter
/*
CAS Assertion Thread Local Filter
/*
org.jasig.cas.client.session.SingleSignOutHttpSessionListener
 
 9客户端与shiro进行整合配置
 1).增加需要的jar包
shiro-cas-1.2.4.jar
cas-client-core-3.4.1.jar(下载参考第8步)
org.apache.shiro
shiro-cas
1.2.4
 2)修改shiro的配置(spring-shiro.xml)
  • 修改shiroFilter:
    /favicon.ico = anon /login.htm = anon /error/ajaxUnauthorized.htm = anon /doRegister.htm = anon /doAjaxLogin.htm = anon /logout.htm = logout /service/*.htm=anon /*.htm= authc /**/*.htm=authc
     
  • shiroRealm的配置中添加两个属性,分别为cas服务器的登录地址和cas客户端的入口即会被拦截的地址:
     
  • 在securityManager的配置中加入属性:
     
  • 加入casSubjectFactory Bean的配置 
     
 
参考页面
http://dead-knight.iteye.com/blog/1525671
http://blog.csdn.net/zhuojiajin/article/details/42973251
http://blog.csdn.net/ppt0501/article/details/41728819

转载于:https://my.oschina.net/longload/blog/710557

你可能感兴趣的文章
What’s new in Spark 1.2.0
查看>>
[LeetCode] 6. ZigZag Conversion
查看>>
Ansible
查看>>
VirtualBox实现宿主机和虚拟机之间网络的通讯
查看>>
Django--中间件
查看>>
openshift pod对外访问网络解析
查看>>
C++系列总结——mutable关键字
查看>>
JavaScript_1
查看>>
python3+selenium入门01-环境搭建
查看>>
Sharding-JDBC 使用入门和基本配置
查看>>
Fast Search For Sharepint 2010 安装部署
查看>>
Delphi2010如何获取程序内部自身版本号?
查看>>
Oracle网格控制器OMA安装和配置指南
查看>>
Sub VLAN主机的三层通信原理
查看>>
开发程序实现nginx代理节点状态检查及WEB界面展示
查看>>
linux运维人员的成功面试总结案例分享
查看>>
一对一培训之视频免费分享-2018-01-21-第 03 阶段-准备-基础-架构-01
查看>>
通过Python脚本理解系统线程
查看>>
访问控制实验
查看>>
Linux还是亲生的好,实战自制Linux操作系统
查看>>