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
[code]<?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>[/code]
login.xhtml
[code]<?xml version="1.0" encoding="UTF-8" ?>
LoginLogin
<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>
[/code]
Entidade Authority.java
[code]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;
}
}
[/code]
Entidade User.java
[code]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;
}
}
[/code]
index.xhtml
[code]
<ui:composition template="">
<h1>teste</h1>
</ui:composition>
[/code]
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!