CAS服务端搭建

工具
jdk1.8
tomcat 8.5.50 (注意要使用tomcat8版本以上的)
cas-overlay-template-5.2.1
我这里用的是一个无侵入式的一套来设计cas,所谓的无侵入式就是你直接打成war包,放到tomcat里面运行,你能运行,你也可以自己建立相应的文件。
路径:https://gitee.com/fengzxia/cas-overlay-template.git
一、首先还是从生成证书开始把,因为cas是需要域名的,而我们可以通过jdk中的keytool生成证书。
1.使用第一个命令:keytool -genkey -alias cas -keyalg RSA -validity 999 -keystore c:/etc/cas/thekeystore会出现如图界面
CAS服务端搭建
,这时候会在c盘生成thekeystore文件。
2.继续下一个命令:keytool -export -file /etc/cas/config/cas.crt -keystore c:/etc/cas/thekeystore -alias cas,这时候会生出一个交cas.crt的证书。
3.最后将证书导入到jre中: keytool -import -file /etc/cas/config/cas.crt -alias cas -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit,记住要加上jdk的默认密码,也就是-storepass changeit,这时候会出现下图所示,这个过程千万要注意你的路径是否存在空格,这个将导致问题的出现。到这里就完成了证书的生成了,现在就可以继续下一步了。
4.记住证书生成后记得要修改host文件,因为我们是自己生成的证书。修改host文件其实就是将本地的ip对应到你刚才输入的域名,也就是test.test.com
下载cas-overlay
下载好以后,打开看以后应该是这样的目录结构
CAS服务端搭建
,我们可以直接在里面打开命令行(cmd)运行mvn clean package来进行编译,因为我们这个编译出来的是war包,等pom的jar包下载完后以及编译成功后就会多出一个target文件夹,里面有cas的内容,我们只需要将cas.war(或者直接将cas的文件夹放到tomcat的webapp并启动tomcat)这时候我们访问test.test.com:8080/cas/login就能看到如下的页面,
CAS服务端搭建
这时候基本的就完成了,这时候就有人问那前面生成的证书也没什么用啊,没错,我们现在的确是没有用到证书,所以这上面不是有两个提醒吗,第一个就是因为我们使用的是http而不是https,所以我们要去配置tomcat。找到tomcat里面的conf中的server.xml将
改成下面的

,这时候重新启动tomcat,然后继续按刚才的去访问,发现找不到,因为我们之前使用的是http,现在换成https了,你只要加入https就可以出现这个画面:
CAS服务端搭建
我们看到的最后一行就是设置的默认密码,前面配置的就是端口号以及证书等等。这个暂时对我们没有什么用处。我们就直接看下如何去连接数据库进行用户的验证。其实这些东西官方文档上面都已经给出了,可以自己去查看。
要想进行数据库的连接,必须要导入一些必要的包,比如数据库驱动,mysql连接等包,这些maven都能在网上找到,我这边就例举我使用的pom文件

org.apereo.cas cas-server-support-rest ${cas.version} org.apereo.cas cas-server-support-jdbc-drivers ${cas.version} org.apereo.cas cas-server-support-jdbc ${cas.version} mysql mysql-connector-java 5.1.47 然后在application.properties配置文件里面加上如下简单的配置就可以达到数据库的访问了 cas.authn.jdbc.query[0].url=jdbc:mysql://127.0.0.1:3306/库名?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false cas.authn.jdbc.query[0].user=mysql用户名 cas.authn.jdbc.query[0].password=mysql密码 cas.authn.jdbc.query[0].sql=select * from 表名 where 用户名字段=? cas.authn.jdbc.query[0].fieldPassword=密码字段 cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver 在引入这个的同时要将之前的哪个默认密码给删掉。 这时候我们在进行mvn clean package命令的时候会重新生成一个war包,我们将这个新的war包放入到tomcat里面并启动可以看到如下图所示 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200519102019274.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NoZW56aG9uZ2dl,size_16,color_FFFFFF,t_70) 我们现在使用的是密文密码,更多时候我们使用的是加密的密码,而cas也为我们提供了这些,比如最简单的md5、加盐以及sha等,cas都提供了只要自己在配置文件里面加就可以了,但是很多时候我们的密码不是简单的这些,这时候就需要我们自己自定义加密了,其实配置文件里面有个cas.authn.jdbc.query[0].passwordEncoder.type这个属性的作用就是我们自己自定义加密使用。只需要实现passwordEncoder(或者其他)这个接口,然后里面写你的加密逻辑即可。 到这里简单的CAS服务部署好了 其中一定要注意版本,每个人的mysql版本不一样,tomcat会报错

相关文章:

  • 2021-10-04
  • 2021-05-09
  • 2021-06-30
  • 2018-06-18
  • 2021-10-08
  • 2021-06-20
  • 2022-12-23
猜你喜欢
  • 2021-05-28
  • 2021-10-02
  • 2021-09-01
  • 2021-12-13
  • 2021-11-08
  • 2021-09-25
  • 2022-02-03
相关资源
相似解决方案