我是新来的春季安全,所以我试图用Spring MVC中来处理无效的登录,但结束了找不到网页404春季安全无效的登录处理
在我的安全-context.xml中,我有这AuthenticationProvider
处理所有的身份验证登录,所以只是基本上检查用户的帐户和密码,但出于某种原因,它一直说,authentication-failure-url
没有找到404,每当有一个无效的登录尝试。
<security:authentication-manager alias="authenticationManager">
<security:authentication-provider ref="AuthenticationProvider"/>
</security:authentication-manager>
<bean id="preAuthenticationFilter"
class="authentication.PreAuthenticationFilter"
p:authenticationManager-ref="authenticationManager" />
<security:http auto-config="true">
<security:intercept-url pattern="/member/**" access="MEMBER" requires-channel="https"/>
<security:form-login login-page="/login"
username-parameter="email"
password-parameter="password"
default-target-url="/member/"
authentication-failure-url="/loginfailed" />
<security:custom-filter position="PRE_AUTH_FILTER" ref="preAuthenticationFilter" />
</security:http>
但我确实有一个相应的控制器侦听该URL模式处理无效登录。
@Controller
public class LoginController
{
@RequestMapping(value = "/loginfailed", method = RequestMethod.GET)
public String loginError(ModelMap model)
{
model.addAttribute("error", "true");
return "login";
}
}
** * *UPDATE* ** * *
在某些点上我AuthenticationProvider
验证用户,并抛出一个异常(我不不知道是否有问题)每当用户有错误的凭证
@Component
public class AuthenticationProvider{
private User validateUser(String userName, String password)
{
try{
//authenticate user's info
.......
}
catch (UnauthorizedAccessException e)
{
throw new BadCredentialsException(e);
}
}
}
不'方法= RequestMethod.GET'工作? – Xaerxess 2013-04-08 15:57:03
不......我尝试了GET和POST – peter 2013-04-08 15:58:03
在我看来,这不是Spring安全问题,而是MVC配置 - 对'/ loginfailed'返回200状态执行简单的POST/GET请求吗? – Xaerxess 2013-04-08 16:09:48