powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
25 сообщений из 41, страница 1 из 2
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233265
TepKuH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги,
Есть следующая задача:
Юзер имеет свой логин и пароль. А так же может иметь третий авторизационный параметр (компания), а может и не иметь.
Нужно сделать так, чтобы юзер вводил логин\пасс и в случаи если юзер принадлежит к двум или более компаниям выводить ему страницу выбора компании.
Если же юзер не принадлежит ни одной компании или только к одной не выводить страницу с выбором третьего параметра (компании) и применять какую то умолчательную компанию.
Мой вопрос заключается в том как такое реализовывается с помощью Spring Security. У меня мыслей кроме two factor authentication нету и я не уверен, что это православный путь реализации такой задачи.
Был бы благодарен за ссылки чего бы почитать как это пилят в лучших домах Лондона и Парижа :)
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233293
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TepKuHЮзер имеет свой логин и пароль. А так же может иметь третий авторизационный параметр (компания), а может и не иметь.
уберите (назовите по другому) третий параметр и всё станет на места.
Например, 3-ий парам - Настройки и предпочтения пользователя.
Показ настроек хоть через админку, хоть ему самому на входе после аутентификации .
Т.к. она может быть просто по кукам, чтобы юзвери не ругались.
Т.е. задача не в ту степь и неправославна.
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233303
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123TepKuHЮзер имеет свой логин и пароль. А так же может иметь третий авторизационный параметр (компания), а может и не иметь.
уберите (назовите по другому) третий параметр и всё станет на места.
Например, 3-ий парам - Настройки и предпочтения пользователя.
Показ настроек хоть через админку, хоть ему самому на входе после аутентификации .
Т.к. она может быть просто по кукам, чтобы юзвери не ругались.
Т.е. задача не в ту степь и неправославна.

Подозреваю, что у пользователя права на действия зависят от "компании".
Если так, то можно сделать так (я делал для jboss/javaee) - выдаются права на одно действие- выбор параметра. После этого заново заполняются допустимые здесь действия, а так же "компанию"- чтобы подставлять его во все запросы как фильтр.
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233308
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TominПодозреваю, что у пользователя права на действия зависят от "компании".
Я тоже подозреваю. Но тогда что значит - нет ни одной комании?
Минимальные права?
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233313
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
после стандартного ввода логини/пароля и отправки на сервер, с сервера идет ответ и по которому полявляется поле для ввода третьего параметра(если для данного юзера это наобходимо) или переход на следующую страницу
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233316
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Логин и пароль отвечают только за аутентификацию. И мешать с авторизацией не стоит.
А потом уже методы решения и раздачи прав (хоть по 20ти параметрам)
imho
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233320
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяпосле стандартного ввода логини/пароля и отправки на сервер, с сервера идет ответ и по которому полявляется поле для ввода третьего параметра(если для данного юзера это наобходимо) или переход на следующую страницу
это и есть мешанина кода и смысла.
Т.к. ответ ты пришлёшь любому не прошедшему аутентификацию.
Т.е. любому Пупкину.
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233331
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадяпосле стандартного ввода логини/пароля и отправки на сервер, с сервера идет ответ и по которому полявляется поле для ввода третьего параметра(если для данного юзера это наобходимо) или переход на следующую страницу
это и есть мешанина кода и смысла.
Т.к. ответ ты пришлёшь любому не прошедшему аутентификацию.
Т.е. любому Пупкину.
как ты думаешь - откуда серверу знать что посылать - вопрос с параметром или команду для перехода к с ледующей странице?
наверно логично будет по логину/паролю произвести аутентификайию и по результату отправить.
возможны три варианта
1 логин/пароль не верны
2 переход на следующую страницу , если для данного юзере не требуется доп параметр
3 появление поля для выбора параметра

есть сложности с такой реализацией?
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233345
TepKuH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TominПодозреваю, что у пользователя права на действия зависят от "компании".
Если так, то можно сделать так (я делал для jboss/javaee) - выдаются права на одно действие- выбор параметра. После этого заново заполняются допустимые здесь действия, а так же "компанию"- чтобы подставлять его во все запросы как фильтр.
Вы правильно подозреваете :)
В зависимости от компании юзеру показываются разные данные в представлениях. А так же доступны доп. кнопки в представлении.

Petro123Минимальные права?
Верно.

вадяпосле стандартного ввода логини/пароля и отправки на сервер, с сервера идет ответ и по которому полявляется поле для ввода третьего параметра(если для данного юзера это наобходимо) или переход на следующую страницу
Ну так оно по идеи и должно быть. Но только если юзер принадлежит к двум или более компаниям он эту страницу для ввода третьего парамтра обойти не может. т.е. попытка попасть на защищенные спрингом страницы должна быть не успешна.
Т.е. после первого шага авторизации юзер делжен принадлежать к какой то временной группе. А после страницы выбора компании уже получать роли которые замапленные к компании.
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233351
TepKuH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадявозможны три варианта
1 логин/пароль не верны
2 переход на следующую страницу , если для данного юзере не требуется доп параметр
3 появление поля для выбора параметра
есть сложности с такой реализацией?
Да, есть.
Если юзер ввел правильный логин и пароль. Он считается авторизованным пользователем. И следовательно может попадать в защищенные спрингом страницы. А он не должен :) Если принадлежит к 2 или более компаниям. его должно всегда редиректить на страницу выбора компании.
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233361
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНу так оно по идеи и должно быть. Но только если юзер принадлежит к двум или более компаниям он эту страницу для ввода третьего парамтра обойти не может. т.е. попытка попасть на защищенные спрингом страницы должна быть не успешна.
Т.е. после первого шага авторизации юзер делжен принадлежать к какой то временной группе. А после страницы выбора компании уже получать роли которые замапленные к компании.
а какие проблемы для организации такой логики?
после отправки логина/пароля происходит проверка. он не принадлежит ни к какой группе, если для дальнеёшего входа надо ввести ещё один параметр, просто на клиента по ajax отпрвляется команда на ввод параметра
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233366
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадянаверно логично будет по логину/паролю произвести аутентификайию и по результату отправить.
немного беременным быть нельзя.
- произвёл аутентификацию - на выходе ДА или НЕТ. А потом всё остальное.
Вот и разделяй (код от представления) одно от другого.
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233370
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДа, есть.
Если юзер ввел правильный логин и пароль. Он считается авторизованным пользователем. И следовательно может попадать в защищенные спрингом страницы. А он не должен :) Если принадлежит к 2 или более компаниям. его должно всегда редиректить на страницу выбора компании.
кем считается?
пока сервер не приял решение и не отправил клиенту - он никем не считается.
не важно прошёл он первый пункт или нет
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233375
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадянаверно логично будет по логину/паролю произвести аутентификайию и по результату отправить.
немного беременным быть нельзя.
- произвёл аутентификацию - на выходе ДА или НЕТ. А потом всё остальное.
Вот и разделяй (код от представления) одно от другого.
даже если он угадал логин /пароль и если для этого логина/пароля необходим третий параметр - сервер его никуда не пустит, если нет этого параметра
логика элементарная
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233377
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TepKuHЕсли юзер ввел правильный логин и пароль. Он считается авторизованным прошедшим аутентификацию пользователем.
И следовательно может попадать в защищенные спрингом страницы. А он не должен :)
А почему с минимальной ролью вы пускаете на все страницы?
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233384
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадядаже если он угадал логин /пароль и если для этого логина/пароля необходим третий параметр - сервер его никуда не пустит, если нет этого параметра
логика элементарная
вот ты кругом, ничего из ГОТОВОГО не изучаешь.
Вопрос - про запрос сервера с кодом 401 слыхал?
Это в заголовках видел?
Код: java
1.
WWW-Authenticate: Basic realm="Secure Area"
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233386
TepKuH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяа какие проблемы для организации такой логики?
после отправки логина/пароля происходит проверка. он не принадлежит ни к какой группе, если для дальнеёшего входа надо ввести ещё один параметр, просто на клиента по ajax отпрвляется команда на ввод параметра
Приведу пример текущего конфига спинга
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<security:http auto-config="true" use-expressions="true">
        <security:intercept-url pattern="/selfcare/**" access="isAuthenticated()" />
        <security:form-login
                username-parameter="j_username"
                password-parameter="j_password"
                login-processing-url="/j_spring_security_check"
                login-page="/index.html"
                default-target-url="/selfcare/index.html"
                authentication-failure-url="/login.html?error" />
        <security:http-basic />
        <security:logout logout-success-url="/index.html" />
        <security:logout logout-url="/logout"/>
        <security:csrf disabled="true"/>
        <security:headers disabled="true"/>
    </security:http>   

    <security:authentication-manager alias="authenticationManager">
        <security:authentication-provider user-service-ref="customUserDetailsService">
            <security:password-encoder hash="plaintext"></security:password-encoder>
        </security:authentication-provider>
    </security:authentication-manager>


Он нам кагбэ говорит о том что если юзер отправил на контроллер j_spring_security_check параметры j_username и j_password и customUserDetailsService сверил логин и пасс то юзер считается авторизованным. И может попадать в закрытый спингом контекст /selfcare/**
Так вот юзер после ввода логина и пароля не должен еще считаться авторизованным (isAuthenticated) если он принадлежит к двум или более компаниям
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233392
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
когда клиент отправил логин/пароль - сервер получил эту пару, он её проанализировал, есть юзер -смотрит надоли ему третий параметр....
что нельзя что ли это реализовать???
или всё отданно тупым прокладкам?
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233395
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://findevelop.blogspot.ru/2013/10/web-spring-security-100.html
с помощью этого реализуется элементарно
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233397
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TepKuHи пасс то юзер считается авторизованным.
тут и надо копать. Как спринг работает с ролями.
Чел выше предложил в виде фильтров. Но наверно и декларативно что-нить есть.
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233399
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяили всё отданно тупым прокладкам?
я верю.
Это у тебя тоже прокладки:
https://ru.wikipedia.org/wiki/Список_кодов_состояния_HTTP
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233407
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадяили всё отданно тупым прокладкам?
я верю.
Это у тебя тоже прокладки:
https://ru.wikipedia.org/wiki/Список_кодов_состояния_HTTP
это не прокладки - это стандарты для работы.
а если отдано на откуп прокладкам - они работают строго по своим правилам и должны отдать эти страницы.
когда встречается более сложная ситуация - прокладки вступают в ступор.
я привел образец кода на котором это "не прокладочная ситуация" решается просто.
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233411
TepKuH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парни,
Вы тут везде предлагаете реализовать роли на сколько я вас понял.
Т.е. ввел юзер логин и пасс. Ему фигак роль: аля PRE_AUTH_ROLE. Выбрал компанию ему фигак роль FULL_ACCESS_ROLE.
Но дело в том что после уже ввода логина и пароля юзер будет считаться авторизованным. Т.е. метод isAuthenticated() в JSP будет возвращать true. А мне не хотелось бы переделывать кучи JSP'ишек где стоит такая проверка.
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233434
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяэто не прокладки - это стандарты для работы.
ты определись тогда. Что у тебя базовые знания Java, а что "прокладки".
я тебе привёл именно базовые знания студента в Java.
Браузер УЖЕ знает что делать на 401.
...
Рейтинг: 0 / 0
Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
    #39233444
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TepKuHТ.е. метод isAuthenticated() в JSP будет возвращать true.
т.е. это ты сам накосячил?
Т.к. у спринга много чего есть:
- механизма голосования основанного на ролях (RoleVoter)
- Настройка агрегации управления доуступом
- 25 уже готовых фильтров перед каждым запросом
- контекст авторизации, который прошит во всех местах кода (проверить твой параметр)
Много чего есть, я глянул.
Ты взял базовый фильтр /* url mapping ROLE_USSER и всё?
А настроить? ))
...
Рейтинг: 0 / 0
25 сообщений из 41, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring Security. Три атрибута авторизации. (Логин+Пароль+Компания)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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