Spring Security 3.1 + JSF 2 não está logando

0 respostas
V

Olá glr!
Não consigo logar usando spring security nem com reza brava....
Se alguem puder me ajuda.
Não consigo enxergar erro.

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.1.xsd">
 
    <http auto-config="true" use-expressions="true">
    	<form-login login-page="/login.xhtml"
    	authentication-failure-url="/login.xhtml?erro=true"/>
        <intercept-url pattern="/index.xhtml" access="ROLE_ADMIN" />
        
    </http>
     
    <authentication-manager>
        <authentication-provider>
            <jdbc-user-service data-source-ref="dataSource"
               users-by-username-query="SELECT username, password, enable FROM pafemc.user WHERE username=?"
               authorities-by-username-query="SELECT username AS username, name AS authority FROM pafemc.user_auth WHERE username=?"
            />
        </authentication-provider>
    </authentication-manager>
 
    <b:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
        <b:property name="url" value="jdbc:postgresql://localhost:5432/PafeMC" />
        <b:property name="driverClassName" value="org.postgresql.Driver" />
        <b:property name="username" value="postgres" />
        <b:property name="password" value="postgres" />
    </b:bean>
 
</b:beans>
login.xhtml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:f="http://java.sun.com/jsf/core">
	<h:head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
		<title>Login</title>
	</h:head>
	<h:body>
		<div id="content">
			<div style="width: 240px; margin-left: auto; margin-right: auto; margin-top: 150px">
				<h1>Login</h1>
		
				<form action="j_spring_security_check" method="post">
		
					<h:panelGrid columns="2" style="padding: 10px" id="panel">
					
						<h:outputLabel for="j_username" value="Usuário:"/>
						<h:inputText id="j_username" value="" size="20"/>
						
						<h:outputLabel for="j_password" value="Senha:"/>
						<h:inputSecret id="j_password" value="" size="20"/>
						
						
					</h:panelGrid>
					<h:commandButton value="Logar"/>
				</form>
			</div>
		</div>
	</h:body>
</html>
Entidade Authority.java
package br.gov.ba.sefaz.pafemc.entity;

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

@Entity
@Table(name="authority", schema="pafemc")
public class Authority {

	private String name;

	@Id
	@Column(name="name")
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	
}
Entidade User.java
package br.gov.ba.sefaz.pafemc.entity;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;

@Entity
@Table(name="user", schema="pafemc")
public class User {

	private String username;
	private String password;
	private boolean enable;
	private List<Authority> authorities;
	
	@Id
	@Column(name="username")
	public String getUsername() {
		return username;
	}
	
	public void setUsername(String username) {
		this.username = username;
	}
	
	@Column(name="password")
	public String getPassword() {
		return password;
	}
	
	public void setPassword(String password) {
		this.password = password;
	}
	
	@Column(name="enable")
	public boolean isEnable() {
		return enable;
	}
	
	public void setEnable(boolean enable) {
		this.enable = enable;
	}
	
	@ManyToMany
	@JoinTable(name="user_auth", joinColumns=@JoinColumn(name="username"), inverseJoinColumns = @JoinColumn(name="name"))
	public List<Authority> getAuthorities() {
		return authorities;
	}
	
	public void setAuthorities(List<Authority> authorities) {
		this.authorities = authorities;
	}
	
	
}
index.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.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">

	<ui:composition template="">
	<h1>teste</h1>
	</ui:composition>
</html>

OBS1: O comando sql ja foi testado direto no postgresql, não tem problema algum com ele.
OBS2: Não da erro na console.

Vlw!

Criado 18 de maio de 2013
Respostas 0
Participantes 1