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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Spring security, добавить тикет 
:(
    Опции темы
Samotnik
Дата 22.9.2009, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



Есть приложение, поднятое на Спринге, на данный момент там реализован Spring - Security для одного приложения, назовем его  first.war, все говорят, что для first.war при логине создается  Тикет.   
Так вот мне нужно написать для приложения second.war такой же тикет  smile  , какой уже существует для first.war Но не знаю с чего начинать smile 
Подскажите плиз, чего почитать по этому поводу. 

Со спрингом более- менее знаком, со  Спринг - Секьюрити  нет smile 
Может есть доки доступно обьясняющие что к чему ?
PM MAIL   Вверх
MisterCleric
Дата 22.9.2009, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Привет
Цитата

все говорят, что для first.war при логине создается  Тикет.

О чем идет речь? Кто говорит? И что за тикет такой?



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


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



ну вот я тоже не особо представляю о чем речь smile ПОэтому на форуме и решил спросить smile
Вот вобщем есть такой таск (он был на немецком, я гуглом на инглиш перевел  smile ):
Цитата

The first.war does not support SSE, d, h, we need passwords and the need to SSO login immediately obtain an additional ticket from first.war.

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


Опытный
**


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

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



Цитата(Samotnik @  22.9.2009,  11:05 Найти цитируемый пост)
все говорят, что для first.war при логине создается  Тикет.

Может имеется ввиду какой-то объект, который при логине создается? Исходники первого приложения есть?
PM MAIL   Вверх
Samotnik
Дата 22.9.2009, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



нету сырцов smile 
в этом и проблема. Ну ничего подожду - потом посмотрю, мот разберусь, что за  тикеты такие  smile 
PM MAIL   Вверх
MisterCleric
Дата 22.9.2009, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

нету сырцов

Да хоть spring-security.xml то есть7
Давай его сюда: посмотрим


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


Бывалый
*


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

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



SSO - single sign on

Как я понял нужно прикрутить SSO к твоей апликухе. Тоесть если залогинился в first.war то в second.war уже логинится не надо...
"Тикет" это что то типа обьекта сессии который выдает SSO сервер.
--------------------
WARNING: Condition 'to_be || !to_be' is always 'true' !
PM MAIL ICQ   Вверх
MisterCleric
Дата 24.9.2009, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

Тоесть если залогинился в first.war то в second.war уже логинится не надо...


О! Вот это интересно. С удовольствием почитаю возможные решения. Часто бывает такая задача... Но пока не решенная


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


Java-developer
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 6.8.2004
Где: Новокузнецк

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



MisterCleric, по SSO для java и не только, можно посмотерть этот проектег CAS
у Oracle AS тоже есть реализация SSO

Это сообщение отредактировал(а) _and - 24.9.2009, 09:59
PM MAIL ICQ Jabber   Вверх
MisterCleric
Дата 24.9.2009, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



_and
Цитата

по SSO для java и не только, можно посмотерть этот проектег CAS

Спасибо, а меня интересует для JBOSS. Ну можно методами Spring. Хотя в доке о Spring-Security что о CAS видел.... Почитаю.
Еще раз спасибо.
А в двух словах можно как оно работает?



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


Бывалый
*


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

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



CAS ставится как отдельный сервер. Каждый засекюреный сервер настраиваетс таким образом что при первом обращении идет редирект на CAS, где юзер логинится и редиректися обратно. Юзер получает тикет, в браузере сохраняется айди этого тикета в crossdomain cookies. Если юзер преходит на другой засекюреный сервер, то сервер обращается к CAS серверу с айдишником тикета и получает тот же тикет обратно. Таким образом второй раз логинится не надо. Вобщем тикет шарится между несколькими серверами.

У спринга есть интеграция с CAS, на офф сайте даже пример есть

Это сообщение отредактировал(а) _sten_ - 24.9.2009, 23:09
--------------------
WARNING: Condition 'to_be || !to_be' is always 'true' !
PM MAIL ICQ   Вверх
Samotnik
Дата 25.9.2009, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



_sten_,  smile   о ! круто !  то что нужно !!! 
Я попрошу, если можно по-подробнее вот про это 
Цитата(_sten_ @  24.9.2009,  23:05 Найти цитируемый пост)
Каждый засекюреный сервер настраиваетс таким образом что при первом обращении идет редирект на CAS

вот у меня как раз именно так работает smile 
Моя задача найти это что-то, что  отвечает за редирект ! Помоги плиз. Это что ?  Это web.xml ?  Или это Бин, или Сервлет, или еще что-то ? 
Где искать то место, которое редиректит ?  smile  smile  smile  smile 
PM MAIL   Вверх
MisterCleric
Дата 25.9.2009, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

Где искать то место, которое редиректит

Я, по-моему, уже просил предоставить spring-security.xml из первого приложения...


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


Бывалый
*


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

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



вот здесь можеш посмотреть пример https://src.springframework.org/svn/spring-...unk/samples/cas

вот секюрити контекст из того-же примера:
Код

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:sec="http://www.springframework.org/schema/security"
    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.0.xsd
                        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd">
    <sec:http entry-point-ref="casProcessingFilterEntryPoint">
        <sec:intercept-url pattern="/secure/extreme/**" access="ROLE_SUPERVISOR" requires-channel="https"/>
        <sec:intercept-url pattern="/secure/**" access="ROLE_USER" />
        <sec:logout logout-success-url="/cas-logout.jsp"/>
        <sec:custom-filter ref="casProcessingFilter" after="CAS_PROCESSING_FILTER"/>        
    </sec:http>

    <sec:authentication-manager alias="authenticationManager">
        <sec:authentication-provider ref="casAuthenticationProvider"/>
    </sec:authentication-manager>

    <bean id="casProcessingFilter" class="org.springframework.security.cas.web.CasProcessingFilter">
        <property name="authenticationManager" ref="authenticationManager"/>
        <property name="authenticationFailureHandler">
            <bean class="org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler">
                <property name="defaultFailureUrl" value="/casfailed.jsp"/>
            </bean>
        </property>
        <property name="authenticationSuccessHandler">
            <bean class="org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler">
                <property name="defaultTargetUrl" value="/"/>
            </bean>
        </property>
        <property name="proxyGrantingTicketStorage" ref="proxyGrantingTicketStorage" />
        <property name="proxyReceptorUrl" value="/secure/receptor" />
    </bean>

    <bean id="casProcessingFilterEntryPoint" class="org.springframework.security.cas.web.CasProcessingFilterEntryPoint">
        <property name="loginUrl" value="http://localhost:8087/cas/login"/>
        <property name="serviceProperties" ref="serviceProperties"/>
    </bean>

    <bean id="casAuthenticationProvider" class="org.springframework.security.cas.authentication.CasAuthenticationProvider">
        <property name="userDetailsService" ref="userService"/>
        <property name="serviceProperties" ref="serviceProperties" />
        <property name="ticketValidator">
            <bean class="org.jasig.cas.client.validation.Cas20ServiceTicketValidator">
                <constructor-arg index="0" value="http://localhost:8087/cas" />
                <property name="proxyGrantingTicketStorage" ref="proxyGrantingTicketStorage" />
                <property name="proxyCallbackUrl" value="http://localhost:8080/spring-cas/secure/receptor" />
            </bean>
        </property>
        <property name="key" value="an_id_for_this_auth_provider_only"/>
    </bean>

    <bean id="proxyGrantingTicketStorage" class="org.jasig.cas.client.proxy.ProxyGrantingTicketStorageImpl" />

    <bean id="serviceProperties" class="org.springframework.security.cas.ServiceProperties">
        <property name="service" value="http://localhost:8080/spring-cas/j_spring_cas_security_check"/>
        <property name="sendRenew" value="false"/>
    </bean>

    <sec:user-service id="userService">
        <sec:user name="rod" password="rod" authorities="ROLE_SUPERVISOR,ROLE_USER" />
        <sec:user name="sten" password="1313" authorities="ROLE_SUPERVISOR,ROLE_USER" />
        <sec:user name="root" password="Gfhjkm111" authorities="ROLE_SUPERVISOR,ROLE_USER" />
        <sec:user name="dianne" password="dianne" authorities="ROLE_USER" />
        <sec:user name="scott" password="scott" authorities="ROLE_USER" />
    </sec:user-service>
</beans>

--------------------
WARNING: Condition 'to_be || !to_be' is always 'true' !
PM MAIL ICQ   Вверх
Samotnik
Дата 25.9.2009, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



Цитата(MisterCleric @  25.9.2009,  12:53 Найти цитируемый пост)
Я, по-моему, уже просил предоставить spring-security.xml из первого приложения... 

нету этого файла в первом приложении  smile

Добавлено через 6 минут и 42 секунды
на данный момент у меня вопрос немного поенялся, по сравнению  с начальным постом. 
В данный момент меня интересует следущее. 
Значит захожу я по адресу 
http://localhost:8080/alfresco
а меня выбрасывает вот на такую страницу 
https://localhost:8443/cas/login?service=http%3A%2F%2Falfresco%3A8080%2Falfresco%2Ffaces%2Fjsp%2Fdashboards%2Fcontainer.jsp

так вот собственно вопрос. Что отвечает за этот редирект ? 
Ведь это должно быть происанно в web.xml  приложения alfresco 
правда ?
Так вот что именно искать в этом web.xml ?   smile 
PM MAIL   Вверх
_sten_
Дата 25.9.2009, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



должен быть какойто фильтр.
и покажи свой web.xml 
--------------------
WARNING: Condition 'to_be || !to_be' is always 'true' !
PM MAIL ICQ   Вверх
Samotnik
Дата 25.9.2009, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



Цитата(_sten_ @  25.9.2009,  13:38 Найти цитируемый пост)
и покажи свой web.xml  

smile
это трудно, там 700 строк кода. 
Но фильтр я нашел, их там тоже хватает. Какой именно искать нужно ?
PM MAIL   Вверх
_sten_
Дата 25.9.2009, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



для интеграци со спрингом создается org.springframework.web.filter.DelegatingFilterProxy, но он просто делегирует фильтрацию на фильтры обьявленые в security-context.xml(или application-context.xml или как ты там его назвал smile )

скачай тот пример который я скинул там все понятно....

Это сообщение отредактировал(а) _sten_ - 25.9.2009, 15:30
--------------------
WARNING: Condition 'to_be || !to_be' is always 'true' !
PM MAIL ICQ   Вверх
Samotnik
Дата 25.9.2009, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



_sten_,  вот фильтры из web.xml  моего 
Код

<!-- JASIG Java Spring Client -->
    <filter>
        <filter-name>CAS Authentication Filter</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
        <init-param>
            <param-name>targetBeanName</param-name>
            <param-value>casAuthenticationFilter</param-value>
        </init-param>
    </filter>
    
    <filter>
        <filter-name>CAS Validation Filter</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
        <init-param>
            <param-name>targetBeanName</param-name>
            <param-value>casValidationFilter</param-value>
        </init-param>
    </filter>
    <!-- JASIG Java Spring Client -->

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


Эксперт
***


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

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



рядом должна быть XML-ка, которая содержит spring-конфигурацию стандартного спринговского метода авторизации через CAS.
Вот теперь все понятно, что оно у тебя нормально настроено. Надо только посмотреть на эту конфигурацию, что бы понимать по словам _sten_, что нужно забрать в твое новое приложение


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


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



Так нашел xml
Скорее всего вот она 
Код

<bean name="casAuthenticationFilter" 
            class="org.jasig.cas.client.authentication.AuthenticationFilter" >
        <property name="casServerLoginUrl">
            <value>${alfa.ssoExternalService}/cas/login</value>
        </property>
        <property name="renew">
            <value>false</value>
        </property>
        <property name="gateway">
            <value>false</value>
        </property>
        <property name="serverName">
            <value>${alfa.ecmsExternalService}</value>
        </property>
    </bean>


Я так понмаю, что с помощью ее вызывается какой то стандартный класс и таким образом редиректит на страницу ?

Далее
Допустим разобрались каким образом он редиректит, теперь встает вопрос о том, каким образом он проверяет прошел ли пользователь аутентификацию ?  Как  CAS знает, какие пользователи уже есть в системе и какие у них права ?  
PM MAIL   Вверх
MisterCleric
Дата 25.9.2009, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

Как  CAS знает, какие пользователи уже есть в системе и какие у них прав

Это в доку 0 читать. Мы сами толком не знаем: уже бы ответели. Я, думаю, тебе не надо заморачиваться. просто в свое приложение копируешь данный конфиг и тестишь


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


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



MisterCleric, не совсем так. 
Мне еще очень важно знать, что cas еще знает про пользователя ! Это важно ! Какие еще данные доступны?  Что можно дернуть из него ?
PM MAIL   Вверх
_sten_
Дата 25.9.2009, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

каким образом он проверяет прошел ли пользователь аутентификацию ? 

как я уже писал кас сохраняет айди сессии в crossdomain cookie, твой сервер передает кас серверу эту айдишку при проверке аутентификации.

Цитата

Мне еще очень важно знать, что cas еще знает про пользователя ! Это важно ! Какие еще данные доступны?  Что можно дернуть из него ? 

это зависит от того как настроен кас сервер, у него есть своя БД(скорей всего LDAP).

Также после успешной аутентификации ты можеш получить дополнительные параметры юзера из своей локальной БД, поищи в своем xml чтото вроде UserDetailsService

Добавлено через 5 минут и 41 секунду
вобще можно было бы не ленится и почитать доку

Это сообщение отредактировал(а) _sten_ - 25.9.2009, 21:40
--------------------
WARNING: Condition 'to_be || !to_be' is always 'true' !
PM MAIL ICQ   Вверх
Samotnik
Дата 28.9.2009, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



Цитата(_sten_ @  25.9.2009,  21:35 Найти цитируемый пост)
вобще можно было бы не ленится и почитать доку

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


Шустрый
*


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

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



советую загуглить spring in action, там есть подробный пример как это делается. К сожалению, по памяти рассказать не могу 
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.1426 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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