首页 > 其他分享 >SpringBoot + WebFlux + Spring Security ,SecurityContextHolder.getContext().getAuthentication()获取不到当

SpringBoot + WebFlux + Spring Security ,SecurityContextHolder.getContext().getAuthentication()获取不到当

时间:2023-04-20 21:13:59浏览次数:38  
标签:getAuthentication SpringBoot Spring SecurityContextHolder Authentication getCont

解决方案

直接在Controller接口方法参数中写入org.springframework.security.core.Authentication,如下:

@GetMapping(path = "/test")
    public Mono<Response<?,?>> test(Authentication authentication) {
        return Mono.just(ResponseUtil.success(authentication != null ? authentication.getPrincipal() : null));
    }

通过log得到的结果是Controller执行线程和执行Fliter的线程不是同一个

后续使用

在调用如ReactiveUserDetailsPasswordService.updatePassword()等方法的前,执行SecurityContextHolder.getContext().setAuthentication(authentication);不然会报错。因为这些方法里面也调用了SecurityContextHolder.getContext().getAuthentication()

标签:getAuthentication,SpringBoot,Spring,SecurityContextHolder,Authentication,getCont
From: https://www.cnblogs.com/zolmk/p/17338336.html

相关文章

  • 【Azure Spring Cloud】在Azure Spring Apps上看见 App Memory Usage 和 jvm.menory.u
    问题描述在Azure的SpringCloud服务(官名为:SpringApps)中,在Metrics页面中查看AppMemoryUsage和jvm.memory.use,发现两则在下图中出现巨大差距。AppMemoryUsage还是在逐渐上升jvm.memory.use却断崖式下降  在AppMemoryUsage在逐渐上涨的情况下,是否会最终出现OO......
  • SpringBoot应用集成微服务组件Nacos
    目录springboot与微服务组件nacosNacos服务快速启动STS4开发工具Maven环境配置STS4开发工具引入Maven配置MavenRepo配置阿里云镜像源Springboot集成nacos服务springboot项目构建springboot集成微服务nacosnacos版本问题nacos2.0.0版本兼容性说明nacos升级文档nacos版本与spring......
  • Spring源码系列:核心概念解析
    前言本文旨在为读者解析Spring源码中的关键类,以便读者在深入阅读源码时,能够了解关键类的作用和用途。在阅读Spring源码时,经常会遇到一些不熟悉的概念,了解关键类的作用可以帮助读者更好地理解这些概念。BeanDefinitionBeanDefinition是Spring框架中的一个重要概念,它定义了一个Be......
  • CentOS7 云服务器搭建及部署SpringBoot+vue项目
    CentOS7云服务器搭建及部署SpringBoot+vue项目1)云服务器配置以及环境搭建1.1JDK安装卸载现有环境(有则卸载)使用rpm命令查询相关java套件rpm-qa|grepjava如果存在,通过命令删除对应版本的JDKrpm-e--nodepsjava-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64rpm-e......
  • SpringBoot Kotlin 集成和使用 Protobuf
    环境版本不同的环境配置参数可能区别较大,请酌情参考。插件或依赖版本号SpringBoot2.7.10Gradle7.5.1ProtobufGradlePlugin0.9.2ProtobufJava3.21.9Protoc3.21.9Grpc1.53.0项目是使用IDEA创建的SpringWeb项目,语言Kotlin,构建GradlePr......
  • Spring 3 mvc中返回pdf,json,xml等不同的view
    评:springmvc就是好,特别是rest风格的话,一个org.springframework.web.servlet.view.ContentNegotiatingViewResolver就可以根据不同的场景返回不同的view了,比如返回json,xml,pdf等.马上看代码实现先是一个简单的pojoJava代码收藏代码packagecom.hmkcode.vo;impor......
  • Spring MVC过滤器-ShallowEtagHeaderFilter
    评:ShallowEtagHeaderFilter是spring提供的支持ETag的一个过滤器,所谓ETag是指被请求变量的实体值,是一个可以与Web资源关联的记号,而Web资源可以是一个Web页,也可以是JSON或XML文档,服务器单独负责判断记号是什么及其含义,并在HTTP响应头中将其传送到客户端,以下是服务器端返回的格式:[......
  • 【Spring Cloud】网关
     ServerWebExchange中获取TokenprivateStringgetToken(ServerWebExchangeexchange){StringauthToken=exchange.getRequest().getHeaders().getFirst("Token");if(StrUtil.isBlank(authToken)){MultiValueMap<String,String>q......
  • (IDEA)spring项目导入本地jar包方法和项目打包时找不到引入本地jar包的问题解决方案
    转:(IDEA)spring项目导入本地jar包方法和项目打包时找不到引入本地jar包的问题解决方案 【Maven】理解maven的6大内置属性   ......
  • 在eclipse中创建springMVC项目
    1.创建一个Javaweb项目 2.输入项目名称,下一步 3.下一步,勾选创建web.xml选项 4.在lib文件夹中添加jar包 5.在WEB-INF文件夹下添加springmvc框架配置文件,起名为springmvc-servlet.xml 代码如下:<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.s......