Можно ли программно аутентифицироваться в Spring Security и сделать его постоянным? - PullRequest
5 голосов
/ 23 февраля 2011

Я использую следующий метод в 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 Ответ

2 голосов
/ 23 февраля 2011

Убедитесь, что

  • у вас есть SecurityContextPersistenceFilter настроено
  • вы не устанавливаете create-session атрибут <security:http> тега на none.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...