Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring Security. Кастомная аутентификация / 9 сообщений из 9, страница 1 из 1
20.07.2016, 16:52
    #39277227
sklyanka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Security. Кастомная аутентификация
Добрый день, формучане!
Пожалуйста, помогите! Не могу разобраться с задачей. Буду благодарна за любое направление :)
В бд существуют пользователи, у которых есть три статуса - 0 (не активен), 1 (активен), 2 (удален).
Каким образом реализовать аутентификацию, чтобы можно было обрабатывать все три статуса? Фильтр?
Стандартно spring обрабатывает два статуса - true/false (1/0). Как добавить третий?

Надеюсь понятно объяснила. Заранее извиняюсь за терминологию. Совсем недавно изучаю spring.
Спасибо!
...
Рейтинг: 0 / 0
20.07.2016, 17:06
    #39277241
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Security. Кастомная аутентификация
sklyankaКаким образом реализовать аутентификацию, чтобы можно было обрабатывать все три статуса? Фильтр?
ну дак вы откройте хелп и любую демку не по всему спрингу, а по сабжу.
И в демке всё найдёте. Там кучас способов, в том числе и фильтр на ваше число 0-1-2
...
Рейтинг: 0 / 0
20.07.2016, 17:17
    #39277247
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Security. Кастомная аутентификация
по сути нужен маппинг между {0,1,2} и {true,false}
...
Рейтинг: 0 / 0
20.07.2016, 18:01
    #39277287
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Security. Кастомная аутентификация
в чем проблема взять исходный код спрингового JdbcDaoImpl (который реализует UserDetailsService) и модифицировать запрос, который будет выбирать то что надо?
...
Рейтинг: 0 / 0
20.07.2016, 18:05
    #39277293
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Security. Кастомная аутентификация
chpashaв чем проблема взять исходный код спрингового JdbcDaoImpl (который реализует UserDetailsService) и модифицировать запрос, который будет выбирать то что надо?
а, в принципе можно вообще просто поменять у него запросы и ничего не наследовать. по сути "удален" нам вообще не интересно для аутентификации, "не активен" - зависит от бизнес логики, скорее тоже не нужен
...
Рейтинг: 0 / 0
23.07.2016, 01:45
    #39279085
sklyanka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Security. Кастомная аутентификация
chpashachpashaв чем проблема взять исходный код спрингового JdbcDaoImpl (который реализует UserDetailsService) и модифицировать запрос, который будет выбирать то что надо?
а, в принципе можно вообще просто поменять у него запросы и ничего не наследовать. по сути "удален" нам вообще не интересно для аутентификации, "не активен" - зависит от бизнес логики, скорее тоже не нужен

Проблема в том, что при статусе = 2, мне нужно выводить сообщение с ссылкой на форму восстановления аккаунта. А если же статус = 0, то просто сообщение об ошибке о неправильности логина или пароля. Последнее - работает со стандартным провайдером и менеджером. Как-то так.
...
Рейтинг: 0 / 0
23.07.2016, 13:54
    #39279124
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Security. Кастомная аутентификация
sklyankaПроблема в том
http://docs.spring.io/spring-security/site/docs/current/apidocs/org/springframework/security/core/userdetails/UserDetails.html
Код: java
1.
2.
3.
4.
5.
6.
boolean isAccountNonLocked() {
  return !deleted
}
boolean isEnabled() {
  return active;
}
...
Рейтинг: 0 / 0
23.07.2016, 14:01
    #39279127
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Security. Кастомная аутентификация
и в догонку
An AuthenticationManager must honour the following contract concerning exceptions:

A DisabledException must be thrown if an account is disabled and the AuthenticationManager can test for this state.
A LockedException must be thrown if an account is locked and the AuthenticationManager can test for account locking.
A BadCredentialsException must be thrown if incorrect credentials are presented. Whilst the above exceptions are optional, an AuthenticationManager must always test credentials.

Exceptions should be tested for and if applicable thrown in the order expressed above (i.e. if an account is disabled or locked, the authentication request is immediately rejected and the credentials testing process is not performed)


+

AuthenticationFailureHandler/**
* Strategy used to handle a failed authentication attempt.
* <p>
* Typical behaviour might be to redirect the user to the authentication page (in the case
* of a form login) to allow them to try again. More sophisticated logic might be
* implemented depending on the type of the exception. For example, a
* {@link CredentialsExpiredException} might cause a redirect to a web controller which
* allowed the user to change their password.
...
Рейтинг: 0 / 0
12.08.2016, 01:31
    #39290685
sklyanka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring Security. Кастомная аутентификация
chpasha, большое Вам спасибо! Все получилось!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring Security. Кастомная аутентификация / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]