我在Spring Controller中使用以下方法来允许通过Ajax进行身份验证。它可以工作,但似乎没有创建cookie或任何使身份验证持久的东西。
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public LoginStatus login(@RequestParam("j_username") String username,
@RequestParam("j_password") String password) {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, password);
try {
Authentication auth = authenticationManager.authenticate(token);
SecurityContextHolder.getContext().setAuthentication(auth);
return new LoginStatus(auth.isAuthenticated(), auth.getName());
} catch (BadCredentialsException e) {
return new LoginStatus(false, null);
}
}
我需要做些什么来使身份验证持久化?
答案 0 :(得分:2)
确保
SecurityContextPersistenceFilter
create-session
标记的<security:http>
属性设置为none
。