是否有可能以编程方式使用Spring Security进行身份验证并使其持久化?

时间:2011-02-23 04:51:30

标签: java security spring spring-security

我在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);
    }
}

我需要做些什么来使身份验证持久化?

1 个答案:

答案 0 :(得分:2)

确保

  • 您已配置SecurityContextPersistenceFilter
  • 您没有将create-session标记的<security:http>属性设置为none