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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Spring Security Remember-me cookie 
:(
    Опции темы
lsync
Дата 27.9.2012, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго дня! Прошу спецов взглянуть на мой конфиг - вроде всё по инструкции, но кука не ставится. Наверняка что-то мелкое упустил (пока не спец в этой теме), но найти не могу.

При этом если использовать простейший способ - задать в <http> строку <remember-me key="springRocks" />, всё работает на ура - и аутентификация, и remember-me.

Но вот хотелось бы развернуть этот автоконфиг, чтобы переопределить TokenBasedRememberMeServices (и провайдера этой куки, если понадобится), да и подробно разобраться, как оно работает, оттолкнувшись от рабочего конфига. Может, кто мог бы подсказать, где завтык?

Код

<?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-3.0.xsd
           http://www.springframework.org/schema/security
           http://www.springframework.org/schema/security/spring-security-3.1.xsd">


    <global-method-security pre-post-annotations="enabled" />

    <beans:bean id="authenticationFilter" class="org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter">
        <beans:property name="authenticationManager" ref="authenticationManagerDB" />
        <beans:property name="rememberMeServices" ref="rememberMeServices" />
    </beans:bean>

    <http pattern="/static/**" security="none" />

    <http auto-config="false">
        <intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
        <form-login login-page='/login' />
        <!-- remember-me key="springRocks" / -->
        <custom-filter ref="rememberMeFilter" position="REMEMBER_ME_FILTER" />
        <logout />
    </http>

    <!-- Remember-me configuration -->
    <beans:bean id="rememberMeFilter" class="org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter">
        <beans:property name="authenticationManager" ref="authenticationManagerDB" />
        <beans:property name="rememberMeServices" ref="rememberMeServices" />
    </beans:bean>

    <beans:bean id="rememberMeServices" class="org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices">
        <beans:property name="userDetailsService" ref="userDetailsService" />
        <beans:property name="key" value="springRocks" />
    </beans:bean>

    <beans:bean id="rememberMeAuthenticationProvider" class="org.springframework.security.authentication.RememberMeAuthenticationProvider">
        <beans:property name="key" value="springRocks" />
    </beans:bean>

    <!-- Authenticator configuration -->
    <beans:bean id="userDetailsService" class="org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl">
        <beans:property name="dataSource" ref="dataSourceMySQL" />
        <beans:property name="usersByUsernameQuery" value="select login, pass, enabled from `user` where login = ?" />
        <beans:property name="authoritiesByUsernameQuery"
            value="SELECT `user`.`login`, `authority`.`authority` FROM `user`, `authority` WHERE `user`.`login` = ? and `user`.`id` = `authority`.`userId`" />
    </beans:bean>

    <authentication-manager alias="authenticationManagerDB" xmlns="http://www.springframework.org/schema/security">
        <authentication-provider user-service-ref="userDetailsService" />
        <authentication-provider ref="rememberMeAuthenticationProvider" />
    </authentication-manager>

</beans:beans>

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


Эксперт
***


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

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



Собственно вот тут 

Код

< remember-me key="springRocks".>


можно делать кучу всяческих кастомизаций вроде задания user-service-ref, token-repository-ref, etc. Если их недостаточно, то объясните пожалуйста подробнее чего вы хотите добиться в конечном итоге.


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
lsync
Дата 9.10.2012, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(jk1 @ 29.9.2012,  08:11)
Собственно вот тут 

Код

< remember-me key="springRocks".>


можно делать кучу всяческих кастомизаций

Большое спасибо за подсказку! Так и сделал, всё получилось, в ограничения (в рамках своих целей) ещё не упёрся.

Изначально я с чего-то решил было, что для кастомизации придётся всё сначала разложить по полочкам, определив бины, и только потом рихтовать напильником. А с атрибутами это оказалось даже удобнее, ещё раз спасибо.

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.0473 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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