阿里二面:SpringBoot如何配置自动/手动方式集成CAS单点登出

springboot+shiro+cas5.2实现SSO单点登录(超详细) 一、下载cas的服务端cas-overlay-template,这里我用的是5.2版本,JDK用的1.8 二、进入到解压后的cas-overlay-template-master文件夹,使用maven命令打包,打包比较慢,建议maven仓库换成阿里云的提升速度 mvn clean package 三、打包完后会出现target文件夹,里面有cas.war文件 四 ... 阅读详情

本文目标

基于SpringBoot + Maven 分别使用自动配置与手动配置过滤器方式实现CAS客户端登出及单点登出。

本文基于《CAS学习笔记三:SpringBoot自动/手动配置方式集成CAS单点登录》的代码扩充而来,完整代码见 https://github.com/hellxz/cas-integration-demo

CAS服务端配置

单点登出跟随 service 给出的跳转地址重定向功能 在 CAS 服务端默认是关闭的,所以需要先开启它。

vim webapps/cas/WEB-INF/classes/application.properties

在最下方追加配置项 cas.logout.followServiceRedirects=true,保存重启CAS服务端。

代码目录结构

以上红字仅对本文修改的部分进行说明,其余请参考之前单点登录的实现文章。

代码实现

仅增量介绍关键类

SpringBoot自动配置登出实现

CasClientConfigurerImpl.java

package com.hellxz.cas;

import java.util.Map;

import org.jasig.cas.client.boot.configuration.CasClientConfigurer;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.stereotype.Component;

/**
 * cas-client-support-springboot 依赖提供了CAS客户端的自动配置,
 * 当自动配置不满足需要时,可通过实现{@link CasClientConfigurer}接口来重写需要自定义的逻辑
 */
@Component
public class CasClientConfigurerImpl implements CasClientConfigurer {

    /**
     * 配置认证过滤器,添加忽略参数,使/logoutPage登出提示页免登录
     */
    @Override
    @SuppressWarnings({ "rawtypes", "unchecked" })
    public void configureAuthenticationFilter(final FilterRegistrationBean authenticationFilter) {
        Map initParameters = authenticationFilter.getInitParameters();
        initParameters.put("ignorePattern", "/logoutPage");
    }

}

上边这个配置类的作用是自定义认证过滤器,将 /logoutPage 排除不走认证逻辑,此页面用于显示登出提示。

CasAutoConfigApp.java

package com.hellxz.cas;

import java.io.IOException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.jasig.cas.client.boot.configuration.EnableCasClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
@EnableCasClient
public class CasAutoConfigApp {
    @Value("${custom.cas.single-logout-url:}")
    public String casSingleLogoutUrl;

    public static void main(String[] args) {
        SpringApplication.run(CasAutoConfigApp.class, args);
    }

    @GetMapping("/test")
    public String test(HttpServletRequest request) {
        return "服务A测试通过";
    }
    
    /**
     * 首页,需要登录
     */
    @GetMapping("/index")
    public String index(HttpServletRequest request) {
      //@formatter:off
        return "<h1>登录成功</h1><br><br>"
                + "<a href=\"/logout\">退出登录</a><br><br>"
                + "<a href=\"" + casSingleLogoutUrl + "\">全局退出登录</a>";
      //@formatter:on
    }

    /**
     * 登出提示页,免登录
     */
    @GetMapping("/logoutPage")
    public String logoutPage(HttpServletResponse response) {
        //@formatter:off
        return "<h1>
CAS:一、初次client端接入 一、前言 近期,公司项目要与外公司项目对接;外公司CAS服务端项目,本公司业务系统作为client端(Struts2+spring+ibatis)接入。由于,现在是演练阶段,我提前学习下CAS server端与client端接入流程,并记录下来;以免以后再次淌坑。 以本公司业务系统client端(Struts2+spring+ibatis)为基础演练;cas-client-co... 阅读详情

相关推荐

SpringBoot整合CAS服务

本文描述了通过SpringBoot 项目连接CAS Server的完整实践过程。

m0_60681411的博客 4415

CAS单点登录

一。CAS单点登录 1。服务端设置 下载CAS SERVER包,下载4.00发布版在modules文件下有已经打好的包 https://github.com/apereo/cas/releases/tag/v4.0.0 如果是更高版本的,好像需要自己打包,进入cas-server-webapp自己打包 更改名字为cas.war,放到tomcat的webapps下,访问http://l...

u014203449的博客 1111

集成CAS单点登录 决策系统的配置以及注意事项

这里重点说CAS客户端的相关配置与写法。 先上原理图: 从上面可以看出,分为如下几个步骤: 1 当我们访问被保护的资源时,会被CAS客户端拦截到,并重定向到CAS服务端去登录,此时URL上通过service参数带上我们之前访问的资源 2 当CAS服务端登录成功后,会回到service参数指向的url,并且会多带一个参数ticket回来。我们拿到ticket的值到CAS验证地址去验证,他会返回一个XML结果回来。类似这样的。 这时就成功了。 决策系统客户端开发: 1 首先要将CAS客户端

帆软爱好者的专栏 895

CAS-统一认证 —客户端代码与配置

统一认证—客户端配置与编码。

weixin_56348428的博客 1564

cas5.3.9单点登录-总结遇到的坑

cas5.3.9单点登录-总结遇到的坑前言cas简介术语解释Ticket Grangting Ticket(TGT)Ticket Granting Cookie(TGC)Service Ticket(ST)图解TGC与TGTServer与Client交互过程项目搭建项目文档项目二次开发项目二次开发遇到的问题SSL证书申请cas ticket过期策略cas client单机-单点退出cas clie......

神奇de旋风的博客 1万+

HZERO-CAS单点登录

源码地址: https://gitee.com/DiDiaoXiaoMoLong/sso_server 0.文档介绍 文档以CAS作为单点登录服务器主要介绍了以下方面 1.配置HTTPS搭建单点登录服务器 2.使用数据库构建用户授权中心 3.基于SpringBoot+SpringSecurity+CAS搭建客户端单点登录连接已配置的服务器 4.如何支持HTTP客户端连接HTTPS单点服务器 5....

潘顾昌的博客 1910

CAS实现SSO全流程教程--基本原理和服务端配置CAS集成JDBC,LDAP)

CAS实现SSO全流程教程--CAS原理、服务端配置CAS集成JDBC和LDAP

qq_32650789的博客 3395

CAS学习笔记三:SpringBoot自动/手动配置方式集成CAS单点登录

本文目标 基于SpringBoot + Maven 分别使用自动配置手动配置过滤器方式集成CAS客户端。 需要提前搭建 CAS 服务端,参考 https://www.cnblogs.com/hellxz/p/15740935.html 代码已上传本人 GitHub https://github.com/hellxz/cas-integration-demo 代码目录结构 代码实现 父工程 cas-integration-demo pom.xml <project xmlns="ht

拾级而上 1821

CAS单点登录(九)——客户端接入

在前面的CAS系列文章中,我们讲解了CAS从搭建到具体的自定义配置,但针对的都是CAS服务端的知识,今天我们讲解一下CAS的客户端知识点。

Anumbrella 1万+

Springboot + Security + Cas 整合

参考:http://blog.csdn.net/cl_andywin/article/details/53998986 我的整合是基于Springboot 2.0版本 + Cas 5.X版本 获取的用户信息,需要自己在Cas的服务端进行设置用户信息的返回内容 CAS默认只回显用户名 一、pom.xml文件,加入以下内容 <!--cas的客户端 --> <de...

孟孟的博客 9123

前后端分离后台管理系统如何兼容CAS单点登录

统一登录认证服务使用cas-server单独部署,然后各子系统引入cas-client 客户端,在子系统中配置cas 过滤器,在子系统中配置cas过滤器后,访问子系统的url都会被cas过滤器拦截,通过访问cas-server认证中心的接口进行认证校验,认证失败则跳转到cas-server的登录页面,成功则放行。后端返回token时重定向到该页面,该页面将设置token,然后跳转到欢迎页面,这里使用的时Vue3的语法,Vue2需进行适配一下。前端使用的时若伊框架,其他框架大体思路相同,

weixin_45353700的博客 1046

利用SpringBoot集成SpringSecurity+CAS实现单点登录

项目依赖 主要依赖如下: 项目配置 Application配置。 增加CAS参数配置 这里分为CASServer配置CASService配置。其中Server是CAS服务的配置,Service是我们自己服务的配置配置内容如下 后面需要根据实际配置再拼接参数。 SpringSecurity Bean配置 SecurityConfigura...

weixin_42379065的博客 4675

SpringBoot整合Cas

3、自定义过滤器MyAuthenticationFilter复制AuthenticationFilter只需修改doFilter方法即可。1、启动类里注释启用cas客户端的注解。7、工具类CasServerUtil。

qq_38410795冰淇淋的博客 3505

前后端分离模式下,SpringBoot + CAS 单点登录实现方案

点击关注公众号,利用碎片时间学习1.CAS服务端构建1.1.war包部署cas5.3版本https://github.com/apereo/cas-overlay-template构建完成后将war包部署到tomcat即可1.2.配置文件修改支持http协议修改apache-tomcat-8.5.53\webapps\cas\WEB-INF\classes\services目录下的HTTPSand...

Java笔记虾 1600

搭建CAS协议的SSO单点登录系统

概念: 单点登录( Single Sign-On , 简称 SSO)是目前较为流行的服务于企业业务整合的解决方案之一,在多个应用系统中,用户只需要登录一次,就可以访问所有相互信任的应用系统。 主要包括两部分:CAS Server和CAS Client 如何搭建CAS Server服务端?,如下所示: 1.windows系统下,修改hosts 文件的方法添加域名,建立自定义域名和IP之前映射关系。 具体文件位置:C:\Windows\System32\drivers\etc\hos...

weixin_42211693的博客 1085

CAS单点登录(Client 客户端) 过滤器重写

. 使用默认过滤器配置 springboot 1. 启动类上 加 @EnableCasClient 开启casclient 客户端 2.properties加如下配置 #cas 配置 cas.server-url-prefix=http\://192.168.1.232\:80 cas.server-login-url=http\://192.168.1.232\:80/cas/login cas.client-host-url=http\://192.168.1.232\:20002 cas.vali

qq_37766224的博客 5139

cas-client客户端提示 casServerUrlPrefix cannot be null.

使用cas-client-core 3.4.1是提示casServerUrlPrefix cannot be null 查看tomcat运行日志03-Apr-2018 15:10:51.876 ���� [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.filterStart Exception s

namedHk的博客 1万+

cas超强总结

http://www.iteye.com/topic/544899 一 配置实例 应用场景: cas 服务部署在192.168.7.115 ,是一个web 应用,访问地址为:https://cas.mycompany.com:8443/cas/ 。web1 应用位于192.168.7.90 ,访问地址为:http://192.168.7.90:8081/web1 ,web2 应用位于19

test_test111的专栏 780
上一篇: 太卷了~ 八股文,算法张口就来?2022版Java面试手册来帮你
下一篇: 当 Swagger 遇上 Torna,瞬间高大上了
一个热爱Java分享家
博客等级 码龄5年 323粉丝 94原创
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值