前言1.单点登录(SingleSignOn),简称SSO,是比较流行的企业业务集成解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS下载安装1、CAS是CentralAuthenticationService的缩写,中央认证服务,一个独立的开放指令协议。CAS是由耶鲁大学发起的一个开源项目,旨在为Web应用系统提供一种可靠的单点登录方式。CAS于2004年12月正式成为JA-SIG的一个项目。2.github下载地址https://repo1.maven.org/maven...如下图下载5.3.14.war文件生成keystore1.我们使用JDK自带的keytool工具生成keystore,别名casbm,生成的key存放路径为D:\cas\keystore2。打开cmd窗口,执行如下命令,命令如下:keytool-genkey-v-aliascasbm-keyalgRSA-keystoreD:\cas\keystore\casbm.keystoresecret密钥密码随便输入,这里我输入123456这里需要输入一些问题的答案,我们可以随便输入,比如我输入了然后问我们是否确认这个信息,我们在这里确认这里输入y然后回车,可以看到命令结束的时候成功了,我们看看路径中是否生成了key。我们可以看到密钥已经生成了。从密钥库中导出证书。1、我们生成keystore后,我们需要从keystore中导出证书。打开cmd窗口,命令如下:keytool-export-trustcacerts-aliascasbm-fileD:/cas/keystore/casbm.cer-keystoreD:/cas/keystore/casbm.keystore这个时候让我们输入密码,我上面设置的是123456,这里我输入123456,如下图,导出成功将证书导入JDK证书库1.我们从密钥库导出证书后,需要将证书导入JDK证书库,打开cmd窗口,命令如下,其中最后的路径是你本地jdk的路径,确保路径正确:keytool-import-trustcacerts-aliascasbm-fileD:/cas/keystore/casbm.cer-keystore"D:/Configure/java/java8/jre/lib/security/cacerts"这时候提示我们输入密码。这个密码不是我们上面设置的密码,而是一个固定的密码:changeit此时提示我们是否信任这个证书。我们输入:y,配置tomcat支持https1。由于cas需要https协议访问,所以我们需要配置tomcat也支持https协议,我们找到我们tomcat的server.xml文件,添加如下配置:将下载的CAS包放入tomcat启动1.我们将之前下载的cas包放入tomcat启动,首先将war包放入tomcat的webapps2.这里我们将war包重命名为cas3,方便访问。这里我们启动tomcat,找到tomcat中bin下的startup.bat文件双击启动4、启动完成后,我们访问登录页面验证是否启动成功。访问地址如下。用户名为:casuser,密码为:Mellon:https://localhost:8443/cas5。用户名和密码在下面的配置文件CAS日志地址1中指定。这个时候为了方便以后排错,我们需要修改cas日志到我们指定的地址,找到下面的配置文件,配置用户名和密码作为数据库中的真实用户名和密码。1.我们上面的用户名和密码是硬编码的,但是在实际开发中,我们的用户名和密码是保存在数据库中的。这时候我们就需要从数据库中读取出来。我们打开application.properties文件,添加如下配置cas.authn.jdbc.query[0].url=jdbc:mysql://localhost:3306/cas?serverTimezone=GMTcas.authn.jdbc.query[0]。user=rootcas.authn.jdbc.query[0].password=rootcas.authn.jdbc.query[0].sql=select*fromuserwhereusername=?cas.authn.jdbc.query[0].fieldPassword=密码cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver将需要的驱动jar包放入cas工程1.我们需要将需要的jar包放入cas工程的lib中。jar包名称如下。可以在maven仓库搜索cas-server-support-jdbc-5.3。1.jarcas-server-support-jdbc-drivers-5.3.1.jarcas-server-support-jdbc-authentication-5.3.1.jarconnector-java-5.1.34_1.jar2。此时我们重启tomcat,使用数据库Loginwithusernameandpassword设置密码加密1.我们可以使用数据库的用户名和密码登录cas,但是明文密码不安全,现在需要配置加密。还是找到application.properties文件,添加如下代码cas.authn.jdbc.query[0].passwordEncoder.type=DEFAULTcas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8MD5加密策略cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD52。此时已经配置好加密了,我们可以测试一下,加密123456,然后修改密码为encrypted,然后重启tomcat,用123456登录。