|
|
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
Коллеги, Есть следующая задача: Юзер имеет свой логин и пароль. А так же может иметь третий авторизационный параметр (компания), а может и не иметь. Нужно сделать так, чтобы юзер вводил логин\пасс и в случаи если юзер принадлежит к двум или более компаниям выводить ему страницу выбора компании. Если же юзер не принадлежит ни одной компании или только к одной не выводить страницу с выбором третьего параметра (компании) и применять какую то умолчательную компанию. Мой вопрос заключается в том как такое реализовывается с помощью Spring Security. У меня мыслей кроме two factor authentication нету и я не уверен, что это православный путь реализации такой задачи. Был бы благодарен за ссылки чего бы почитать как это пилят в лучших домах Лондона и Парижа :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 13:07 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
TepKuHЮзер имеет свой логин и пароль. А так же может иметь третий авторизационный параметр (компания), а может и не иметь. уберите (назовите по другому) третий параметр и всё станет на места. Например, 3-ий парам - Настройки и предпочтения пользователя. Показ настроек хоть через админку, хоть ему самому на входе после аутентификации . Т.к. она может быть просто по кукам, чтобы юзвери не ругались. Т.е. задача не в ту степь и неправославна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 13:19 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
Petro123TepKuHЮзер имеет свой логин и пароль. А так же может иметь третий авторизационный параметр (компания), а может и не иметь. уберите (назовите по другому) третий параметр и всё станет на места. Например, 3-ий парам - Настройки и предпочтения пользователя. Показ настроек хоть через админку, хоть ему самому на входе после аутентификации . Т.к. она может быть просто по кукам, чтобы юзвери не ругались. Т.е. задача не в ту степь и неправославна. Подозреваю, что у пользователя права на действия зависят от "компании". Если так, то можно сделать так (я делал для jboss/javaee) - выдаются права на одно действие- выбор параметра. После этого заново заполняются допустимые здесь действия, а так же "компанию"- чтобы подставлять его во все запросы как фильтр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 13:21 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
Alexey TominПодозреваю, что у пользователя права на действия зависят от "компании". Я тоже подозреваю. Но тогда что значит - нет ни одной комании? Минимальные права? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 13:24 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
после стандартного ввода логини/пароля и отправки на сервер, с сервера идет ответ и по которому полявляется поле для ввода третьего параметра(если для данного юзера это наобходимо) или переход на следующую страницу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 13:27 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
Логин и пароль отвечают только за аутентификацию. И мешать с авторизацией не стоит. А потом уже методы решения и раздачи прав (хоть по 20ти параметрам) imho ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 13:28 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
вадяпосле стандартного ввода логини/пароля и отправки на сервер, с сервера идет ответ и по которому полявляется поле для ввода третьего параметра(если для данного юзера это наобходимо) или переход на следующую страницу это и есть мешанина кода и смысла. Т.к. ответ ты пришлёшь любому не прошедшему аутентификацию. Т.е. любому Пупкину. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 13:30 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
Petro123вадяпосле стандартного ввода логини/пароля и отправки на сервер, с сервера идет ответ и по которому полявляется поле для ввода третьего параметра(если для данного юзера это наобходимо) или переход на следующую страницу это и есть мешанина кода и смысла. Т.к. ответ ты пришлёшь любому не прошедшему аутентификацию. Т.е. любому Пупкину. как ты думаешь - откуда серверу знать что посылать - вопрос с параметром или команду для перехода к с ледующей странице? наверно логично будет по логину/паролю произвести аутентификайию и по результату отправить. возможны три варианта 1 логин/пароль не верны 2 переход на следующую страницу , если для данного юзере не требуется доп параметр 3 появление поля для выбора параметра есть сложности с такой реализацией? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 13:38 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
Alexey TominПодозреваю, что у пользователя права на действия зависят от "компании". Если так, то можно сделать так (я делал для jboss/javaee) - выдаются права на одно действие- выбор параметра. После этого заново заполняются допустимые здесь действия, а так же "компанию"- чтобы подставлять его во все запросы как фильтр. Вы правильно подозреваете :) В зависимости от компании юзеру показываются разные данные в представлениях. А так же доступны доп. кнопки в представлении. Petro123Минимальные права? Верно. вадяпосле стандартного ввода логини/пароля и отправки на сервер, с сервера идет ответ и по которому полявляется поле для ввода третьего параметра(если для данного юзера это наобходимо) или переход на следующую страницу Ну так оно по идеи и должно быть. Но только если юзер принадлежит к двум или более компаниям он эту страницу для ввода третьего парамтра обойти не может. т.е. попытка попасть на защищенные спрингом страницы должна быть не успешна. Т.е. после первого шага авторизации юзер делжен принадлежать к какой то временной группе. А после страницы выбора компании уже получать роли которые замапленные к компании. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 13:46 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
вадявозможны три варианта 1 логин/пароль не верны 2 переход на следующую страницу , если для данного юзере не требуется доп параметр 3 появление поля для выбора параметра есть сложности с такой реализацией? Да, есть. Если юзер ввел правильный логин и пароль. Он считается авторизованным пользователем. И следовательно может попадать в защищенные спрингом страницы. А он не должен :) Если принадлежит к 2 или более компаниям. его должно всегда редиректить на страницу выбора компании. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 13:49 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
авторНу так оно по идеи и должно быть. Но только если юзер принадлежит к двум или более компаниям он эту страницу для ввода третьего парамтра обойти не может. т.е. попытка попасть на защищенные спрингом страницы должна быть не успешна. Т.е. после первого шага авторизации юзер делжен принадлежать к какой то временной группе. А после страницы выбора компании уже получать роли которые замапленные к компании. а какие проблемы для организации такой логики? после отправки логина/пароля происходит проверка. он не принадлежит ни к какой группе, если для дальнеёшего входа надо ввести ещё один параметр, просто на клиента по ajax отпрвляется команда на ввод параметра ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 13:54 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
вадянаверно логично будет по логину/паролю произвести аутентификайию и по результату отправить. немного беременным быть нельзя. - произвёл аутентификацию - на выходе ДА или НЕТ. А потом всё остальное. Вот и разделяй (код от представления) одно от другого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 13:55 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
авторДа, есть. Если юзер ввел правильный логин и пароль. Он считается авторизованным пользователем. И следовательно может попадать в защищенные спрингом страницы. А он не должен :) Если принадлежит к 2 или более компаниям. его должно всегда редиректить на страницу выбора компании. кем считается? пока сервер не приял решение и не отправил клиенту - он никем не считается. не важно прошёл он первый пункт или нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 13:56 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
Petro123вадянаверно логично будет по логину/паролю произвести аутентификайию и по результату отправить. немного беременным быть нельзя. - произвёл аутентификацию - на выходе ДА или НЕТ. А потом всё остальное. Вот и разделяй (код от представления) одно от другого. даже если он угадал логин /пароль и если для этого логина/пароля необходим третий параметр - сервер его никуда не пустит, если нет этого параметра логика элементарная ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 13:58 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
TepKuHЕсли юзер ввел правильный логин и пароль. Он считается авторизованным прошедшим аутентификацию пользователем. И следовательно может попадать в защищенные спрингом страницы. А он не должен :) А почему с минимальной ролью вы пускаете на все страницы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 13:59 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
вадядаже если он угадал логин /пароль и если для этого логина/пароля необходим третий параметр - сервер его никуда не пустит, если нет этого параметра логика элементарная вот ты кругом, ничего из ГОТОВОГО не изучаешь. Вопрос - про запрос сервера с кодом 401 слыхал? Это в заголовках видел? Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 14:02 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
вадяа какие проблемы для организации такой логики? после отправки логина/пароля происходит проверка. он не принадлежит ни к какой группе, если для дальнеёшего входа надо ввести ещё один параметр, просто на клиента по ajax отпрвляется команда на ввод параметра Приведу пример текущего конфига спинга Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Он нам кагбэ говорит о том что если юзер отправил на контроллер j_spring_security_check параметры j_username и j_password и customUserDetailsService сверил логин и пасс то юзер считается авторизованным. И может попадать в закрытый спингом контекст /selfcare/** Так вот юзер после ввода логина и пароля не должен еще считаться авторизованным (isAuthenticated) если он принадлежит к двум или более компаниям ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 14:03 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
когда клиент отправил логин/пароль - сервер получил эту пару, он её проанализировал, есть юзер -смотрит надоли ему третий параметр.... что нельзя что ли это реализовать??? или всё отданно тупым прокладкам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 14:07 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
http://findevelop.blogspot.ru/2013/10/web-spring-security-100.html с помощью этого реализуется элементарно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 14:09 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
TepKuHи пасс то юзер считается авторизованным. тут и надо копать. Как спринг работает с ролями. Чел выше предложил в виде фильтров. Но наверно и декларативно что-нить есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 14:10 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
вадяили всё отданно тупым прокладкам? я верю. Это у тебя тоже прокладки: https://ru.wikipedia.org/wiki/Список_кодов_состояния_HTTP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 14:13 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
Petro123вадяили всё отданно тупым прокладкам? я верю. Это у тебя тоже прокладки: https://ru.wikipedia.org/wiki/Список_кодов_состояния_HTTP это не прокладки - это стандарты для работы. а если отдано на откуп прокладкам - они работают строго по своим правилам и должны отдать эти страницы. когда встречается более сложная ситуация - прокладки вступают в ступор. я привел образец кода на котором это "не прокладочная ситуация" решается просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 14:18 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
Парни, Вы тут везде предлагаете реализовать роли на сколько я вас понял. Т.е. ввел юзер логин и пасс. Ему фигак роль: аля PRE_AUTH_ROLE. Выбрал компанию ему фигак роль FULL_ACCESS_ROLE. Но дело в том что после уже ввода логина и пароля юзер будет считаться авторизованным. Т.е. метод isAuthenticated() в JSP будет возвращать true. А мне не хотелось бы переделывать кучи JSP'ишек где стоит такая проверка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 14:22 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
вадяэто не прокладки - это стандарты для работы. ты определись тогда. Что у тебя базовые знания Java, а что "прокладки". я тебе привёл именно базовые знания студента в Java. Браузер УЖЕ знает что делать на 401. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 14:50 |
|
||
|
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
|
|||
|---|---|---|---|
|
#18+
TepKuHТ.е. метод isAuthenticated() в JSP будет возвращать true. т.е. это ты сам накосячил? Т.к. у спринга много чего есть: - механизма голосования основанного на ролях (RoleVoter) - Настройка агрегации управления доуступом - 25 уже готовых фильтров перед каждым запросом - контекст авторизации, который прошит во всех местах кода (проверить твой параметр) Много чего есть, я глянул. Ты взял базовый фильтр /* url mapping ROLE_USSER и всё? А настроить? )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2016, 14:56 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39233345&tid=2124072]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 348ms |

| 0 / 0 |
