pessoal, bom dia!
é o seguinte, eu to tentando usar o acegi pela primeira vez,
bem eu acho q eu entendi o mecanismo de autenticação dele, mas na hora de implementar eu to esbarrando eu um problema.
aqui vai as minhas configurações:
web.xml:
<filter>
<filter-name>Acegi Authentication Processing Filter</filter-name>
<filter-class>org.acegisecurity.util.FilterToBeanProxy</filter-class>
<init-param>
<param-name>targetClass</param-name>
<param-value>org.acegisecurity.ui.webapp.AuthenticationProcessingFilter</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Acegi Authentication Processing Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
applicationContext.xml:
<bean id="filterChainProxy" class="org.acegisecurity.util.FilterChainProxy">
<property name="filterInvocationDefinitionSource">
<value>
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/**=httpSessionContextIntegrationFilter,logoutFilter,authenticationProcessingFilter,basicProcessingFilter,securityContextHolderAwareRequestFilter,rememberMeProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor,switchUserProcessingFilter
</value>
</property>
</bean>
<bean id="exceptionTranslationFilter" class="org.acegisecurity.ui.ExceptionTranslationFilter">
<property name="authenticationEntryPoint"><ref local="authenticationProcessingFilterEntryPoint"/></property>
<property name="accessDeniedHandler">
<bean class="org.acegisecurity.ui.AccessDeniedHandlerImpl">
<property name="errorPage" value="/accessDenied.jsp"/>
</bean>
</property>
</bean>
<bean id="authenticationProcessingFilterEntryPoint" class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint">
<property name="loginFormUrl"><value>/view/jsp/login.jsf</value></property>
<property name="forceHttps"><value>false</value></property>
</bean>
<bean id="authenticationProcessingFilter" class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilter">
<property name="authenticationManager"><ref bean="authenticationManager"/></property>
<property name="authenticationFailureUrl"><value>/</value></property>
<property name="defaultTargetUrl"><value>/view/jsp/aluno.jsf</value></property>
<property name="filterProcessesUrl"><value>/view/jsp/login.jsf</value></property>
</bean>
<bean id="authenticationManager" class="org.acegisecurity.providers.ProviderManager">
<property name="providers">
<list>
<ref local="daoAuthenticationProvider"/>
</list>
</property>
</bean>
<bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider">
<property name="userDetailsService" ref="userDetailsService"/>
<property name="userCache">
<bean class="org.acegisecurity.providers.dao.cache.EhCacheBasedUserCache">
<property name="cache">
<bean class="org.springframework.cache.ehcache.EhCacheFactoryBean">
<property name="cacheManager">
<bean class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"/>
</property>
<property name="cacheName" value="userCache"/>
</bean>
</property>
</bean>
</property>
</bean>
<bean id="userDetailsService" class="com.mcp.intranetAcademica.action.LoginAct"></bean>
e finalmente o método da classe em q eu implemento UserDetailsService:
public UserDetails loadUserByUsername(String arg0)
throws UsernameNotFoundException, DataAccessException {
GrantedAuthority authority = new Grupo("read");
UserDetails newContext = new User("Yo", "yo yo", true, true, true, true, new GrantedAuthority[] { authority });
return newContext;
}
Ao dar o submit na página de login, está chegando no método loadUserByUserName trankilamente.
bem, pelo que eu entendi, era só ese método retornar o UserDetails devidamente preenchido que a autenticação aconteceria, mas ela esta sempre falhando e redirecionando para a página de login.
Alguém sabe o que pode estar faltando?
obrigado.