OAuth2资源服务器白名单接口带token被拦截

ops/2024/11/25 14:31:24/
在资源服务器的配置中,添加了请求白名单,如下
@Configuration
@EnableResourceServer
public class ResourceServerConfig extends ResourceServerConfigurerAdapter {@Autowiredprivate OAuth2Properties properties;@Overridepublic void configure(HttpSecurity http) throws Exception {http.authorizeRequests().antMatchers("/test/**").permitAll().anyRequest().authenticated().and().csrf().disable(); }@Beanpublic RemoteTokenServices tokenServices() {RemoteTokenServices services = new RemoteTokenServices();services.setCheckTokenEndpointUrl(properties.getTokenInfoUri());services.setClientId(properties.getClientId());services.setClientSecret(properties.getClientSecret());return services;}
}

测试controller

@RestController
@RequestMapping("/test")
public class TestController {@PostMapping("/test1")public String test1() {System.out.println(123);return "123";}@PostMapping("/test2")public String test2() {System.out.println(333);return "222333";}
}

当使用postman正常请求http://localhost:8109/test/test2时,能获取到返回结果

但当请求添加上请求头时(这里是前端做了统一的处理,到后端的请求会统一携带Authorization等token信息),但是对于我的资源服务接口来说,我不想管前端的请求是否携带请求头token,都想根据白名单不进行oauth2的鉴权操作,但是实际是这样还是会触发鉴权

可以通过重写WebSecurityConfigurerAdapter的 configure()方法,使白名单请求不受Spring Security的保护。这样即使请求中包含Authorization头,也不会触发鉴权(在资源服务器中添加)。

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {@Overridepublic void configure(WebSecurity web) throws Exception {web.ignoring().antMatchers("/test/test2");}
}


http://www.ppmy.cn/ops/136590.html

相关文章

超高流量多级缓存架构设计!

文章内容已经收录在《面试进阶之路》,从原理出发,直击面试难点,实现更高维度的降维打击! 文章目录 电商-多级缓存架构设计多级缓存架构介绍多级缓存请求流程负载均衡算法的选择轮询负载均衡一致性哈希负载均衡算法选择 应用层 Ngi…

C++设计模式之适配器模式与桥接模式,装饰器模式及代理模式相似点与不同点

适配器模式、桥接模式、装饰器模式和代理模式在形式上有一些相似之处,因为它们都涉及到对类的功能或接口的修改、增强或转换。然而,它们在动机和目的上有着显著的不同。以下是对这些模式相似点和不同点的清晰说明: 相似点: 结构…

ThinkPHP8使用workerman

应用场景说明:通过建立通信,不同用户进行消息推送或数据更新,因为本身需要作为服务端进行主动消息推送,因此使用Gateway方式,如果不需要的可以不采用这种形式,以下内容仅为参考,具体业务场景&am…

介绍一下strlwr(arr);(c基础)

hi , I am 36 适合对象c语言初学者 strlwr(arr)&#xff1b;函数是把arr数组变为小写字母 格式 #include<string.h> strlwr(arr); 返回值为arr 链接分享一下arr的意义(c基础)(必看)(牢记)-CSDN博客 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #incl…

【Linux】进程替换

进程替换 一、概念二、原理三、替换函数1. execl2. execlp3.execle4.execv5.execvp6.execvpe 四、实现一个简易的shell 一、概念 当我们fork()生成子进程后&#xff0c;子进程的代码与数据可以来自其他可执行程序。把磁盘上其他程序的数据以覆盖的形式给子进程。这样子进程就可…

Docker 数据卷 和 挂载 的区别

在 Docker 中&#xff0c;数据卷&#xff08;Volumes&#xff09;和 挂载&#xff08;Mounts&#xff09;是两种存储和管理容器数据的方式&#xff0c;它们都可以用来持久化容器的数据&#xff0c;但它们之间有一些区别。具体来说&#xff1a; 数据卷 (Volumes) 数据卷是 Dock…

摄像机视频分析软件下载LiteAIServer视频智能分析平台玩手机打电话检测算法技术的实现

随着科技的不断进步&#xff0c;摄像机视频分析软件的发展已经为我们的生活带来了许多便捷。其中&#xff0c;LiteAIServer视频智能分析平台的玩手机打电话检测算法技术尤为突出&#xff0c;它利用先进的图像处理和人工智能技术&#xff0c;能够自动识别并监控视频中的玩手机或…

ThingsBoard规则链节点:AWS SNS 节点详解

目录 引言 1. AWS SNS 节点简介 2. 节点配置 2.1 基本配置示例 3. 使用场景 3.1 设备报警 3.2 数据同步 3.3 用户通知 4. 实际项目中的应用 4.1 项目背景 4.2 项目需求 4.3 实现步骤 5. 总结 引言 ThingsBoard 是一个开源的物联网平台&#xff0c;提供了设备管理、…