我想在我的spring-jersey bean中检索安全上下文,但是我一直在获取Null身份验证。当我在我的Spring应用程序中运行相同的命令时,它会正确地检索当前登录的用户安全上下文。无法从Spring-Jersey中检索安全上下文
Spring-Jersey的配置需要为主应用程序创建一个单独的servlet,因此web.xml有两个servlet - 一个用于spring应用程序,另一个用于平台休息API。
假设问题与此有关,我尝试将安全上下文共享模式设置为全局,但是我仍然无法从Jersey中获取上下文信息。
SecurityContextHolder.setStrategyName(SecurityContextHolder.MODE_GLOBAL)
任何帮助,将不胜感激!
非常感谢, 奈杰尔
非常感谢我有匿名认证功能,像你这样的建议,我本来期望配置的用户展现出来,但它在新泽西州不一样。但是,当我未在我的春季应用程序中进行身份验证时,配置的用户显示而不是null! 我可以看到您关于会话cookie的观点,我可以使用@Context HttpServletRequest req从我的Jersey代码检索会话cookie,然后从那里检索会话。然而SecurityContextHolder是独立于我所理解的(?)的会话。 – 2010-09-23 16:35:19
@Nigel:是的,它独立于会话,但对于经过身份验证的用户,它由Spring Security过滤器从会话属性填充。那么,您是否使用Spring Security过滤器处理Jersey请求? – axtavt 2010-09-23 16:41:42
感谢您的评论。这个线索帮助我解决了我的问题,检查我的安全过滤器是如何配置的,我在我的弹簧安全配置中发现了这条线
删除这个问题解决了这个问题,它可以有效地禁用所有弹簧安全过滤器! 非常感谢您的帮助:) – 2010-09-24 08:58:04