我正在使用Sping MVC和Spring Security,但在我的脑海中有一些混乱 . 使用Spring Security,登录表单的操作是“ / j_spring_security_check”,它隐藏了整个身份验证过程 . 在Spring MVC中,我可以很容易地找到特定URL的相应控制器 . 显然,没有控制器来处理j_spring_security_check . 我知道身份验证发生在spring安全上下文中 . 但是,当登录表单提交给j_spring_security_check时,它是如何发生的以及整个过程是什么?非常感谢!
1 回答
它在UsernamePasswordAuthenticationFilter中配置,它扩展了AbstractAuthenticationProcessingFilter . 它包含方法requiresAuthentication,它检查在url中是否存在已配置的登录路径(在本例中为j_spring_security_check) .
你可以在IDE或http://grepcode.com/file/repo1.maven.org/maven2/org.springframework.security/spring-security-web/3.0.1.RELEASE/org/springframework/security/web/authentication/UsernamePasswordAuthenticationFilter.java中查看它