关于cas单点登录的原理及介绍这里不做说明了,直接开始:

1、war包下载

去官网(https://www.apereo.org/projects/cas/download-cas)下载cas_server-webapp_xxx.war文件,这里使用的是cas-server-webapp-4.0.0.war。(这里吐槽下,由于cas源码及war包都已经放到github上面去了,导致下载速度很慢或者无法下载,最后无奈之下去CSDN下载了。。。)

2、创建证书

证书是单点登录认证系统中很重要的一把钥匙,客户端于服务器的交互安全靠的就是证书;由于是个人学习测试所以就直接用JDK自带的keytool工具生成证书;如果以后真正在产品环境中使用肯定要去证书提供商去购买,证书认证一般都是由VeriSign认证,中文官方网站:http://www.verisign.com/cn/

用JDK自带的keytool工具生成证书:

keytool -genkey -alias cas -keyalg RSA -keystore e:/keys/cas

根据提示信息输入相关数据回车即可(这里注意要记住创建时的密码)。

3、导出证书

keytool -export -file e:/keys/cas.crt -alias cas -keystore e:/keys/cas

如果提示:

keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect

那么请输入密码:changeit

至此导出证书完成,可以分发给应用的JDK使用了。

4、为客户端的JVM导入证书

keytool -import -keystore "C:\Program Files\Java\jdk1.8.0_101\jre\lib\security\cacerts" -file e:/keys/cas.crt -alias cas

同第3步一样,如果提示输入密码,请输入changeit,至此证书的创建、导出、导入到客户端JVM都已完成,下面开始使用证书到Web服务器中,这里我使用的是tomcat7服务器。

5、应用证书到web服务器

打开tomcat目录的conf/server.xml文件,设置如下:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="e:/keys/cas"
keystorePass="111111"/>

参数说明:

  • keystoreFile:在第一步创建的key存放位置
  • keystorePass:创建证书时的密码

6、启动tomcat服务器

将第1步下载好的war包放到tomcat的webapp目录下,启动tomcat,访问https://localhost:8443/cas/login页面,输入casuser/Mellon可以成功登录表示服务器已经搭建完成。

查看配置文件deployerConfigContext.xml可以获取默认的用户名和密码信息,后续会详细说明该配置文件。

登录成功

7、数据库用户认证方式配置

在之前的步骤里面,我们已经初步完成了cas单点登录服务器的搭建,但是很明显上述用户的验证方式不是我们想要的,下面我们来进一步配置cas服务器怎么读取数据库的信息进行身份验证,首先打开:

webapp/cas/WEB-INF/deployerConfigContext.xml

然后进行如下配置修改:

  <!--**********************************注释*****************************************************
  <entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" />
  **************************************注释**************************************************-->
  <entry key-ref="dbAuthHandler" value-ref="primaryPrincipalResolver" /> <!--**********************************注释*****************************************************
<bean id="primaryAuthenticationHandler"
class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler">
<property name="users">
<map>
<entry key="casuser" value="Mellon"/>
</map>
</property>
</bean>
**************************************注释**************************************************--> <!--**********************************新增**************************************************-->
<!-- Define the DB Connection -->
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
p:driverClass="com.mysql.jdbc.Driver"
p:jdbcUrl="jdbc:mysql://localhost:3306/ssm?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"
p:user="root"
p:password="1234" /> <!-- Define the encode method-->
<bean id="passwordEncoder"
class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder"
c:encodingAlgorithm="MD5"
p:characterEncoding="UTF-8" /> <bean id="dbAuthHandler"
class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"
p:dataSource-ref="dataSource"
p:sql="select password from t_user where username=?"
p:passwordEncoder-ref="passwordEncoder"/>
<!--***********************************新增*************************************************-->

最后,加入以下依赖包:c3p0-0.9.1.2.jar,MySQL-connector-Java-5.1.21.jar,cas-server-support-jdbc-4.0.0.jar

重启tomcat服务器,发现已经可以使用数据库用户进行登录了。

----------------------------------------------------------------------------------------------------------------------------

ps:除了代码之外,咱还可以聊点别的,有兴趣可以关注我的个人微信公众号!

CAS单点登录服务器搭建的更多相关文章

  1. SSO之CAS单点登录详细搭建教程

    本教程是我个人编写,花费几个小时的时间,给需要学习的人员学习使用,希望能帮助到你们. [环境说明]:本文演示过程在同一个机器上的(也可以在三台实体机器或者三个的虚拟机上),环境如下: windows7 ...

  2. 搭建CAS单点登录服务器

    最近公司的一个项目需要用到单点登录的功能,之前对单点登录了解得不多.于是网上找了下单点登录的解决方案,发现CAS是个不错的解决方案.于是搭个环境测试了一下.这里记录下测试的详细步骤. 官网:http: ...

  3. CAS 单点登录 服务器整合

    概述 现在企业内部的系统越来越多,如果各个应用都有自己的用户系统,那么用户将不得不要记住不同系统的用户名密码,因此独立的用户系统应运而生,各个系统之间通过单点登录的方式,这样内部只需要记住一个用户名和 ...

  4. CAS单点登录之mysql数据库用户验证及常见问题

    前面已经介绍了CAS服务器的搭建,详情见:搭建CAS单点登录服务器.然而前面只是简单地介绍了服务器的搭建,其验证方式是原始的配置文件的方式,这显然不能满足日常的需求.下面介绍下通过mysql数据库认证 ...

  5. CAS单点登录学习(一):服务端搭建

    下载先在网上下载cas-server-3.5.2,将里面的cas-server-webapp-3.5.2.war放到tomcat的webapps目录下. https设置cas单点登默认使用的是http ...

  6. CAS单点登录(SSO)完整教程

    转:http://blog.csdn.net/frinder/article/details/7969925 CAS单点登录(SSO)完整教程(2012-02-01更新) 一.教程说明 前言 教程目的 ...

  7. cas 单点登录(SSO)之一: jasig cas-server 安装

    cas 单点登录(SSO)实验之一: jasig cas-server 安装 参考文章: http://my.oschina.net/indestiny/blog/200768#comments ht ...

  8. 【CAS单点登录视频教程】 第05集 -- CAS服务器安装

    第一步: 下载cas 服务器 cas-server-3.5.2-release.zip 目录 ----------------------------------------- [CAS单点登录视频教 ...

  9. cas 单点登录(SSO)之中的一个: jasig cas-server 安装

    cas 单点登录(SSO)实验之中的一个: jasig cas-server 安装 參考文章: http://my.oschina.net/indestiny/blog/200768#comments ...

随机推荐

  1. spring学习起步

    1.搭载环境 去spring官网下载这几个包,其中commons-logging-1.2.jar是一个日志包,是spring所依赖的包,可以到apache官网上下载 也可以访问http://downl ...

  2. JDBC连接数据库实现删除功能

    这次同样运用之前写过的部分代码进行改变,实现一个删除功能,这个功能很好添加,表单中只要form一个参数到DeleteServlet中,所以重点的代码还是在DeleteServlet中实现业务逻辑. 我 ...

  3. 数据库CAST()函数和CONVERT()函数比较

    对简单类型转换,CAST()函数和CONVERT()函数的效果一致,只是语法不同.前者更易使用,而后者的优势是格式化时间和数值.在以下这几种情况,二者一样: 1-1.SELECT CONVERT(de ...

  4. .net做的exe和electron做的exe之间的通信问题

    目前工作遇到个问题: .net做的exe和electron做的exe,之间进行数据通信 目前找到两个相对方便的方法: 1.命名管道 ①.net命名管道资料: 进程间通信 - 命名管道实现 ②elect ...

  5. 老李推荐:第8章5节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-运行测试脚本

    老李推荐:第8章5节<MonkeyRunner源码剖析>MonkeyRunner启动运行过程-运行测试脚本   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化 ...

  6. Myeclipse8.5开发-安装一:Myeclipse8.5注册码生成程序

    环境:Myeclipces8.5 1.安装Myeclipces8.5. 2.打开Myeclipces新建任意项目. 3.新建MyEclipseKeyGen.java类.点击运行,控制台输入您的注册名, ...

  7. layout_weight相关知识

    之前使用layout_weight都是在layout_width或layout_height为0dp的时候,都没出现什么问题,但是无意间看到了如果设为match_parent会出现不同效果记录一下. ...

  8. 【iOS】7.4 定位服务->3.4 地图框架MapKit 功能4:地图截图

    本文并非最终版本,如果想要关注更新或更正的内容请关注文集,联系方式详见文末,如有疏忽和遗漏,欢迎指正. 本文相关目录: ================== 所属文集:[iOS]07 设备工具 === ...

  9. TCP基础知识 复习

    前言 说来惭愧,大二时候学的计算机网络好多都不太记得了,不过还好有认真学过,捡起来也挺快的,就是对于现在业界中使用的网络算法的不是很懂: 1 TCP报文段结构 1.1 序号和确认号 序号,是报文段首字 ...

  10. php基础知识(二)---2017-04-14

    1.字符串的三种表达形式: (1)双引号 (2)单引号 (3)尖括号 $s = <<<A <div style="width:500px; height:100px; ...