这种现象看起来很奇怪。Javi建议手动将安全性上下文持久化到会话中,但是应该由Spring Security的自动完成
SecurityContextPersistenceFilter。
一个可能的原因,我可以想像是
filters = "none"在
<intercept-url>你的登记处理的页面。
filters = "none"禁用指定URL的所有安全过滤器。如你所见,它可能会干扰Spring Security的其他功能。因此,更好的方法是保持启用过滤器,但将其配置为允许所有用户访问。你有几种选择:
- 使用access属性的旧语法(即不使用
<http use-expressions = "true" ...>
): access = "ROLE_ANONYMOUS"
允许未经身份验证的用户访问,但拒绝经过身份验证的用户- 要允许所有用户访问,你可以编写
access = "IS_AUTHENTICATED_ANONYMOUSLY, IS_AUTHENTICATED_FULLY, IS_AUTHENTICATED_REMEMBERED"
- 使用新的基于Spring expression Language的语法(
<http use-expressions = "true" ...>
),你只需编写access = "true"
以允许所有用户访问(但其他<intercept-url>s
也应使用此语法)。
分享跟随



