![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| acvilon |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 16.4.2007 Где: Spb Репутация: нет Всего: нет |
Товарищи. Подскажите как настроить авторизацию и аутентификацию в Spring Security через ejb?
|
|||
|
||||
| acvilon |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 16.4.2007 Где: Spb Репутация: нет Всего: нет |
Опишу ситуацию поподробнее:
Я разрабатываю приложение, web часть пишется с использованием спринга. Backend часть пишется на ejb. В конфиг спринга настраиваю для инжекта ejb. Теперь вопрос: Как настроить авторизацию и аутентификацию с использованием spring security через ejb. Т.к. напрямую web часть не может лазить в базу. Товарищи, помогите пожалуйста!!! |
|||
|
||||
| MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
привет. Мне что-то лень все раскладывать по полочкам: надеюсь по английски читать можешь. Наведу на мысль цитатой из Spring Security Reference
Если в двух словах, я бы посмотрел в сторону DaoAuthenticationProvider и на свою имплементацию UserDetailsService, который уже и будет делать вызов бизнес-метода логина на твоем EJB и строить UserDetails по тому, что ты вернешь в этом методе. Но тут, конечно, может всплыть такой вопрос: нужен ли потом тебе этот принципал на уровне EJB при дальнейших операциях: sessionContext.getCallerPrincipal? -------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
| acvilon |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 16.4.2007 Где: Spb Репутация: нет Всего: нет |
Был бы очень благодарен, если бы ты по шагам написать, что примерно надо сделать. Spring Security Reference - надо конечно почитать, но как-то в доке хреновенько все описано. Меня вот пока интересует аутентификацию юзеров. Потом, через некоторое врем я заинтересуюсь авторизацией. Заранее спс. |
|||
|
||||
| MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
Надо почитать и посмотреть примеры, что идут с дистрибутивом. Если умеешь с WEB-уровня вызывать EJB, то проблем у тебя не должно составить. Надо сначала что-то написать и привести тут код, где не сходится: все за тебя мы делать не будем -------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
| acvilon |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 16.4.2007 Где: Spb Репутация: нет Всего: нет |
Ладно-ладно. Все я и не просил.
|
|||
|
||||
| MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
надо токо реализовать свой UserDetailsService
-------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
| acvilon |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 16.4.2007 Где: Spb Репутация: нет Всего: нет |
А еще такой вопрос, лучше читать доку сразу по версии 3.0 или предыдущую? Третья вроде еще не вышла.
|
|||
|
||||
| MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
у меня 2.0.5
-------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
| acvilon |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 16.4.2007 Где: Spb Репутация: нет Всего: нет |
MisterCleric, я тут поразбирался. Возникло много вопросов.
1) Форма логина сабмититься аяксом, в ответ также ожидается ajax(ответ - урл на который следует перейти). Я так понимаю для такого решения придется переписать AuthenticationProcessingFilter? 2) UserName у меня может быть логином или email. То есть аутентифицироваться можно и по логину, и по email'у. Насколько я понял, надо имплементировать UserDetails и соответственно добавить нужные поля, конечно странно что в стандартном интерфейсе подразумевается только username! Также придется написать свой UserDetailsService. Я пока не разобрался хватит ли DaoAuthenticationProvider или придется отнаследоваться от него и переписать то, что надо. Что можешь посоветовать? |
|||
|
||||
| MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
Привет. Попробую ответить.
1. То что у тебя аякс, ничего не меняет: все-равно на сервер уезжает HTTP-запрос. У тебя должна быть форма структуры
Ну и аяксовый запрос должен отправлять на УРЛ j_spring_security_check Правда, действительно придется посмотреть на AuthenticationProcessingFilter, так как там возможны редиректы при неуспехе аутентификации... 2. То что у тебя UserName может быть и тем и другим ничего не меняет. Spring принимает из реквеста указанные выше параметры. Потом они передаются в AuthenticationManager, который отделегирует твоему AuthenticationProvider для получения UserDetails. 3. Все остальное как определить пользователя - по логину или email - это ты уже решаешь на уровне своего UserDetailsService Немного фантазии и смелости - и усе получится -------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |