gpt4 book ai didi

java - Spring Security request.getUserPrincipal() 始终为空

转载 作者:搜寻专家 更新时间:2023-11-01 02:20:28 26 4
gpt4 key购买 nike

在我们的应用程序中观察到一个非常奇怪的情况(Spring Boot 1.5.6 具有所有默认的 BOM 依赖项):您可以完美登录(使用 AbstractPreAuthenticatedProcessingFilter ),但这仍然留下 Principal在请求null ! IE。 request.getUserPrincipal()null同时 SecurityContextHolder.getContext().getAuthentication()不是!

这反过来会影响我们的健康端点敏感的能力:它使用 Principal (参见 HealthMvcEndpoint.exposeHealthDetails(HttpServletRequest, Principal)),由 ServletRequestMethodArgumentResolver 注入(inject),然后从请求中获取它...

看起来我遗漏了一些简单的东西,但还是找不到 :(

最佳答案

因此,在创建一个新的 Spring Boot 应用程序并对其进行调试之后,我发现实际上没有人将 Principal 设置到请求中。是 Spring 将其包装到另一个使用 Spring 的 SecurityContext 的(以及其他一些方法)。这个包装由 SecurityContextHolderAwareRequestFilter 完成,它默认存在(请参阅 HttpSecurity.servletApi())...

但是有人禁用了我们项目的默认 Spring Security 配置,所以过滤器不存在!

关于java - Spring Security request.getUserPrincipal() 始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46119850/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com