I am trying to use remember me function when users makes login on my application. For the authentication provider, i pass my dataSource which is the database HSQLDB.
this is my datanbase configuration:
in my base.xml i have PersistentTokenBasedRememberMeServicesImpl, PersistentTokenRepositoryImpl because when user select the remember me option, i need to save data in the persistent_logins table.Code:<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="org.hsqldb.jdbcDriver" /> <property name="url" value="jdbc:hsqldb:hsql://localhost/auth" /> <property name="username" value="sa" /> <property name="password" value="" /> <property name="defaultAutoCommit" value="false" /> </bean>
In my security config, i have:Code:<bean id="jdbcTokenRepository" class="pt.celfocus.security.PersistentTokenRepositoryImpl"> <property name="dataSource" ref="dataSource" /> <property name="createTableOnStartup" value="true" /> </bean> <bean class="pt.celfocus.service.MyUserDetailsService" id="myUserDetailsService"> <property name="dataSource" ref="dataSource" /> </bean> <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="pt.celfocus.security.PersistentTokenBasedRememberMeServicesImpl"> <property name="userDetailsService" ref="myUserDetailsService" /> <property name="tokenValiditySeconds" value="3600" /> <property name="tokenRepository" ref="jdbcTokenRepository" /> <property name="key" value="jbcpPetStore" /> <property name="alwaysRemember" value="false" /> </bean> <bean id="rememberMeAuthenticationProvider" class="org.springframework.security.authentication.RememberMeAuthenticationProvider"> <property name="key" value="jbcpPetStore" /> </bean>
I can make the process login with the reference of database. If i pass the rememberMeAuthenticationProvider id to authentication-provider, i cant make login against my database.Code:<http auto-config="true" use-expressions="true"> <anonymous /> <intercept-url pattern="/login.do" access="permitAll" /> <intercept-url pattern="/account/*.do" access="hasRole('ROLE_USER') and fullyAuthenticated" /> <intercept-url pattern="/**" access="hasRole('ROLE_USER')" /> <form-login login-page="/login.do" /> <logout invalidate-session="true" logout-url="/j_spring_security_logout" logout-success-url="/" /> <remember-me key="jbcpPetStore" services-ref="rememberMeServices" /> </http> <authentication-manager alias="authenticationManager"> <authentication-provider> <jdbc-user-service data-source-ref="dataSource" /> </authentication-provider> </authentication-manager>
I need to catch the methods of PersistentTokenRepositoryImpl to save data. When i run my code, the remember me option is not working because the table isn't create and any data is inserted. Anyone can help me about the parameters for authentication-provider and remember-me?
thanks


Reply With Quote
