Spring Security

Boa noite galera!

estou fazendo um sistema usando jsf e primefaces e a parte do login estou usando o Spring Security 3.1 e acesso ao banco de dados ( estou usando o PostgreSQL)

o problema é que está dando o seguinte erro quando tento fazer o login buscando os dados do BD:

jul 07, 2016 10:33:51 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFORMAÇÕES: Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
jul 07, 2016 10:33:51 PM org.springframework.jdbc.support.SQLErrorCodesFactory <init>
INFORMAÇÕES: SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]

Na verdade o tomcat nem da erro…aparece esse log e diz que meu usuario e senha estão incorretos!!!

Ja tentei de tudo…pesquisei em tudo no google e não consegui resolver!!

segue meu ApplicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>

<b:beans xmlns="http://www.springframework.org/schema/security"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:b="http://www.springframework.org/schema/beans"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
                            http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
                            http://www.springframework.org/schema/security
                            http://www.springframework.org/schema/security/spring-security-3.1.xsd">

<http auto-config="true" use-expressions="true">
    <intercept-url pattern="/Home.xhtml" access="hasRole('Usuario')"/>
    <intercept-url pattern="/ConsultarClientes.xhtml" access="hasRole('Usuario')"/>
    <intercept-url pattern="/ConsultarAgendamentos.xhtml" access="hasRole('Usuario')"/>
    <intercept-url pattern="/ConsultarUsuarios.xhtml" access="hasRole('Administrador')"/>
    <intercept-url pattern="/Relatorios.xhtml" access="hasRole('Administrador')"/>
    <intercept-url pattern="/Servicos.xhtml" access="hasRole('Administrador')"/>
    <form-login login-page="/Index.xhtml" authentication-failure-url="/Index.xhtml?erro=true"
    			default-target-url="/Home.xhtml"/>
     <logout logout-success-url="/Index.xhtml" logout-url="/security_logout" invalidate-session="true"/>			
</http>
 
<authentication-manager>
    <authentication-provider>
        <jdbc-user-service data-source-ref="dataSource"
           users-by-username-query="select u.usuario_login as username, u.usuario_senha as password, u.usuario_ativo as enable from usuario u where u.usuario_login='?'"
           authorities-by-username-query="select u.usuario_login as username, u.papel as authority from usuario u where u.usuario_login='?'"
           />
    </authentication-provider>
</authentication-manager>

<b:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
    <b:property name="url" value="jdbc:postgresql://localhost:5432/AgendamentosBD" />
    <b:property name="driverClassName" value="org.postgresql.Driver" />
    <b:property name="username" value="postgres" />
    <b:property name="password" value="lucas" />
</b:bean>

</b:beans>

Será que alguem ja passou pelo mesmo problema e conseguiu resolver?

Coloque essa dependência no seu spring-config.xml :

</dependency>
    <dependency>
        <groupId>org.postgresql</groupId>
             <artifactId>postgresql</artifactId>
             <version>9.4-1200-jdbc4</version>
</dependency> 

Se está utilizando o maven coloque-a lá também !

Esperto ter ajudado :smiley:

Exemplo bem completo de projeto AQUI

Valter…essa dependencia ja existe no meu pom.xml pois é o driver do postgreSQL…porem no meu projeto não existe este “spring-config.xml” … sera que é por isso que nao estou conseguindo logar atraves do BD?

O que seria este “spring-config.xml” ? Este arquivo xml é responsavel pelo o que no projeto?

Alex…olhei este exemplo apenas na parte do spring security e esta bem proximo do que eu estou fazendo…

Mas ainda assim não consegui fazer funcionar a parte do usuario atraves do BD !!!

Alguém possui alguma outra sugestão?

Consegui resolver galera!!

a minha query estava errada…ao final dela não é necessário ter o ’ ’ no ponto de interrogação!!!

Fica a dica!!! :wink: