无法从Spring-Jersey中检索安全上下文

时间:2010-09-23 15:18:28

标签: java spring spring-security jersey

我正在尝试在我的spring-jersey bean中检索安全上下文,但是我一直在进行Null身份验证。当我从spring应用程序中运行相同的命令时,它会正确检索当前登录的用户安全上下文。

spring-jersey的配置需要为主spring应用程序创建一个单独的servlet,因此web.xml有两个servlet - 一个用于spring app,第二个用于jersey rest api。

假设问题与此有关,我尝试将安全上下文共享模式设置为global,但是我仍然无法从Jersey中获取上下文信息。

SecurityContextHolder.setStrategyName(SecurityContextHolder.MODE_GLOBAL)

非常感谢任何帮助!

非常感谢, 奈杰尔

2 个答案:

答案 0 :(得分:2)

也许用户根本没有经过身份验证,因为您的Jersey请求没有会话cookie,因此与经过身份验证的用户的会话无关?

您可以通过在Spring Security中启用匿名身份验证来检查它 - 如果猜测正确,您应该获得匿名身份验证而不是null

答案 1 :(得分:0)

@axtavt感谢您的评论。这个线索有助于解决我的问题,检查我的安全过滤器的配置方式,我在Spring安全配置中找到了这一行

<security:intercept-url pattern="/api/**" filters="none" />  

这一行有效地禁用了所有弹簧安全过滤器,删除了这个问题。

非常感谢你的帮助:)。