我试图在我的 spring-jersey bean 中检索安全上下文,但是我不断收到 Null 身份验证。当我从 Spring 应用程序中运行相同的命令时,它会正确检索当前登录的用户安全上下文。
spring-jersey 的配置需要为主 spring 应用程序创建一个单独的 servlet,因此 web.xml 有两个 servlet - 一个用于 spring 应用程序,第二个用于 jersey Rest api。
假设问题与此相关,我尝试将安全上下文共享模式设置为全局,但是我仍然无法从 Jersey 内获取上下文信息。
SecurityContextHolder.setStrategyName(SecurityContextHolder.MODE_GLOBAL)
任何有关此问题的帮助将不胜感激!
非常感谢, 奈杰尔
最佳答案
也许用户根本没有经过身份验证,因为您的 Jersey 请求没有 session cookie,因此不与经过身份验证的用户 session 关联?
您可以通过在 Spring Security 中启用匿名身份验证来检查它 - 如果猜测正确,您应该获得匿名身份验证而不是 null
。
关于java - 无法从 Spring-Jersey 中检索安全上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3779839/