SpringBoot CAS单点退出

cas-server默认配置的单点退出并没有做到真正的单点退出(在一个客户端退出时,另一个已经登录的客户端还能访问)。

springboot下设置单点退出:

    与spring设置单点退出相同,cas-server已经内置了此类功能,我们只需要加入一个拦截器与监听器就好。不过我发现FilterRegistrationBean中的setOrder设置拦截器顺序并不起作用,最后只能通过放置顺序控制拦截器的执行顺序。

SingleSignOutFilter拦截器设置,需要是第一个加载的拦截器。

  @Bean
    public SingleSignOutFilter singleSignOutFilter(){
        return new SingleSignOutFilter();
    }

    @Bean
    public FilterRegistrationBean singleSignOutFilterBean(){
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        filterRegistrationBean.setFilter(singleSignOutFilter());
//        filterRegistrationBean.addInitParameter("targetFilterLifecycle","true")
        filterRegistrationBean.setEnabled(true);
        filterRegistrationBean.addUrlPatterns("/*");
        filterRegistrationBean.setOrder(1);
        filterRegistrationBean.setName("singleFilter");
        System.out.println("================================singleFilter执行");
        return filterRegistrationBean;
    }
public SingleSignOutHttpSessionListener singleSignOutHttpSessionListener(){
    return new SingleSignOutHttpSessionListener();
}
@Bean
public ServletListenerRegistrationBean<SingleSignOutHttpSessionListener> singleSignOutHttpSessionListenerBean(){
    ServletListenerRegistrationBean<SingleSignOutHttpSessionListener> listenerRegistrationBean= new ServletListenerRegistrationBean<>();
    listenerRegistrationBean.setEnabled(true);
    listenerRegistrationBean.setListener(singleSignOutHttpSessionListener());
    listenerRegistrationBean.setOrder(3);
    listenerRegistrationBean.setName("singleListener");
    System.out.println("================================singleListener执行");
    return listenerRegistrationBean;
### 回答1: Spring Boot CAS 单点登录是一种基于CAS(Central Authentication Service)的单点登录解决方案,它可以实现多个应用系统之间的用户认证和授权,用户只需要登录一次,就可以访问所有的应用系统。Spring Boot CAS 单点登录的实现过程中,需要使用CAS Server 和 CAS Client,CAS Server 负责用户认证和授权,CAS Client 负责将用户的认证信息传递给应用系统。Spring Boot CAS 单点登录的优点是可以提高用户体验,减少用户的登录次数,提高系统的安全性。 ### 回答2: Spring Boot是一种流行的Java Web应用框架,它能够快速构建高效的Web应用程序。在现代Web应用程序中,用户身份认证和访问授权是至关重要的部分。这就为单点登录(SSO)技术提供了一个重要的背景。 CAS(Central Authentication Service)是一种功能强大的SSO协议,被广泛应用于大型企业的身份认证系统中。CAS允许用户在一个系统上登录,即可在其他系统中无需重新输入用户名和密码即可访问这些系统。CAS协议以CAS Server作为核心,来处理用户的身份认证。因此,Spring Boot与CAS Server联合使用,可以构建出一个高效的单点登录系统。 在实际应用中,Spring Boot应用程序既可以作为CAS Server,也可以作为CAS Client。如果是作为CAS Server,需要引入Spring Security CAS Starter;如果是作为CAS Client,则需要引入Spring Cloud Security CAS Starter。这两个Starter都非常容易使用,只要按照文档中的步骤配置即可。 在CAS SSO系统中,用户首先在CAS Server登录,然后CAS Server会为用户颁发一个Ticket。接下来,用户访问其他CAS Client系统时,该系统会将Ticket发送到CAS Server进行验证。验证通过后,CAS Server将发出身份验证成功的消息,该系统便可以为用户提供访问授权。 总之,使用Spring Boot和CAS Server实现SSO系统,可以节省用户的时间和精力,并增强Web应用程序的安全性。Spring Boot和CAS Server的联合使用,对于构建任何规模的企业应用程序都非常适用。 ### 回答3: CAS(Central Authentication Service)是一种单点登录(Single Sign-On,SSO)协议,可以实现多个应用系统之间的用户认证和授权信息共享。Spring Boot是一种快速开发应用程序的框架,它可以帮助开发者快速构建基于CAS单点登录应用。本文将介绍如何使用Spring Boot和CAS实现单点登录。 1. 配置CAS服务器 首先要从CAS官网上下载和安装CAS服务器,安装完成后,需要对CAS进行一些配置。主要包括以下几步: 设置CAS服务器的主机名和端口号; 配置CAS服务器的认证协议; 配置CAS服务器的用户管理模块; 配置CAS服务器的客户端应用权限。 2. 配置CAS客户端 接下来需要配置CAS客户端来与CAS服务器进行通信。配置CAS客户端需要以下步骤: 设置CAS客户端的应用名称; 配置CAS客户端的访问路径; 配置CAS客户端的认证协议。 3. 集成Spring Boot和CAS 使用Spring Boot可以极大地简化项目的开发和部署,因此需要将CAS集成到Spring Boot中。主要步骤如下: 在pom.xml文件中添加CAS的依赖项; 配置Spring Boot应用程序以与CAS进行集成; 编写CAS登录和注销的控制器。 4. 使用CAS实现单点登录 CAS单点登录的核心功能是,用户在一个客户端应用程序中登录,然后在使用其他客户端应用程序时,无需再次输入用户名和密码。要实现这一功能,需要以下步骤: 设置CAS客户端的应用程序之间的信任关系; 配置CAS客户端与CAS服务器之间的票据传递; 在Spring Boot应用程序中创建自定义过滤器。 总之,Spring Boot和CAS集成可以帮助开发者快速实现单点登录应用程序。借助CAS的优势,可以实现多个应用程序之间的用户认证和授权信息共享,提高应用程序的安全性和用户体验。同时,Spring Boot的高效开发和部署能力,可以让开发者轻松应对复杂的CAS单点登录应用程序开发和部署过程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值