Как проверить данные пользователя без входа в Spring security - PullRequest
0 голосов
/ 09 мая 2011

Как проверить детали пользователя до того, как будет выполнена весенняя аутентификация безопасности.

Здесь, в моем проекте при входе в систему, мне нужно проверить, существует ли базовая валидация имя пользователя / пароль, действительность имени пользователя, максимальный предел повторных попыток (5 неправильных записей после этого блока a / c) и показать ошибку на основе ошибки.

При правильном имени пользователя / пароле необходимо проверить, выполнил ли пользователь первый раз вход в приложение (на основе флага в db), при этом необходимо отобразить страницу отказа от ответственности [для доступа к приложению пользователь должен принять отказ от ответственности].

Вот поток

имя пользователя / pwd в форме -> Отправить -> проверить действительные учетные данные

-> Нет -> ошибка дисплея [флаг повтора обновления] -> Да -> Проверить достоверность -> Превышение-> Ошибка отображения -> со сроком действия -> проверка выполняется впервые (и отказ от ответственности принят) -> показать приложение, если отказ от ответственности уже принят, иначе показать страницу отказа от ответственности без входа в приложение

Вкл. Я принимаю кнопку входа пользователя в приложение.

Ответы [ 2 ]

0 голосов
/ 07 июня 2016

В основном, весенняя безопасность заботится об этом - но вы можете переопределить это.Это просто простой пример того, как я бы это сделал:

  @Autowired
private AuthenticationManager authenticationManager;

 @RequestMapping(value = "/login", method = RequestMethod.POST)
public ResponseEntity<?> login(@RequestBody AuthenticationRequest authenticationRequest, Device device) throws AuthenticationException {

    // Perform the security
    final Authentication authentication = authenticationManager.authenticate(
            new UsernamePasswordAuthenticationToken(
                    authenticationRequest.getUsername(),
                    authenticationRequest.getPassword()
            )
    ); ...
}

AutheticationRequest - это простой объект с 2 строками (имя пользователя, пароль)

Учтите, что этот метод вызывает исключение AuthenticationExceptionно вы также можете поймать его в try / catch и выполнить некоторую логику при неудачном входе в систему.

Надеюсь, это поможет.

0 голосов
/ 09 мая 2011

Не думаю, что это будет связано с безопасностью Spring как таковой.В вашем классе действий просто вызовите метод, который проверяет БД.Если они вошли в систему, прежде чем вернуться к действию, которое перенаправляет пользователя на любую подходящую страницу.Если они этого не сделали, отправьте их на страницу отказа от ответственности.

Когда они отправят форму на страницу отказа от ответственности, проверьте ее на предмет принятия.Если принято, обновите БД и перенаправьте их на соответствующую страницу.Если нет, отобразите ошибку.

Если я правильно вызвал безопасность Spring, страница подтверждения, страница входа и т. Д. Не будут защищены, но будут другие страницы.Так что, как я уже сказал, я не уверен, что Spring действительно вовлечен.Это просто вопрос правильной маршрутизации с помощью ваших действий Struts, которые выполняют всю работу по поиску в БД и маршрутизации.

...