CAS Apereo 5.3.16 实现单点登录

发布于:2024-06-17 ⋅ 阅读:(141) ⋅ 点赞:(0)

1.CAS部署

服务端下载地址:cas5.3

1.下载好打开后,复制target/cas/WEB-INF/classes/META-INF/spring.factories
target/cas/WEB-INF/classes/services下的Apereo-10000002.json和HTTPSandIMAPS-10000001.json
target/cas/WEB-INF/classes下的application.properties和log4j2.xml到resources中形成如下结构:
在这里插入图片描述
2.然后修改HTTPSandIMAPS-10000001.json文件,添加http
在这里插入图片描述
3.修改application.properties文件,注释掉server.ssl三行配置,修改端口号(与tomcat中的保持一致就行)。
在这里插入图片描述
4.再增加两行配置:
在这里插入图片描述5.将项目打包生成.war文件,并命名为cas,放在tomcat的webapps目录下,启动tomcat,浏览器输入http://ip:端口号/cas/login,成功后如下图所示:
在这里插入图片描述
输入中的默认用户名casuser,密码Mellon,在application.properties文件的cas.authn.accept.users=casuser::Mellon配置中。
在这里插入图片描述
登出的url:http://ip:端口号/cas/logout
在这里插入图片描述

2.自定义校验——对接数据库

1.在源码的pom.xml中添加jdbc依赖包

			<dependency>
			    <groupId>org.apereo.cas</groupId>
			    <artifactId>cas-server-support-jdbc</artifactId>
			    <version>${
   cas.version}</version>
			</dependency>
			<dependency>
			    <groupId>org.apereo.cas</groupId>
			    <artifactId>cas-server-support-jdbc-drivers</artifactId>
			    <version>${
   cas.version}</version>
			</dependency>
			<dependency>
			    <groupId>mysql</groupId>
			    <artifactId>mysql-connector-java</artifactId>
			    <version>8.0.27</version>
			</dependency>
			<dependency>
			    <groupId>org.apereo.cas</groupId>
			    <artifactId>cas-server-core-authentication-api</artifactId>
			    <version>${
   cas.version}</version>
			</dependency>
			<dependency>
			    <groupId>org.apereo.cas</groupId>
			    <artifactId>cas-server-support-generic</artifactId>
			    <version>${
   cas.version}</version>
			</dependency>

也可自行下载相关包,放入tomcat\webapps\cas\WEB-INF\lib路径下
在这里插入图片描述
2.修改application.properties文件,添加如下配置:

cas.authn.jdbc.query[0].url=jdbc:mysql://ip:端口号/数据库名?serverTimezone=GMT
cas.authn.jdbc.query[0].user=连接数据库的用户名
cas.authn.jdbc.query[0].password=连接数据库的密码
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

如果数据库中密码是密文,还可添加如下配置:

cas.authn.jdbc.query[0].passwordEncoder.type=DEFAULT
cas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8
cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5     //密码加密算法,内置的有MD5、SHA、HMAC

整体如下图:
在这里插入图片描述
3.重启tomcat,输入数据库中的用户名、密码,登陆成功。

3.自定义校验——自定义密码校验

1.自定义加密算法可通过实现PasswordEncoder接口的matches方法实现。

package com.example.cas;

import org.springframework.security.crypto.password.PasswordEncoder;

public class SHA256Encodeing implements PasswordEncoder{
   
    @Override
    public 

网站公告

今日签到

点亮在社区的每一天
去签到