fala ai pessoal, sou iniciante em java e estou desenvolvendo uma aplicacao web que precisa ser acessada por dois tipos de usuarios.
entao comecei a utilizar o framework spring security e consegui fazer com q aplicação funcionasse perfeitamente como eu queria, porem um pequeno problema apareceu. eu quero que esses dois tipos de usuarios se loguem em paginas diferentes seriam duas paginas de login distintas uma para cada tipo de usuario. mas não estou conseguindo fazer essa configuração no spring security, lembrando que com uma pagina de login apenas tudo funciona perfeitamente.
ja tentei varias configurações, segue abaixo a ultima tentativa:
aplicationContext do spring security:
<?xml version="1.0" encoding="UTF-8"?><!-- data source -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost/actionvox" />
<property name="username" value="root" />
<property name="password" value="502010" />
</bean>
<sec:http auto-config="true" access-denied-page="/negado.jsp">
<sec:form-login login-page="/identificacao-audio.jsp" authentication-failure-url="/erro-login-audio.jsp" />
<sec:intercept-url pattern="/audiodescricao/**" access="ROLE_AUDIO" />
<sec:intercept-url pattern="/sem-audio/**" access="ROLE_SEMAUDIO" />
<sec:intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
</sec:http>
<sec:http auto-config="true" access-denied-page="/negado.jsp">
<sec:form-login login-page="/identificacao-semaudio.jsp" default-target-url="/sem-audio/index.jsp" authentication-failure- url="/erro-login-semaudio.jsp" />
<sec:intercept-url pattern="/audiodescricao/**" access="ROLE_AUDIO" />
<sec:intercept-url pattern="/sem-audio/**" access="ROLE_SEMAUDIO" />
<sec:intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
</sec:http>
<sec:authentication-manager>
<sec:authentication-provider>
<sec:jdbc-user-service data-source-ref="dataSource"
users-by-username-query="SELECT cpf, localizador, 'true' as enable FROM passageiro WHERE cpf=?"
authorities-by-username-query="SELECT cpf, permissao FROM passageiro WHERE cpf=?" />
</sec:authentication-provider>
</sec:authentication-manager>
Mas essa configuração me lança uma stacktrace no servidor:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘org.springframework.security.filterChainProxy’: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: A universal match pattern (’/**’) is defined before other patterns in the filter chain, causing them to be ignored. Please check the ordering in your <a>security:http</a> namespace or FilterChainProxy bean configuration
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1422)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:518)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
AGUARDO A AJUDA DOS AMIGOS !!!