Ajuda com applicationcontext.xml do spring

2 respostas
D

bom dia, comecei a mecher com o spring hoje, procurei alguns exemplos na net pra fazer uma tela de login como inicio, fiz o seguinte

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.xsd
                            http://www.springframework.org/schema/security
                            http://www.springframework.org/schema/security/spring-security-3.0.xsd">

    <http auto-config="true" use-expressions="true">
        <intercept-url pattern="/index.jsf" access="hasRole('ROLE_USER')"/>
        <form-login login-page="/login.jsf" authentication-failure-url="/login.jsf?erro=true"/>
    </http>
    
    <authentication-manager>
        <authentication-provider>
            <jdbc-user-service data-source-ref="dataSource" 
               users-by-username-query="SELECT username, password, enable, autorizacao FROM usuario WHERE username=?"
               authorities-by-username-query="SELECT username as username, autorizacao as authority FROM usuario WHERE username=?"
            />
        </authentication-provider>
    </authentication-manager>

    <b:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
        <b:property name="url" value="jdbc:firebirdsql:127.0.0.1/3050:c:\database\banco_spring.fdb" />
        <b:property name="driverClassName" value="org.firebirdsql.jdbc.FBDriver" />
        <b:property name="username" value="SYSDBA" />
        <b:property name="password" value="masterkey" />
    </b:bean>

</b:beans>
classe do usuario.java
package Model;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;

/**
 *
 * @author jose.macedo
 */
@Entity
public class Usuario implements Serializable {

    @Id
    private String username;
    private String password;
    @Column(name = "enable", columnDefinition = "BOOLEAN")
    private boolean enable;
    private String autorizacao;

    public Usuario() {
    }

    public Usuario(String username, String password, boolean enable, String autorizacao) {
        this.username = username;
        this.password = password;
        this.enable = enable;
        this.autorizacao = autorizacao;
    }

    public String getAutorizacao() {
        return autorizacao;
    }

    public void setAutorizacao(String autorizacao) {
        this.autorizacao = autorizacao;
    }

    public boolean isEnable() {
        return enable;
    }

    public void setEnable(boolean enable) {
        this.enable = enable;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

}
e a tela de login
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
		xmlns:p="http://primefaces.org/ui">
    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <title>Bem vindo ao Gerenciador de Livros!</title>
        <link type="text/css" rel="stylesheet" href="dot-luv/skin.css"/>
    </h:head>
    <h:body> <!--style="background-image:url('http://pwes.rocklin.k12.ca.us/j0439526.jpg');background-position: 50% 0%;background-repeat: no-repeat" -->s
        <p:dialog header="Login" visible="true" closable="false" draggable="false" resizable="false" width="420">
            <h:outputText value="Usuário ou senha incorretos!" rendered="#{param.erro}" style="color: darkred"/>
            <form action="j_spring_security_check" method="post">
                <h:panelGrid columns="2" cellpadding="5">
                    <h:outputLabel for="j_username" value="Username: *" /> 
                    <h:inputText id="j_username" required="true"/>
                    <h:outputLabel for="j_password" value="Password: * " />
                    <h:inputSecret id="j_password" required="true"/>
                    <h:commandButton value="Login"/>
                </h:panelGrid>
            </form>
        </p:dialog>
    </h:body>
</html>
e as configuraçoes no web.xml
<!-- Início das configurações para o Spring Security 3 -->
    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <!-- Fim das configuração para utilizar o Spring Security 3 -->

e no banco criei a tabela com tudo igual de cadastrei o seguinte usuario

username:D password:D enable:0 autorizacao:ROLA_USER

so que quando vou logar so aparece que o usuario ou senha estao incorretos, alguem poderia me ajudar ainda sou iniciante e nao consegui identificar o problema?

2 Respostas

jaboot

Oi DaitonJr,

Você já utilizou o Spring Security? Ele precisa de uma série de configurações para poder funcionar. Eu nem sabia que podia colocar SQL direto no ApplicationContext.xml. E não gostei muito não!

Eu sugiro você dar uma olhada nesse site aqui: http://krams915.blogspot.com.br/p/tutorials.html
Tem bastante coisa.

Boa sorte

D

sinceramente hj foi a primeira ve que to mechendo com ele, mas vou dar uma olhada, eu precisava de um tutorial que me ajudasse criar uma tela de login pra eu começa a entender como funciona…

Criado 22 de março de 2012
Ultima resposta 22 de mar. de 2012
Respostas 2
Participantes 2