单点登录CAS集成前后台分离vue项目

spring boot项目访问jsp页面已经介绍了如何在springboot项目中访问jsp页面,有了上面的基础在下面实现cas集成vue项目,由于vue项目是前后台分离的,在此记录下具体集成的步骤,方便以后查看

项目背景:cas集成的项目是使用renren-fast提供的开源框架,后台是用spring boot写的,前台使用vue。这里用cas集成的项目是在不改变项目原有登录机制的情况下,为项目单独开了个单点认证的登录入口

该项目的前后台交互是使用ajax,做cas集成要了解该项目登录模块是怎么实现的,需要在单点认证成功后将系统原有登录机制登录时所作的工作做完即可。其登录模块是使用为用户生成的记录在数据库中的token字段来判断用户是否登录的,用户登录成功后会将为用户生成的token值由后台传递vue前台放在cookie中,然后用户访问受限的资源时会判断是否有有效的token,如果有则认为是合法用户,若没有则引导用户到登录页面。所以在集成时,CAS单点登录认证成功后只要将token值传到前台并存入cookie,即被认为是登录成功的,则可以进入系统主页面。

单点登录的客户端代码是用jsp写的,访问该系统输入单点登录的入口地址会执行下面的代码

下面是单点登认证要执行的客户端核心代码,在认证成功后,生成token并将token值存在session中

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.io.*"%>
<%@ page import="io.admin.modules.sys.entity.SysUserEntity" %>
<%@ page import="io.admin.modules.sys.service.SysUserService" %>
<%@page import="
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
Spring Boot 和 Vue 分离项目集成 CAS (Central Authentication Service,集中认证服务) 单点登录通常是一个常见的需求,这样可以提供统一的登录入口,用户在登录一次后可以在多个系统间无需再次登录。下面是集成的基本步骤: 1. 添加依赖:首先,你需要在 Spring Boot 项目的 pom.xml 或者 build.gradle 文件中添加 CAS 的客户端库依赖。 2. 配置 CAS:在 Spring Boot 应用中,设置 CAS 客户端配置。这包括 CAS 服务器的地址、应用的服务名、回调 URL(处理 CAS 登录成功后的重定向)等信息。通常会在 `application.properties` 或 `application.yml` 中配置 cas相关的属性。 ```properties cas.server-url=http://cas.example.com/cas cas.login-url=http://cas.example.com/cas/login cas.logout-url=http://cas.example.com/cas/logout cas.client-id=your-client-id cas.redirect-uri=http://localhost:8080/login-callback ``` 3. 创建 CAS 授权过滤器:在 Spring Security 配置中添加一个 CASFilter,这个过滤器会检查用户的 CAS 认证状态,并在未授权时引导用户到 CAS 登录页面。 4. 实现登录回调:当用户通过 CAS 登录成功后,CAS 会将用户信息发送回你指定的回调 URL。在这里,你需要捕获这些信息并进行处理,比如设置 session 或者 JWT 令牌,然后重定向回端。 5. Vue.js 部分:在Vue 项目中,使用 Axios 或其他 HTTP 请求库向后端发起请求时,带上一个 token 或者 JWT 以证明用户身份。如果请求头没有验证信息,后端可以根据配置判断是否需要转发到 CAS 进行二次认证。 6. 登出处理:在端和后端都实现注销操作,端可以调用后端提供的 CAS 注销接口,后端再调用 CAS 注销服务并清空 session 或 JWT。 相关问题: 1. 如何在 Spring Boot 中启用 CAS 的客户端支持? 2. 在 Vue 中如何处理 CAS 登录成功后的回调? 3. 如何确保端和后端的注销操作能够同步 CAS 服务?
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值