Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SpringSecurety и JAAS, Как настроить? 
V
    Опции темы
Dreamtraveler
Дата 24.12.2009, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 23.11.2009

Репутация: нет
Всего: нет



Здравствуйте.
Создал недавно приложение с использованием некоторых возможносте Spring. 
Появился вопрос о безопасности. Попробовал realm'ы Tomcat такие как JDBC, JAAS. Работает замечательно.
Теперь хочу настроить Spring Security, конкретно JAAS, чтобы использовалась внутреняя безопасность приложения а не realm'ы 
Tomcat. 
Прочитал документацию По Java Authentication and Authorization Service (JAAS) Provider вроде показалось все легко. 
Но трудности все равно появились ))).
У меня просьба может кто-нибудь дать ссылку на хорошую информацию по данной теме или рассказать здесь как мне прикрутить 
данную безопасность к своему приложению или дать пример ))).
Некоторые вопросы:
1. У меня есть реализация Login Modul'я для realm'а Tomcat. Я могу использовать её для настройки Java Authentication and Authorization Service (JAAS) Provider'а следующим образом?(зеленый участок)
2. Правильно ли настроен красный участок
3. Как задать провайдера как в предпоследней строчке или как в голубом участке?


Код


<?xml version="1.0" encoding="UTF-8"?>

<beans:beans xmlns="http://www.springframework.org/schema/security"
  xmlns:beans="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
              
            http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd">

     [color=red]<http auto-config="true" access-denied-page="/accessDenied.jsp">

        <intercept-url pattern="/plat.plt" access="user, admin"/>
        <intercept-url pattern="/rolvs.plt" access="admin"/>
        <intercept-url pattern="/use.plt" access="admin,nach"/>
        <intercept-url pattern="/Exit.plt" access="admin,nach,user"/> 

        <form-login
                login-page="/logins.jsp"
                default-target-url="/"
                authentication-failure-url="/loginError.html"/>

        <logout logout-url="/" logout-success-url="/index.jsp"/> 
      <!--  <concurrent-session-control  max-sessions="1" expired-url="/logins.jsp"/>-->

    </http>[/color]
 
   <!-- <beans:bean id="filterChainProxy"
        class="org.springframework.security.util.FilterChainProxy">
        <security:filter-chain-map path-type="ant">
            <security:filter-chain pattern="/**" filters="httpSessionContextIntegrationFilter,logoutFilter,authenticationProcessingFilter,basicProcessingFilter,securityContextHolderAwareRequestFilter,rememberMeProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor,switchUserProcessingFilter"/>
        </security:filter-chain-map>
    </beans:bean>-->
 
    [color=limegreen]<beans:bean id="jaasAuthenticationProvider"
            class="org.springframework.security.authentication.jaas.JaasAuthenticationProvider">
        <beans:property name="loginConfig" value="/WEB-INF/LoginAplication.config"/>
        <beans:property name="loginContextName" value="PlatsSprinForceWVer"/> 
        <beans:property name="callbackHandlers"> 
            <beans:list>
                <beans:bean class="org.springframework.security.authentication.jaas.JaasNameCallbackHandler"/>
                <beans:bean class="org.springframework.security.authentication.jaas.JaasPasswordCallbackHandler"/>
            </beans:list>
        </beans:property>
        <beans:property name="authorityGranters">
            <beans:list>
               <!-- <beans:bean class="org.springframework.security.authentication.jaas.TestAuthorityGranter"/>-->
             <beans:bean class="login.ReliseAuthorityGranter"/>
            </beans:list>
        </beans:property>
    </beans:bean> [/color]

  [color=blue] <!-- <beans:bean id="authenticationManager"
        class="org.springframework.security.authentication.ProviderManager">
        <beans:property name="providers">
            <beans:list>
               <beans:ref local="jaasAuthenticationProvider"/>
                <ref local="anonymousAuthenticationProvider"/>
                <ref local="rememberMeAuthenticationProvider"/>
           </beans:list>
        </beans:property>
        <beans:property name="sessionController" ref="concurrentSessionController"/>
    </beans:bean>-->
 
   <!-- <beans:bean id="concurrentSessionController"
        class="org.springframework.security.concurrent.ConcurrentSessionControllerImpl">
        <beans:property name="maximumSessions" value="1"/>
        <beans:property name="sessionRegistry">
            <beans:bean class="org.springframework.security.concurrent.SessionRegistryImpl"/>
        </beans:property>
    </beans:bean>-->

   <!-- <beans:bean id="concurrentSessionController"
        class="org.springframework.security.web.authentication.session.ConcurrentSessionControlStrategy ">
        <beans:property name="maximumSessions" value="1"/>-->
        <!--<beans:property name="sessionRegistry">
            <beans:bean class="org.springframework.security.core.session.SessionRegistryImpl"/>
        </beans:property>-->
   <!-- </beans:bean> -->[/color]
   
            <!--<authentication-provider user-service-ref="jaasAuthenticationProvider"/>-->
            
  </beans:beans>


PM MAIL   Вверх
MisterCleric
Дата 24.12.2009, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 33
Всего: 38



Привет. SpringSecurity для использования JAAS не юзал, но попробую поподсказывать.
Так вот:
1. В красном участке убери 
Цитата

auto-config="true"


2. concurrent-session-control на практике мне хватило только настройки внутри тега http. Но также можно и переопределить тот, что по дефолту примерно так:
Код

<beans:bean id="_concurrentSessionController"
                class="my.company.web.spring.security.MyConcurrentSessionControllerImpl"
                p:sessionRegistry-ref="_sessionRegistry"/>

и обратить внимание на ID этого бина. Большенство сервисов по дефолту в SpringSecurity  имеют ID с подчеркивание. И если ты его создаешь бинчик с таким же ID, то он перекроет тот, что подефолту. Для примера тут я использую бин по дефолту _sessionRegistry

3. authenticationManager можно и не создавать как бин. Он есть по дефолту. для того, что бы можно было использовать твой AuthenticationProvider достаточно его определить как бин в конфиге, что ты и сделал в зеленом блоке и пометить его как:
 <custom-authentication-provider/>

4. anonymous & rememberMe можно сконфигурить внутри http

5. Последняя строка ошибочная: AuthenticationProvider совсем не user-service...

Вроде все. Разбор полетов начинается...


--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
Dreamtraveler
Дата 24.12.2009, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 23.11.2009

Репутация: нет
Всего: нет



Спосибо буду пробовать....
И еще такой вопрос. 
Хочу использовать библиотеки:
http://www.springframework.org/schema/bean...g-beans-3.0.xsd
http://www.springframework.org/schema/secu...ecurity-3.0.xsd
Там похоже немного по другому синтаксис чем в 2.0. может так получится что в jar'ах может неоказатся нужных методов для обработки синтаксиса 3.0? 

Где можно почитать про http тег и его параметры?
PM MAIL   Вверх
MisterCleric
Дата 24.12.2009, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 33
Всего: 38



Цитата

про http тег 


Reference,который идет с дистрибутивом SpringSecurity.

О 3.0 : не должно такого быть...
Только вот вопрос: в каких jar'ах ?


--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
Dreamtraveler
Дата 24.12.2009, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 23.11.2009

Репутация: нет
Всего: нет



ага читаю теги...
jar'ы - как всегда конфликт библиотек.
То методов нет, то вообще классов. 
К примеру:
 <!-- <beans:bean id="concurrentSessionController"
        class="org.springframework.security.web.authentication.session.ConcurrentSessionControlStrategy ">
        <beans:property name="maximumSessions" value="1"/>-->
        <!--<beans:property name="sessionRegistry">
            <beans:bean class="org.springframework.security.core.session.SessionRegistryImpl"/>
        </beans:property>-->
   <!-- </beans:bean> -->

Вот на это он заявляет что нет метода setSessionRegistry, да его и правда нет. Значит я взял настройки из примера, кстати на спринговском сайте (что ж они его не обнавляют?), где такой метод был, да и вообще похоже такой бин нельзя создать потому что нет у него конструктор по умолчанию, кажись.

а на этот кусок:

<http auto-config="true" access-denied-page="/accessDenied.jsp">

        <intercept-url pattern="/plat.plt" access="user, admin"/>
        <intercept-url pattern="/rolvs.plt" access="admin"/>
        <intercept-url pattern="/use.plt" access="admin,nach"/>
        <intercept-url pattern="/Exit.plt" access="admin,nach,user"/> 

        <form-login
                login-page="/logins.jsp"
                default-target-url="/"
                authentication-failure-url="/loginError.html"/>

        <logout logout-url="/" logout-success-url="/index.jsp"/> 
      <!--  <concurrent-session-control  max-sessions="1" expired-url="/logins.jsp"/>-->

    </http>


 (Tomcat) он тоже ругается говорит что нет какого-то метода  парсера xml, чтобы что-то там прочесть. Вот такие вот дела пока грустные...
PM MAIL   Вверх
Dreamtraveler
Дата 25.12.2009, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 23.11.2009

Репутация: нет
Всего: нет



Ну вот собстственно и все работа закончена!
Благодарю всех кто откликнулся! Добавил бы репутации , но что-то по правилам сто постов надо написать... 

Если у кого возникнут вопрсы по данной теме то пишите чем смогу помогу.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1136 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.