Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517

spring-security доступ: а тому ли я дала

09.05.2013, 19:49. Показов 1814. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нет, я не девушка, просто решил привлечь внимание таким заголовком который вполне отражает суть проблемы Считайте что вопрос задаёт мой сервер, а пол у него женский.

Мне необходимо добавить защиту (авторизацию) к серверу который раздаёт различные сервисы клиентам (как они подключаются в принципе не важно). В итоге я полуил следующую конфигурацию sping-security части:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    <!--- My security -->
    <security:http realm="SecRemoting">
        <security:http-basic/>
 
        <security:intercept-url pattern="/HttpDepartmentService" access="ROLE_USER" />
    </security:http>
 
    <security:user-service id="uds">
        <security:user name="gepar" password="gepar"
                       authorities="ROLE_USER, ROLE_MANAGER, ROLE_ADMIN" />
        <security:user name="user" password="user"
                       authorities="ROLE_USER" />
    </security:user-service>
 
    <security:authentication-manager alias="authenticationManager">
        <security:authentication-provider>
            <security:user-service id="uds">
                <security:user name="gepar" password="gepar"
                               authorities="ROLE_USER, ROLE_MANAGER, ROLE_ADMIN" />
                <security:user name="user" password="user"
                               authorities="ROLE_USER" />
            </security:user-service>
        </security:authentication-provider>
    </security:authentication-manager>
Как видно из xml'ника, защищаю я HttpDepartmentService и в принципе всё работает: если зайти по этому адресу то я получаю запрос на авторизацию, всё хорошо (если прав недостаточно - соответственно ошибка томкетовская с руганиной на это) и с клиента всё хорошо авторизируется (использую апачевский http client что-то там) ... Только у меня как-то слишком мало всяких конфигов. Я до этого боялся spring-security потому что там какие-то DigestAuthenticationEntryPoint, exceptionTranslationFilter, filterSecurityInterceptor и прочее-прочее-прочее у других используется.

Но достаточно ли того что я сконфигурировал для защиты сервера? Или сейчас защиту легко обойти и вот этого моего конфига недостаточно и я тоже должен какие-то фильтры подключать с хитрыми алгоритмами? Всё же я хочу чтобы сервисом пользовались только авторизированные пользователи.

Ну и вопросы security касающиеся косвенно:
1)Как мне загружать конфигы по пользователям, паролям и ролям из файла и подсовывать их моему authenticationManager ? Это же как-то глупо что они вот так прямо посреди конфига записаны, уже хотя бы отдельно в файлике (без шифровок, хеширования и т.д, просто в файле) их видеть хотелось бы.
2)Как изменить страничку когда томкет ругается что доступа недостаточно, сейчас она стандартная, я хотел бы что-то своё написать (можно ткнуть носом в ссылку, я просто не знаю что гуглить).
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.05.2013, 19:49
Ответы с готовыми решениями:

Spring Security - анонимный и авторизованный доступ
Всем доброго времени. Есть REST метод, использующий авторизацию. Параметры заданны через аннотацию...

Как получить доступ к Spring Security из jsp?
Везде предлагают &lt;%@ taglib prefix=&quot;sec&quot; uri=&quot;http://www.springframework.org/security/tags&quot; %&gt;, но ссылка не работает. Вариант передавать...

Spring Security, как обеспечить доступ к персональным страницам только их владельцу
Есть пользователь пользователь может владеть несколькими заведениями, а может не владеть ни одним. Вопрос в том как настроить intercept-url...

6
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
09.05.2013, 20:21
Цитата Сообщение от Gepar Посмотреть сообщение
Или сейчас защиту легко обойти и вот этого моего конфига недостаточно и я тоже должен какие-то фильтры подключать с хитрыми алгоритмами?
обычно хватает хранить пароль в md5 в базе и доставать его кастом провайдером

а вот так делают кастом
http://forum.springsource.org/... er-Details
там в серединке пример расширения провайдера для работы с бд
1
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
09.05.2013, 21:45  [ТС]
mutagen, а куча фильтров мне не надо? У всех пачка фильтров, а я воспользовался стандартным конфигом и оно и так заработало, притом с куки, всё как положено. Я теперь думаю вот такую вот авторизацию оставить и к веб части или это плохая идея?
По учёткам сейчас схожу по той ссылке.

Добавлено через 4 минуты
Полезного не нашёл я там особо, но как я понял там подталкивают к идее написать свой authenticationManager, ну а вы подталкиваете меня к идее что он будет брать из базы данных информацию о логине, пользователе и правах, я правильно понял?

Добавлено через 28 минут
Нашёл на хабре в статье вот такое вот упоминание:
Пример записи (security.xml) при использовании БД для хранения паролей.
XML
1
2
3
4
5
    <authentication-manager>
        <authentication-provider>
            <jdbc-user-service data-source-ref="dataSource" />
        </authentication-provider>
    </authentication-manager>
К сожалению дальше эта идея не развита, как указать таблицу в базе где надо брать записи о пользователях и как они должны выглядеть при таком конфиге? Или это оно будет брать реаьных пользователей базы с их правами при такой конфигурации?

Добавлено через 33 минуты
Кстати, а можно ли сослаться не через jdbc-user-service data-source-ref, а что-то учитывающее хибернейт и jpa. Как-то тупо что у меня будет конфиг хибернейта для пользования всем и конфиг jdbc чтобы только юзер-пароль тягать
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
09.05.2013, 22:21
Цитата Сообщение от Gepar Посмотреть сообщение
брать из базы данных информацию о логине, пользователе и правах, я правильно понял?
да верно
Цитата Сообщение от Gepar Посмотреть сообщение
Или это оно будет брать реаьных пользователей базы с их правами при такой конфигурации?
да именно на это и рассчитано по датасорсу (скорее всего это безORMное решение для каких то целей)
Цитата Сообщение от Gepar Посмотреть сообщение
Как-то тупо что у меня будет конфиг хибернейта для пользования всем и конфиг jdbc чтобы только юзер-пароль тягать
согласен - поэтому реализовать кастом провайдера который тягает юзеров и пароли через хибернет более гибкое и на мой взгляд правильное решение.
1
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
10.05.2013, 02:25  [ТС]
К слову: а как у этого spring-security кеш чистить? Я так понял он запоминает веб-клиента по какой-то сводке информации, я просто вот один раз авторизировался в ie и он теперь всегда меня помнит (я кукисы и кеши уже все вычистил), зашёл с оперы -> появилось окошко ввода логина и пароля, но опять же таки после ввода и авторизации я теперь постоянно авторизированный на сервере чтобы я там в браузере не делал и не чистил.

Цитата Сообщение от mutagen Посмотреть сообщение
согласен - поэтому реализовать кастом провайдера который тягает юзеров и пароли через хибернет более гибкое и на мой взгляд правильное решение.
Ок, учту, пока оставлю конфиг прямо в xml'е, а когда закончу с gui и веб-мордочкой хоть какой-то то допишу нормальную тягалку логинов и паролей с базы.
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
10.05.2013, 07:11
Цитата Сообщение от Gepar Посмотреть сообщение
чтобы я там в браузере не делал и не чистил.
хз где там бразёры всё кешат, поэтому чтобы инвалидировать сессию, можно просто выполнить логаут
по дефолтному урлу
Java
1
/j_spring_security_logout
или повесить свой логаут хендлер на кастом урл
по атрибуту
XML
1
logout-url
1
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
14.05.2013, 14:47
Цитата Сообщение от mutagen Посмотреть сообщение
обычно хватает хранить пароль в md5 в базе и доставать его кастом провайдером
Лучше все-таки не MD5, он ломается достаточно легко. SHA1 + salt - надежнее.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.05.2013, 14:47
Помогаю со студенческими работами здесь

Jetty embedded + Spring MVC + Spring Security
Добрый день. По роду работы приходилось писать на JavaSE, в том числе и сложные клиент/серверные программы. Использовал Netty, Apache...

Spring. Тесты и Spring-security
Вопрос из области почему так. Есть у меня такой вот тест: @ContextConfiguration(locations =...

Spring security c 3 на 4
Не знаю почему, но после того, как перешел на spring security 4 возникает проблема. Захожу на страницу логина, ввожу имя и пароль....

Spring Security
Добрый день. Использую SpringSecurity: protected void configure(HttpSecurity http) throws Exception { ...

Spring Security + галерея
Добрый вечер. Моя задача фотогалерея с доступом по авторизации. Авторизацию сделал, а вот с галереей проблемы. Не понимаю как это вообще...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru