当前位置: 首页 > 知识库问答 >
问题:

当应用程序在Pod GKE中工作时,不会传递SpringSecurityContext

程祺
2023-03-14

我需要在servlet过滤器中获取用户详细信息。所以我从SecurityContextHolder.getContext(). getAuthentication()中获取它,如下所示-

  @Override
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws ServletException, IOException {
     UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication()
        .getPrincipal();
...
}

在本地从安全上下文中获取用户,但在将应用部署到GKE时,SecurityContextHolder.getContext(). getAuthentication()为空。

我试图配置SecurityContextHolderMODE_INHERITABLETHREADLOCAL这样,但没有帮助

@Configuration
public class SecurityContextHolderConfig {
  public SecurityContextHolderConfig() {
    SecurityContextHolder.setStrategyName(SecurityContextHolder.MODE_INHERITABLETHREADLOCAL);
  }
}

仍然没有将SecurityContext传递给pod中的Filter。(应用程序打包为WAR)配置-具有JWT身份验证的Spring oAuth2-client(在标头中)

共有1个答案

贡建修
2023-03-14

这对我有用:

 @Override
  public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws ServletException, IOException {

    HttpServletRequest httpServletRequest =
    (HttpServletRequest) servletRequest;

    Principal userPrincipal = httpServletRequest.getUserPrincipal();
 类似资料:
  • 我在WebSphere控制台上部署了WAR文件,并将其映射到数据源。我能够测试我用PostgreSQL服务器详细信息配置的数据源。但是我的应用程序没有连接到服务器。我是新来的WebSphere,谁能帮我配置基于下面context.xml文件的数据源。我的应用程序在tomcat中工作得很好,但在WebSphere中却不行。 我认为我在数据源配置中做错了什么。

  • 我正在使用FCM推送通知。当应用程序处于前台时,应用程序运行良好,并打算启动新活动,但当应用程序处于后台时,它不启动新活动,而是启动默认活动的实例。 }

  • 我正在尝试使用bin/spark-submit运行一个spark应用程序。当我引用本地文件系统中的应用程序jar时,它会正常工作。但是,当我将我的应用程序jar复制到hdfs中的一个目录时,我得到了以下异常: 我使用的是hadoop版本2.6.0和spark版本1.2.1

  • 我已经运行了,然后 退货 我知道我的当前有问题。下面是从 我真的不知道该怎么设置,因为我目前对终端非常陌生。任何帮助都将不胜感激。非常感谢。

  • 我正在使用maven,Eclipse。从Eclipse运行时一切都很好。但同样,如果部署在tomcat上,则返回http状态404。日志显示在类路径上未检测到Spring WebApplicationInitializer类型,但我正在使用web.xml。 如果有人能帮忙,我不知道这里有什么问题。筛选器和servlet映射没有问题。 securityFilter org.SpringFramewo

  • 我一直在尝试运行我的客户端/服务器android程序。但是每当我在android上运行客户端部分时,它都会出错不幸的是,您的应用程序已停止运行。我尝试过阅读logcat,但无法解决问题。下面是我的代码...我从3天开始一直在尝试。需要项目帮助 logcat公司 activity\u new\u main\u活动。xml manifest.xml 新建_main_活动。Java语言