先说单点登录是个啥?

单点登录主要用于多系统集成,即在多个系统中,用户只需要到一个中央服务器登录一次即可访问这些系统中的任何一个,无须多次登录。

配置的步骤如下:

1.生成安全证书

Cas server默认的安全认证是基于https协议的,这就要求在应用程序和CAS Server端配置SSL协议。(当然也可以在cas server中配置让其可以用http访问)

要使用https协议,就需要使用安全证书,这里我们通过JDK自带的应用keytool来制作。这种自用的证书是不受浏览器信任的。(会提示,但是选择高级选项,直接访问就行)

生成安全证书使用keytool,keytool是一个Java数据证书的管理工具。

keytool将密钥(key)和证书(certificates)存在一个称为密钥库keystore的文件中,在keystore里,

包含两种数据:
密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密)

可信任的证书实体(trusted certificate entries)——只包含公钥

步骤:

1)用keytool生成密钥库keystore

2)用keytool在密钥库keystore中导出证书cer文件

3)将证书导入到jdk中的信任的证书库cacerts

前两个网上搜索方法,下面只说第三步如何操作:

Win7及以上系统的话请在管理员模式下运行命令提示符窗口。修改对应内容后在命令提示符执行以下命令:

cd D:\jdk1.7.0_21\jre\lib\security

keytool -import -alias localhost -file D:\localhost.cer -noprompt -trustcacerts -storetype jks -keystore cacerts -storepass 123456

其中,

D:\jdk1.7.0_21\jre\lib\security是jdk安装路径及其下面的对应目录,

-alias localhost是选择密钥别名,

D:\localhost.cer是导入的cer公钥证书文件路径,

-storepass 123456是设置密钥密码。

:如果导入失败,可以先把security目录下的cacerts删掉。

如果出现“Caused by: sun.security.validator.ValidatorException: PKIX path building failed:”很大概率是证书导入失败(即使是显示导入成功了)或者程序运行的JDK不是导入证书的JDK

(一定要注意这个问题,被坑过!!)

2.在tomcat中配置端口使用ssl协议

注意哪个端口配置了ssl协议,就只有哪个端口可以使用sll链接(同样的在cas客户端配置的时候踩坑提醒!)

配置说明:

在Tomcat目录下conf/server.xml文件中,将以下命令的对应内容修改后拷贝到<Connector>同级的位置(可以看到有和以下命令类似的被注释掉的代码)。红色字为需要按照实际情况修改的内容,下同。

Tomcat 7:

<Connector SSLEnabled="true" clientAuth="false" maxThreads="150" port="8443" protocol="org.apache.coyote.http11.Http11Protocol" scheme="https" secure="true" sslProtocol="TLS" keystoreFile="E:\localhost.keystore" keystorePass="123456"/>

Tomcat 6:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="E:\localhost.keystore" keystorePass="123456"/>

其中,

keystoreFile="E:\localhost.keystore" keystorePass="123456",指的是所密钥的位置和密钥的密码(安全密钥为目录下的localhost.keystore文件,密码已经设置为123456)。

port="8443"指的是https端口号,建议使用8843。

3.部署cas server服务器

在github上下载cas server 的4.1.1的版本(大家可以尝试别的版本),但是在使用4.0.0的过程中发现一个bug,困扰我很久,就是有时候登录和退出需要操作两次,网上有人说可能是请求异步的原因,后来换成4.1.1版本后就好了 。

将这个文件夹导入eclipse,在tomcat上部署运行即可。

然后访问该项目https://localhost:8443/cas-server-webapp,跳转到登录页面

到这里,我们的需求是输入用户名密码,然后cas server去数据库查询比对,正确就登录成功。那么数据库的查询配置在哪呢?

找到src/main/webapp/web-inf//cas-server-webapp/src/main/webapp/WEB-INF/deployerConfigContext.xml

<!--配置查询的数据源,这个bean是自己添加的-->    
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/shirotest"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>

<!--注意原来就有这个bean,提供了一个测试的用户名和密码,现在修改它。-->
<bean id="primaryAuthenticationHandler" class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="dataSource" ref="dataSource" />
<property name="sql" value="select password from account where name=?" />
</bean>

这样数据数据库中的用户名和密码就能访问成功了。

CAS单点登录的配置的更多相关文章

  1. CAS单点登录相关配置

    一.CAS单点登录服务端的部署 部署 把CAS所对应的war包部署到tomcat中 4.品优购资源V1.3\配套软件\配套软件\CAS\cas.war 配置 更改tomcat的端口号 <Conn ...

  2. CAS单点登录配置[1]:准备工作

    关于CAS是什么这里就不在赘述,网友将它比喻成旅游景点的套票,买了一个套票就可以观看所有景点,不需要一个景点买一次票...我们重点介绍CAS单点登录的配置. 工具/原料 1.配置好JDK环境,否则不方 ...

  3. Liferay7.0与cas单点登录配置

    1.简介     Liferay7.0支持多种登录方式,包括:常规的.opensso.cas.ntlm.ldap.openid.Facebook.Google等. 其中, (1) 常规:则是默认Lif ...

  4. CAS单点登录(SSO)服务端的部署和配置---连接MySQL进行身份认证

    一.修改系统host,加入 127.0.0.1 server.test.com127.0.0.1 client1.test.com127.0.0.1 client2.test.com 二.安装grad ...

  5. cas单点登录-https的配置(一)

     前言   由于个人的兴趣和为了加薪,在这里研究下cas单点登录,同时也记录下自己探索的过程,希望也能帮到有同样兴趣的小伙伴 环境 CAS-5.1.3 tomcat8.5 jdk8 centos6.5 ...

  6. 【CAS单点登录视频教程】 第04集 -- tomcat下配置https环境

    目录 ----------------------------------------- [CAS单点登录视频教程] 第06集[完] -- Cas认证 学习 票据认证FormsAuthenticati ...

  7. 【CAS单点登录视频教程】 第03集 -- 配置 tomcat的 ssl

    目录 ----------------------------------------- [CAS单点登录视频教程] 第06集[完] -- Cas认证 学习 票据认证FormsAuthenticati ...

  8. SSO之CAS单点登录实例演示

    本文目录: 一.概述 二.演示环境 三.JDK安装配置 四.安全证书配置 五.部署CAS-Server相关的Tomcat 六.部署CAS-Client相关的Tomcat 七. 测试验证SSO 一.概述 ...

  9. Asp.net Mvc4 使用Cas单点登录

    因项目需要,使用了耶鲁大学的Cas单点登录方案,在java中使用一直正常,但是在.Net中碰到了循环重定向的问题,反复测试后,总算解决了,最终的配置如下: <?xml version=" ...

随机推荐

  1. CodeSmith自动生成代码使用

    官网地址:http://www.codesmithtools.com/ CodeSmith开发系列资料总结 http://terrylee.cnblogs.com/archive/2005/12/28 ...

  2. 【vijos】1770 大内密探(树形dp+计数)

    https://vijos.org/p/1770 不重不漏地设计状态才能正确的计数QAQ 虽然可能最优化是正确的,但是不能保证状态不相交就是作死.... 之前设的状态错了... 应该设 f[i][0] ...

  3. shell面试题总结

    1) 如何向脚本传递参数 ? ./script argument 例子: 显示文件名称脚本 ./show.sh file1.txt cat show.sh #!/bin/bash echo $1 (L ...

  4. Lumen rule

    之前写了了laravel表单验证的生命周期:https://www.cnblogs.com/cxscode/p/7561277.html 今天来总结一下lumen的Validator的一些使用心得 可 ...

  5. 面试题思考:interface和abstract的区别

    抽象类(abstract) 含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象. 含有abstract方法的类必须定义为abstract class,abstra ...

  6. 搭建一个简单的基于web的网络流量监控可视化系统

    本文转载于我的个人博客,转载请标明出处. 初衷 在腾讯云的学生认证申请提交上去n天之后,终于得到了审批,所以迫不及待的想玩玩腾讯云,作为一个搞网络的,自然有一些关于网络应用的小玩意,所以把以前部署过的 ...

  7. 邮件发送模型及其Python应用实例

    SMTP(Simple Mail Transfer Protocol) 制定: First:RFC 788 in 1981 Last:RFC 5321 in 2008 端口: TCP 25(SMTP) ...

  8. iOS UITableView划动删除的实现

    标签:划动删除 iphone 滑动删除 ios UITableView 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://rainb ...

  9. 表单验证 靠name获取

    表单 靠name获取 <form class="add-form" name="form" action="#" method=&qu ...

  10. POJ 3150 Cellular Automaton(矩阵快速幂)

    Cellular Automaton Time Limit: 12000MS Memory Limit: 65536K Total Submissions: 3504 Accepted: 1421 C ...