网站首页 > java教程 正文
本文主要介绍在使用SpringBoot的开发过程中如何整合CAS Client实现单点登录的功能。
准备工作
(1)搭建好CAS服务端(参考:https://blog.csdn.net/u014553029/article/details/88102311)
(2)准备好一个普通的SpringBoot Web项目
集成
一、引入CAS client依赖
在pom.xml中引入CAS Client的依赖包。代码如下:
<dependency>
<groupId>net.unicon.cas</groupId>
<artifactId>cas-client-autoconfig-support</artifactId>
<version>2.1.0-GA</version>
</dependency>
二、配置
在application.properties或者application.yml中添加相关配置,主要配置内容包括服务器的相关地址,客户端的相关地址等。我这里是application.yml,配置内容如下:
cas:
#后端服务地址
client-host-url: http://127.0.0.1:8888
#cas认证中心地址
server-url-prefix: http://146.56.192.87:8080/cas
#cas认证中心登录地址
server-login-url: http://146.56.192.87:8080/cas/login
validation-type: cas3
三、在启动类中添加启动注解
//启用CAS
@EnableCasClient
@SpringBootApplication
public class SpringBootSsoApplication {
//省略部分内容
}
四、编写测试方法
@Controller
public class TestController {
@Value(value = "${cas.server-url-prefix}")
private String serverUrlPrefix = "";
@Value(value = "${cas.client-host-url}")
private String clientHostUrl = "";
@GetMapping("user")
@ResponseBody
public String user(HttpServletRequest request) {
Assertion assertion = (Assertion) request.getSession().getAttribute(AbstractCasFilter.CONST_CAS_ASSERTION);
String loginName = null;
if (assertion != null) {
AttributePrincipal principal = assertion.getPrincipal();
loginName = principal.getName();
System.out.println("访问者:" + loginName);
}
return "访问者:" + loginName;
}
@RequestMapping("/logout")
public String logout(HttpSession session) {
session.invalidate();
return "redirect:" + serverUrlPrefix + "/logout?service=" + clientHostUrl + "/sso-client/user";
}
}
五、测试登录与退出
5.1 登录:
(1)打开浏览器访问:http://127.0.0.1:8888/sso-client/user
(2)由于没有登录,重定向到:http://146.56.192.87:8080/cas/login?service=http://127.0.0.1:8888/sso-client/user
(3)输入用户名密码,点击登录,成功之后跳转到http://127.0.0.1:8888/sso-client/user中
5.2 退出:
(4)访问:http://127.0.0.1:8888/sso-client/logout
(5)cas完成退出,并跳转到http://127.0.0.1:8888/sso-client/user,由于该地址需要登录,仍会重定向到登录界面
5.3 验证单点:
(6)在启动一个客户端,端口为8889,项目名称为sso-client1
(7)访问:http://127.0.0.1:8889/sso-client1/user,直接获取到用户信息,不需要登录。单点认证验证完成。
注意:
(1)未认证授权的服务,不允许使用CAS来认证您访问的目标应用。
修改WEB-INF\classes\services\HTTPSandIMAPS-10000001.json
"serviceId" : "^(https|imaps)://.*"
改为
"serviceId" : "^(https|imaps|http)://.*"
(2)WEB-INF\classes\application.properties
# Service Registry(服务注册)
# 开启识别Json文件,默认false
cas.serviceRegistry.initFromJson=true
# 保存tgc
cas.tgc.secure=false
# 默认情况下退出登录时,页面将会跳转到CAS服务器内部的注销页面 casLogoutView.jsp ,
# 如果我们需要在退出登录后,跳转到指定页面,需要将下列参数设为true,在退出登录的url里需要添加service参数,
# 该参数指定在注销后需要跳转的页面,配置允许登出后跳转到指定页面
cas.logout.followServiceRedirects=true
#跳转到指定页面需要的参数名为 service(default)
cas.logout.redirectParameter=service
#在退出时是否需要 确认一下 true确认 false直接退出
cas.logout.confirmLogout=false
#是否移除子系统的票据
cas.logout.removeDescendantTickets=true
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:
https://blog.csdn.net/u014553029/article/details/111601235
- 上一篇: GToken替换JWT实现SSO单点登录
- 下一篇: ASP.NET中的单点登录
猜你喜欢
- 2024-11-20 后端开发之多应用之间单点登录
- 2024-11-20 单点登陆常用的方式Oauth认证登录
- 2024-11-20 Python Web:如何通过JWT实现单点登录?
- 2024-11-20 4000字长文,带你了解单点登录
- 2024-11-20 SSO单点登录(三种实现方式)
- 2024-11-20 一次登录、便捷访问所有?聊聊CAS单点登录是如何实现的
- 2024-11-20 SpringBoot集成xxl-sso实现单点登录
- 2024-11-20 连环画解析“单点登录”原理,保证你能看懂
- 2024-11-20 CAS 单点登录简介
- 2024-11-20 springboot 集成cas5.3 实现sso单点登录
你 发表评论:
欢迎- 最近发表
-
- Java内存溢出紧急处理:10个必知的Linux命令快速定位OOM
- 面试常问的 25+ 个 Linux 命令(linux面试命令大全)
- Java堆外内存溢出紧急处理实战:Linux命令定位与Spring Boot解决
- java开发常用的Linux命令,高频的没你想象的多
- Java 应用 CPU 飙升?8 个 Linux 命令组合拳快速锁定异常线程
- Java 开发者线上问题排查常用的 15 个 Linux 命令
- Java程序员必备的Linux命令:让你的工作效率翻倍
- Java程序员必备的Linux命令全解析
- [超全整理] Java 程序员必备的 100 条 Linux 命令大全
- SAP ABAP资源导航(sap aatp)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)