Все, что я хочу, это просто помнить-меня. Я прочитал http://static.springsource.org/spring-security/site/docs/3.0.x/reference/remember-me.htmlПростая весна <вспомнить-мне /> ... помогите пожалуйста
То, что я сделал до сих пор:
- создал свой собственный
UserDetailsService
работать с Hibernate/JPA. Мой имплантат. не рассматривает какое-либо помните меня вещи - Рассмотрены конфигураций через контекст приложение
<security:remember-me key="89dqj219dn910lsAc12" user-service-ref="jpaUserDetailsService" token-validity-seconds="864000"/>
- Проверены, что печенье
SPRING_SECURITY_REMEMBER_ME_COOKIE
действительно установлен - Помнить обеспеченный сайт и он работает
Когда я перезагрузить браузер , я получаю сообщение об ошибке:
org.springframework.security.access.AccessDeniedException: Доступ запрещен объекта проверки подлинности в виде строки: org.springframework.security.authentication.Rem emberMeAuthenticationToken @ 9ab72a70: Principal: [email protected]: Имя пользователя: myad; Пароль защищен]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Персональная информация: 65537; ; Учетные данные: [ЗАЩИТА]; Authenticated: true; Подробности: org.sprin[email protected]957e: RemoteIpAddress: 127.0.0.1; SessionId: null; Предоставленные власти: ROLE_ADMIN, ROLE_USER
А вот мой secContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:security="http://www.springframework.org/schema/security"
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.0.xsd">
<security:global-method-security pre-post-annotations="enabled">
</security:global-method-security>
<security:http use-expressions="true" access-denied-page="/accessDenied">
<security:form-login
login-page="/login"
login-processing-url="/loginProcess"
default-target-url="/intro"
authentication-failure-url="/login?login_error=1"
/>
<security:logout
logout-url="/logout"
logout-success-url="/logoutSuccess"/>
<security:intercept-url pattern="/**" access="permitAll"/>
<security:intercept-url pattern="/login" access="permitAll"/>
<security:intercept-url pattern="/styles/**" access="permitAll"/>
<security:intercept-url pattern="/scripts/**" access="permitAll"/>
<security:remember-me key="89dqj219dn910lsAc12" user-service-ref="jpaUserDetailsService"
token-validity-seconds="864000"/>
</security:http>
<security:authentication-manager alias="authenticationManager">
<security:authentication-provider user-service-ref="jpaUserDetailsService">
<security:password-encoder hash="sha">
</security:password-encoder>
</security:authentication-provider>
</security:authentication-manager>
<bean id="rememberMeFilter" class=
"org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter">
<property name="rememberMeServices" ref="rememberMeServices"/>
<property name="authenticationManager" ref="authenticationManager"/>
</bean>
<bean id="rememberMeServices" class=
"org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices">
<property name="userDetailsService" ref="jpaUserDetailsService"/>
<property name="key" value="89dqj219dn910lsAc12"/>
</bean>
<bean id="rememberMeAuthenticationProvider" class=
"org.springframework.security.authentication.RememberMeAuthenticationProvider">
<property name="key" value="89dqj219dn910lsAc12"/>
</bean>
</beans>
и, наконец, некоторые трассировка
03:45:14.598 [[email protected]] DEBUG o.s.w.b.a.s.HandlerMethodInvoker - Invoking request handler method: public java.lang.String de.myapp.controller.bstController.showbstpage(java.lang.String,javax.servlet.http.HttpServletResponse)
03:45:14.598 [[email protected]] DEBUG o.s.s.a.i.a.MethodSecurityInterceptor - Secure object: ReflectiveMethodInvocation: public java.lang.String de.myapp.controller.bstController.showbstpage(java.lang.String,javax.servlet.http.HttpServletResponse); target is of class [de.myapp.controller.bstController]; Attributes: [[authorize: 'isFullyAuthenticated() and #username == principal.username', filter: 'null', filterTarget: 'null']]
03:45:14.598 [[email protected]] DEBUG o.s.s.a.i.a.MethodSecurityInterceptor - Previously Authenticated: org.spring[email protected]9ab72a70: Principal: [email protected]: Username: myad; Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; PersonalInformation: 65537; ; Credentials: [PROTECTED]; Authenticated: true; Details: org.sprin[email protected]957e: RemoteIpAddress: 127.0.0.1; SessionId: null; Granted Authorities: ROLE_ADMIN, ROLE_USER
03:45:14.599 [[email protected]] DEBUG o.s.c.c.s.GenericConversionService - Converting value false of [TypeDescriptor java.lang.Boolean] to [TypeDescriptor java.lang.Boolean]
03:45:14.599 [[email protected]] TRACE o.s.c.c.s.GenericConversionService - Matched cached converter NO_OP
03:45:14.599 [[email protected]] DEBUG o.s.c.c.s.GenericConversionService - Converted to false
03:45:14.599 [[email protected]] DEBUG o.s.s.access.vote.AffirmativeBased - Voter: org.springframewor[email protected]a866a9, returned: -1
03:45:14.599 [[email protected]] DEBUG o.s.s.access.vote.AffirmativeBased - Voter: [email protected], returned: 0
03:45:14.599 [[email protected]] DEBUG o.s.s.access.vote.AffirmativeBased - Voter: [email protected]d6f, returned: 0
Я действительно не знаю, где продолжать отладки. Что я пропустил? Должен ли я создать свою собственную реализацию mem-me?
Я действительно оценить пример приложения, которое демонстрирует рабочую реализацию по умолчанию пружин Запомни меня ...
-------- EDIT ---------- -
Я только что скомпилировал и запустил приложение-ссылку для напоминания, используя springsecurity: приложение для учетной записи spring-security\samples\tutorial
и приложение для контактов. На самом деле, у меня есть точно такая же проблема?!?. Я пробовал firefox, opera и т. Д. ... Я разбит ...