|
|
|
Spring Security. Кастомная аутентификация
|
|||
|---|---|---|---|
|
#18+
Добрый день, формучане! Пожалуйста, помогите! Не могу разобраться с задачей. Буду благодарна за любое направление :) В бд существуют пользователи, у которых есть три статуса - 0 (не активен), 1 (активен), 2 (удален). Каким образом реализовать аутентификацию, чтобы можно было обрабатывать все три статуса? Фильтр? Стандартно spring обрабатывает два статуса - true/false (1/0). Как добавить третий? Надеюсь понятно объяснила. Заранее извиняюсь за терминологию. Совсем недавно изучаю spring. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 16:52 |
|
||
|
Spring Security. Кастомная аутентификация
|
|||
|---|---|---|---|
|
#18+
sklyankaКаким образом реализовать аутентификацию, чтобы можно было обрабатывать все три статуса? Фильтр? ну дак вы откройте хелп и любую демку не по всему спрингу, а по сабжу. И в демке всё найдёте. Там кучас способов, в том числе и фильтр на ваше число 0-1-2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 17:06 |
|
||
|
Spring Security. Кастомная аутентификация
|
|||
|---|---|---|---|
|
#18+
по сути нужен маппинг между {0,1,2} и {true,false} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 17:17 |
|
||
|
Spring Security. Кастомная аутентификация
|
|||
|---|---|---|---|
|
#18+
в чем проблема взять исходный код спрингового JdbcDaoImpl (который реализует UserDetailsService) и модифицировать запрос, который будет выбирать то что надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 18:01 |
|
||
|
Spring Security. Кастомная аутентификация
|
|||
|---|---|---|---|
|
#18+
chpashaв чем проблема взять исходный код спрингового JdbcDaoImpl (который реализует UserDetailsService) и модифицировать запрос, который будет выбирать то что надо? а, в принципе можно вообще просто поменять у него запросы и ничего не наследовать. по сути "удален" нам вообще не интересно для аутентификации, "не активен" - зависит от бизнес логики, скорее тоже не нужен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2016, 18:05 |
|
||
|
Spring Security. Кастомная аутентификация
|
|||
|---|---|---|---|
|
#18+
chpashachpashaв чем проблема взять исходный код спрингового JdbcDaoImpl (который реализует UserDetailsService) и модифицировать запрос, который будет выбирать то что надо? а, в принципе можно вообще просто поменять у него запросы и ничего не наследовать. по сути "удален" нам вообще не интересно для аутентификации, "не активен" - зависит от бизнес логики, скорее тоже не нужен Проблема в том, что при статусе = 2, мне нужно выводить сообщение с ссылкой на форму восстановления аккаунта. А если же статус = 0, то просто сообщение об ошибке о неправильности логина или пароля. Последнее - работает со стандартным провайдером и менеджером. Как-то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2016, 01:45 |
|
||
|
Spring Security. Кастомная аутентификация
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2016, 13:54 |
|
||
|
Spring Security. Кастомная аутентификация
|
|||
|---|---|---|---|
|
#18+
и в догонку 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2016, 14:01 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=91&tid=2123824]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
53ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 360ms |

| 0 / 0 |
