我有一个调用 some 的登录表单LoginBean
,它返回一个 ajax 回调参数,指示凭据是否有效。代码如下:
public void doLogin() {
Authentication authenticationRequestToken =
new UsernamePasswordAuthenticationToken(user, password);
try {
Authentication authenticationResponseToken =
authenticationManager.authenticate(authenticationRequestToken);
SecurityContextHolder.getContext().
setAuthentication(authenticationResponseToken);
if (authenticationResponseToken.isAuthenticated()) {
RequestContext context = RequestContext.getCurrentInstance();
FacesMessage msg;
boolean loggedIn = true;
msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Welcome", user);
FacesContext.getCurrentInstance().addMessage(null, msg);
context.addCallbackParam("loggedIn", loggedIn);
}
} .authenticate(...) catches ...
// Here I need some code that continue whatever j_spring_security_check
// would do after authenticating.
}
我的应用程序现在的工作方式,在这个调用之后doLogin()
,表单被提交到j_spring_security_check
,然后再次进行身份验证过程,浪费了以前的工作。我正在尝试为此找到解决方案,不胜感激。
因此,最重要的是,我需要一些东西来模拟过滤器拦截时发生j_spring_security_check
的情况(或一种明确强制拦截的方法),因此处理将在按钮后面进行,而不是在提交表单之后进行。