SpringBoot集成cas-client 客户端配置拦截过滤,绝对最简单有效,亲测

SpringBoot集成cas-client 客户端配置拦截过滤,绝对最简单有效,亲测

 

 

我使用的cas-client客户端为2.0.0-GA。对于以前使用web.xml进行配置的只需要更改配置文件即可。此文我主要是针对用于SpringBoot集成客户端的过滤请求讲解。

由于最新的cas客户端只有server-url-prefix ,server-login-url,client-host-url,authentication-url-patterns等几个配置而取消了原xml中进行配置的ignorePattern、ignoreUrlPatternType配置,所以如果需要配置拦截过滤的话,只需要将ignorePattern、ignoreUrlPatternType两个参数添加到AuthenticationFilter过滤器中即可。

两个思路:

1)将ignorePattern、ignoreUrlPatternType两个参数添加到AuthenticationFilter过滤器中

2)使用authentication-url-patterns配置需要进行拦截的正则表达式请求,那么剩下的没有配置的即不进行过滤

下面给出第一种方法的代码:

 
  1. package cn.piesat.pieswc.portal.common.config;

  2.  
  3. import org.jasig.cas.client.authentication.AuthenticationFilter;

  4. import org.springframework.beans.factory.annotation.Value;

  5. import org.springframework.boot.web.servlet.FilterRegistrationBean;

  6. import org.springframework.context.annotation.Bean;

  7. import org.springframework.context.annotation.Configuration;

  8.  
  9. import java.util.HashMap;

  10. import java.util.Map;

  11.  
  12. @Configuration

  13. public class CasUrlPatternConfig {

  14.  
  15. @Value("${cas.server-login-url}")

  16. private String casServerLoginUrl;

  17.  
  18. @Value("${cas.client-host-url}")

  19. private String casClientHostUrl;

  20.  
  21. @Value("${cas-ignore-pattern}")

  22. private String casIgnorePattern;

  23.  
  24. /**

  25. * description:授权过滤器

  26.   * ignoreUrlPatternType 使用CAS现成的正则表达式过滤策略

  27. */

  28. @Bean

  29. public FilterRegistrationBean filterAuthenticationRegistration() {

  30. FilterRegistrationBean registration = new FilterRegistrationBean();

  31. registration.setFilter(new AuthenticationFilter());

  32. registration.addUrlPatterns("/*");

  33.  
  34. Map<String,String> initParameters = new HashMap<String, String>();

  35. initParameters.put("casServerLoginUrl", casServerLoginUrl);

  36. initParameters.put("serverName", casClientHostUrl);

  37. //配置文件中设置要过滤拦截的路径

  38. initParameters.put("ignorePattern", casIgnorePattern);

  39. initParameters.put("ignoreUrlPatternType", "org.jasig.cas.client.authentication.RegexUrlPatternMatcherStrategy");

  40. registration.setInitParameters(initParameters);

  41.  
  42. registration.setOrder(1);

  43. return registration;

  44. }

  45. }

PS: 再补充一下多个过滤路径的配置: 不同的路径只需要用 ()|()处理即可。例如,我需要过滤/app/*以及/file/*下的路径,则只需要在application文件中配置为: 

cas-ignore-pattern=(/app/*)|(/file/*)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Springboot CAS-Client 是一个基于Springboot框架集成CAS(Central Authentication Service)的客户端CAS是一种单点登录(Single Sign-On)协议,它允许用户在一次登录后就能够访问多个应用,而无需重新认证。 Springboot CAS-Client 的作用是充当CAS服务端和应用系统之间的中间件,它负责向CAS服务端发送认证请求,并根据认证结果来管理用户的登录状态。 为了集成CAS,我们首先需要在Springboot项目中引入相应的依赖,例如spring-boot-starter-web和spring-boot-starter-security。接着,我们需要配置CAS服务端的地址信息,包括CAS服务端的登录URL、登出URL以及验证票据的URL等。 在Springboot CAS-Client中,我们也可以自定义一些过滤器和拦截器来实现相关的功能。例如,我们可以编写一个CAS认证过滤器来拦截所有的请求,并判断用户的登录状态。如果用户未登录,则跳转到CAS服务端进行认证;如果用户已登录,则直接放行请求。此外,我们还可以编写一个CAS登出拦截器来处理用户的登出请求,并在登出完成后将用户重定向到指定的页面。 总的来说,Springboot CAS-Client 提供了一个简洁、灵活的方式来集成CAS协议,使得我们的Springboot应用能够享受到单点登录带来的便利。通过它,我们可以轻松地实现用户认证、登录状态管理以及注销等功能,提升用户体验并提高开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值