ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CAS实现单点登录

2022-01-25 23:34:54  阅读:212  来源: 互联网

标签:keystore jdbc 单点 tomcat 登录 密码 CAS cas 我们


前言

1.单点登录(Single Sign On),简称为 SSO,是比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

CAS下载安装

1.CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议。CAS 是 耶鲁大学(Yale University)发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。

2.github下载地址 https://repo1.maven.org/maven2/org/apereo/cas/cas-server-webapp-tomcat/5.3.14/ 下载如下图所示5.3.14.war文件

file

生成秘钥库

1.我们采用JDK自带的keytool工具生成秘钥库,别名casbm,生成的秘钥存储路径为D:\cas\keystore
2.打开cmd窗口执行以下命令,命令如下:
keytool -genkey -v -alias casbm -keyalg RSA -keystore D:\cas\keystore\casbm.keystore

file

秘钥口令随便输入,我这里输入123456

file

这里我们要输入一些问题的答案,我们可以随便输入,例如我输入的

file

然后这里问我们是否确认为这些信息,我们这里确认输入y

file

这里按下回车,可以看到命令成功结束,这时我们看一下路径下有没有生成秘钥

file

file

我们可以看到已经生成了秘钥

从秘钥库中导出证书

1.我们生成秘钥库后需要从秘钥库中导出证书,打开cmd窗口,命令如下:
keytool -export -trustcacerts -alias casbm -file D:/cas/keystore/casbm.cer -keystore D:/cas/keystore/casbm.keystore

file

这时让我们输入密码,我上面设置的为123456,这里我就输入123456,如下图所示导出成功

file

将证书导入到JDK证书库

1.我们从秘钥库导出证书后需要将证书导入到JDK证书库中,打开cmd窗口,命令如下,其中最后的路径为你本地jdk的路径,要确保该路径正确:
keytool -import -trustcacerts -alias casbm -file D:/cas/keystore/casbm.cer -keystore "D:/Configure/java/java8/jre/lib/security/cacerts"

file

这个时候提示我们输入密码,这个密码不是我们上面设置的密码,而是固定的密码: changeit

file

这个时候提示我们是否信任此证书,我们输入:y

file

配置tomcat支持https

1.由于cas需要https协议访问,所以我们要配置tomcat也支持https协议,我们找到我们的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="D:\cas\keystore\casbm.keystore" keystorePass="123456"/>

file

将下载的CAS包放入tomcat中启动

1.我们将之前下载的cas包放入tomcat中启动,首先将war包放入tomcat的webapps下

file

2.这里我们为了方便访问,我们将war包改名为cas

file

3.这里我们启动tomcat,找到tomcat中bin下的startup.bat文件双击启动。

file

4.启动完成后我们访问登录页面验证是否启动成功,访问地址如下,用户名为:casuser 密码为:Mellon:
https://localhost:8443/cas

file

5.用户名密码是在如下配置文件中指定的

file

配置CAS日志地址

1.这个时候我们为了方便日后排查问题,我们需要将cas的日志修改为我们指定的地址,找到如下配置文件

file

file

配置用户名密码为数据库中的真实用户名密码

1.上面我们的用户名密码是写死的,但是实际开发中我们的用户名密码是存储在数据库中的,这个时候需要我们从数据库中读取,我们打开application.properties文件,添加如下配置

cas.authn.jdbc.query[0].url=jdbc:mysql://localhost:3306/cas?serverTimezone=GMT

cas.authn.jdbc.query[0].user=root

cas.authn.jdbc.query[0].password=root

cas.authn.jdbc.query[0].sql=select * from user where username = ?

cas.authn.jdbc.query[0].fieldPassword=password

cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver

file

将所需要的驱动jar包放入cas项目中

1.我们需要将所需要的jar包放入cas项目的lib中,jar包名称如下,可以去maven仓库中搜索

cas-server-support-jdbc-5.3.1.jar

cas-server-support-jdbc-drivers-5.3.1.jar

cas-server-support-jdbc-authentication-5.3.1.jar

connector-java-5.1.34_1.jar

file

2.此时我们重新启动tomcat,使用数据库中的用户名密码登录

设置密码加密

1.我们到此已经可以使用数据库的用户名密码来登录cas了,但是明文的密码并不安全,现在我们需要配置一下加密。还是找到application.properties文件,添加如下代码

file

cas.authn.jdbc.query[0].passwordEncoder.type=DEFAULT

cas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8

MD5加密策略

cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5

2.此时已经配置好加密了,我们可以测试一下,将123456加密,然后将密码改为加密后的,此时重启tomcat再用123456登录。

file

file

标签:keystore,jdbc,单点,tomcat,登录,密码,CAS,cas,我们
来源: https://www.cnblogs.com/xiaoqiJava/p/15845021.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有