最近公司要做一个单点登录的东西,这里记录一下步骤方便记忆
demo地址:https://github.com/hanxiaochuang666/cas-server
首先:对cas不了解的可以先看下官方文档,或者看下github官网
然后开门见山,直接开始搭建
cas下载,官方建议的是使用覆盖的形式:
为了方便我使用git去github官网down下来然后自己打包(没装git的,百度装一下就行了):
git clone -b 5.3 https://github.com/apereo/cas-overlay-template.git
下载下来后进入到主分支(就是pom.xml所在的目录下):
然后使用mvn打包方式打包:
mvn clean package
将这个cas.war包复制一下放到tomcat的webapps下面:
然后启动tomcat就行了
启动之后在任意浏览器中输入:http://localhost:8088/cas/login
上面的8088是我自己改过tomcat的端口,默认是8080的
看到页面:
输入默认的用户名和密码:casuser/Mellon,点击登录:
这样就成功了!!!
但是这里有个问题,页面显示连接不是安全的:
ps:或者可以强制tomcat使用http访问:参考这个博主的,感觉挺靠谱:抛弃Https让Cas以Http协议提供单点登录服务
那么要使用https访问,就要有证书
使用jdk自带的keytool工具,首先使用打开命令行win+r输入cmd:
进入到jdk的bin目录下:
然后输入:
keytool -genkey -alias tomcat -keyalg RSA -keystore D:/keystore
这条命令会在你的D盘下生成一个keystore文件,注意:输入的时候,秘钥库口令随便写,但是一定得记住,我这里输的是123456,名字与形式要写一个域名,并且这个域名客户端要用,且需要在host文件中配置
keytool -export -trustcacerts -alias tomcat -file D:/tomcat.cer -keystore D:/keystore
这条命令会导出一个tomcat.cer文件,秘钥库口令就是上面输入的123456
这里需要注意你的cmd窗口是不是用管理员权限打开的,如果不确定,就关掉重新用管理员权限打开,否则导入的时候会报没有权限的错误导致导入不成功
keytool -import -trustcacerts -alias tomcat -file D:/tomcat.cer -keystore "C:/Program Files/Java/jdk1.8.0_71/jre/lib/security/cacerts"
注意上面的jdk路径要改成你自己的,导入的时候,先让你输一个秘钥库口令,注意这个口令不是上面的123456了,而是默认的changeit
成功后会弹出添加成功,可以验证一下:
keytool -list -keystore "C:\Program Files\Java\jdk1.8.0_71\jre\lib\security\cacerts" | findstr/i tomcat
有东西输出就成功了
windows修改路径:C:\Windows\System32\drivers\etc
因为需要管理员权限,可以先复制到桌面,然后在最后添加一行:
127.0.0.1 hanchuang.com
然后再把文件复制回去
打开你的tomcat的service.xml文件,我的地址是
在Service节点下添加下面的代码(把自己的8080屏蔽掉):
保存后,重启tomcat,访问https://localhost:8443/cas/login
会提示不安全,我们选择下面的继续访问就可以了:
然后右面的那个提示就没有了:
或者使用域名访问:
tomcat主页:https://hanchuang.com:8443
cas主页:https://hanchuang.com:8443/cas/login
这个博主很强:https://blog.csdn.net/yelllowcong/article/details/78805420