Overview

  • SSO(Single Sign-on) in Action(上篇)
  • 使用 CAS 在 Tomcat 中实现单点登录
  • http://jasig.github.io/cas/4.0.x/planning/Architecture.html

CAS Server/Client Up and Running

See more at:

  • https://wiki.jasig.org/display/CASC/CAS+Client+for+Java+3.1
  • https://wiki.jasig.org/display/CASC/JA-SIG+Java+Client+Simple+WebApp+Sample

Change Host Name

Modify C:\Windows\System32\drivers\etc\hosts

127.0.0.1   compa

Preparing The Tomcat Servers

Download tomcat.

Preparing And/Or Creating The Certificates

windows:

keytool -genkey -alias app1.company.com -keyalg RSA  -storepass changeit
keytool -export -alias app1.company.com -file app1.company.com.cert -storepass changeit
keytool -list -keystore %JAVA_HOME%\jre\lib\security\cacerts -alias app1.company.com  -storepass changeit
keytool -delete -keystore %JAVA_HOME%\jre\lib\security\cacerts -alias app1.company.com
keytool -import -file app1.company.com.cert -storepass changeit -keystore %JAVA_HOME%\jre\lib\security\cacerts -alias app1.company.com
keytool -list -v -storepass changeit -alias app1.company.com

Linux:

keytool -genkey -alias cas.company.com -keyalg RSA  -storepass changeit
keytool -export -alias cas.company.com -file cas.company.com.cert -storepass changeit
keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts -alias cas.company.com -storepass changeit
keytool -delete -keystore $JAVA_HOME/jre/lib/security/cacerts -alias cas.company.com
keytool -import -file cas.company.com.cert -storepass changeit -keystore $JAVA_HOME/jre/lib/security/cacerts -alias cas.company.com
keytool -list -v -storepass changeit -alias cas.company.com

Warning:

  • 一个IP地址只能有一个证书,否则可能找到错误的证书发送给对向端(比如浏览器)

Configure Tomcat server.xml

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"maxThreads="150" SSLEnabled="true" scheme="https" secure="true"clientAuth="false" sslProtocol="TLS"keystoreFile="C:/Users/ll/.keystore"keystorePass="changeit"truststoreFile="C:/Java/jdk1.8.0_25/jre/lib/security/cacerts" />

Warning:

  • Tomcat的truststoreFile必须指向JRE的keystore(路径为jre/lib/security/cacerts),里面存放对向端的证书(entry类型为trustedCertEntry)。如果不是JRE下的keystore或者store里面没有存放对向端的证书,会报错:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Preparing CAS Server

Download CAS Server, lastest stable version is 4.0.0:

http://downloads.jasig.org/cas/cas-server-4.0.0-release.zip

Generate and Install Certificate:

Preparing The Sample Web Application

Download mywebapp:

https://wiki.jasig.org/download/attachments/13569483/mywebapp.war?version=1&modificationDate=1212097848936&api=v2

CAS Java client (latest stable version is 3.3.3) could be downloaded from:

http://downloads.jasig.org/cas-clients/cas-client-3.3.3-release.zip

Copy CAS Java Client jars to WEB-INF/lib:
* cas-client-core-3.3.3.jar
* slf4j-api-1.7.1.jar

To avoid the following problem: Renew MUST be specified via context parameter or JNDI environment to avoid misconfiguration. You should comment init-param of CAS Authentication Filter:

<!--<init-param><param-name>renew</param-name><param-value>false</param-value></init-param>-->

And add:

    <context-param><param-name>renew</param-name><param-value>false</param-value></context-param>

Change CAS Validation Filter from org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter to org.jasig.cas.client.validation.Cas10TicketValidationFilter, and modify related configurations.

    <filter><filter-name>CAS Validation Filter</filter-name><!--<filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>--> <filter-class>org.jasig.cas.client.validation.Cas10TicketValidationFilter</filter-class><init-param><param-name>casServerUrlPrefix</param-name><param-value>https://localhost/cas/</param-value></init-param><init-param><param-name>serverName</param-name><param-value>https://localhost:8443</param-value></init-param><!--<init-param><param-name>proxyCallbackUrl</param-name><param-value>https://localhost:8443/mywebapp/proxyCallback</param-value></init-param><init-param><param-name>proxyReceptorUrl</param-name><param-value>/mywebapp/proxyCallback</param-value></init-param>--></filter>

CAS单点登录快速入门相关推荐

  1. LiveGBS国标视频平台GB28181协议支持CAS单点登录快速对接业务系统

    LiveGBS国标视频平台GB28181协议支持CAS单点登录快速对接业务系统 1.如何配置CAS单点登陆 2.单点登录调整测试 3.搭建GB28181视频直播平台 1.如何配置CAS单点登陆 Liv ...

  2. 华为外部Portal认证 Radius认证计费 实现基于Mac快速认证的Mac无感知认证和结合CAS单点登录统一认证平台和AD域LDAP对接配置

    华为外部Portal认证 Radius认证计费 实现基于Mac快速认证的Mac无感知认证 结合CAS单点登录统一认证平台 AD域LDAP对接配置 实现用户名密码实名认证 访客短信认证 二维码扫码 钉钉 ...

  3. CAS单点登录-配置数据库认证方式

    接下来,说一下配置数据库认证单点登录 如果你之前的单点登录搭成功了,之后就简单多了,只需要添加一些配置和jar包即可.若未成功,请参考CAS单点登录入门配置 步骤: 1.引入相关jar包 2.创建数据 ...

  4. CAS 单点登录/登出 系统

    前言: 在我们的实际开发中,更多的是采用分布式系统.那么问题来了,对于分布式系统的登录问题,我们如何解决呢? 如果说我们在每一个系统中都要进行一次登录,那么用户体验度也就差的没法用了.以京东商城为例, ...

  5. CAS单点登录的实现(二)

    这篇文章对CAS单点登录具体实现的一些步骤就行讲述,至于CAS单点登录的实现原理分析,请参看下面这篇文章: CAS单点登录原理分析(一) https://blog.csdn.net/qq_412582 ...

  6. CAS单点登录的实现

    这篇文章对CAS单点登录具体实现的一些步骤就行讲述,至于CAS单点登录的实现原理分析,请参看下面这篇文章: CAS单点登录原理分析(一) https://blog.csdn.net/qq_412582 ...

  7. cas单点登录原理碎碎念

    2019独角兽企业重金招聘Python工程师标准>>> 也许有一天,你去面试,当面试官问你做cas的经验的时候,你会怎么描述? cas单点登录的原理? 单点登录是分为基于sessio ...

  8. CAS单点登录3--服务端登录页个性化

    原理 cas的页面显示控制是集中在\WEB-INF\cas.properties中的cas.viewResolver.basename属性的,其默认值为default_views 所以cas会去cla ...

  9. web工程中集成cas单点登录

    背景 cas的服务端已经搭建成功,现在需要在web项目中集成cas client.我们项目使用spring 1.在pom中配置 <!--cas单点登录 --><dependency& ...

最新文章

  1. Jquery 将表单序列化为Json对象
  2. 解决首次运行WebDriverAgent手机开发者未信任问题
  3. java获取系统语言(区分简体中文和繁体中文)
  4. c语言拟合线性直线误差最小,急~~~~~~!!!求解!用C语言编写最小二乘法求数据的拟合曲线~并做出图显示拟合效果!高分悬赏!...
  5. [C++STL]常用算术生成算法
  6. Spark-自定义累加器-进行字符串拼接(代码及详细实现步骤)
  7. django2.1支持的mysql版本_一文解决django 2.2与mysql兼容性问题
  8. Tomcat端口号的修改
  9. c语言,求素数个数,关于求素数个数的话题
  10. 小沙的长路(图论+数学)
  11. 一个优秀程序员必备的软件背景/桌面壁纸/集原美/鬼刀.....
  12. 税控盘版增值税开票软件日志加密算法分析及解密工具
  13. html设置列表编号起始值,Word多级编号怎么设置,要按我的要求作为起始值?
  14. python统计元音字母出现的次数,python统计元音字母个数 python输出元音字母
  15. Excel快捷键大全,没有最全,只有更全!
  16. 我国三大常用坐标系:北京54、西安80和WGS-84
  17. vsftpd 虚拟用户
  18. 心电算法准确性评价总结
  19. 4.3.1 求绝对值
  20. 携程商旅酒店直连平台的实践(一)

热门文章

  1. java电商项目描述面试,看完跪了
  2. EC2創建新用戶用秘钥登录
  3. Google DeepMind在全球使用AI的10种方式
  4. [Java] 用java来突破一下人类极限
  5. 嗯嗯嗯 服务器端提供了一个图形验证码地址,ios客户端如何更新呢
  6. Matlab中的RandStream
  7. 代码随想录算法训练营Day02 | LeetCode977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II
  8. Crust 团队出席四川省高科技产业化协会数字化转型专委会成立大会
  9. 计算机的mac改不了怎么办,Win7无法修改MAC怎么办 不能修改MAC的原因及解决方法...
  10. 一维黎曼激波管精确解python