Spring security “春季安全”;例外申请”;
使用Spring SecuritySpring security “春季安全”;例外申请”;,spring-security,Spring Security,使用Spring Security预验证,我的web应用程序在遇到未充分验证异常时会重新定向到/login\u disabled.html applicationContext security preauth.xml示例 <beans:property name="exceptionMappings"> <beans:props> <beans:prop key="org.springfram
预验证
,我的web应用程序在遇到未充分验证异常
时会重新定向到/login\u disabled.html
applicationContext security preauth.xml示例
<beans:property name="exceptionMappings">
<beans:props>
<beans:prop key="org.springframework.security.
InsufficientAuthenticationException">
/login_disabled.html
/login_disabled.html
基于此,我似乎可以重新引导用户再次登录
我是否需要将用户重新定向到负责身份验证的网页?我不太清楚这里有什么问题。如果已设置表单登录,则会自动重定向到登录页面,而无需进一步配置。如果用户试图在未经身份验证的情况下访问安全页面,则调用
AuthenticationEntryPoint
来启动身份验证
使用ExceptionMappingAuthenticationFailureHandler
将不充分的AuthenticationException
映射到重定向url无论如何都不会起作用,因为:
如果您有一个自定义表单登录实现,那么我认为您所需要的只是一个正确配置的
LoginUrlAuthenticationEntryPoint
bean,该bean引用自
。我在前面的评论中已经说过了。你有什么样的自定义身份验证过滤器是完全不相关的。只要设置了LoginUrlAuthenticationEntryPoint
,Spring Security就会重定向到配置的登录url,前提是在目标url安全的情况下,请求只进行匿名身份验证?这里的矛盾在哪里<代码>声明访问与模式匹配的URL所需的内容,而不是必须授予的权限。RPC请求不包含身份验证信息,因此将永远不允许它访问您配置为仅对持有角色\u USER
权限的身份验证主体可用的资源。该日志消息(从我在回答中链接的方法发出)本身并不意味着入口点不可访问,但是如果配置中唯一的拦截url标记是
,那么肯定会使登录页面无法访问。您需要在另一个请求之前插入
。Pre-auth意味着某些外部身份验证机制以某种形式(通常是http头)为每个请求提供身份验证信息。如果没有此类信息与请求关联,Spring安全性将无能为力。它如何可能指示外部系统(例如Siteminder)对请求进行身份验证?因此,如果会话过期,并且您的预身份验证筛选器没有找到外部系统应该提供的信息,那么请求将不会得到身份验证,除非您设置了一些其他身份验证机制(例如表单登录)及其入口点(LoginUrlAuthenticationEntryPoint
)。