Spring Security

6 respostas
joaogbrito

Olá galera do GUJ,

Estou me batendo para fazer uma autenticação com o Spring security. Porém quando eu crio as ROLES (ROLE_ADMIN, ROLE_UER) da erro no projeto. Erro 500. O erro só acontece quando crio uma role em que o admin_user possa acessar duas roles. Alguém poderia me ajudar?

6 Respostas

DarthCego

Ola amigo

poste o xml com as configurações q vc fez do security mais os erros que aparecem no console

joaogbrito

Olá man,

Segue abaixo meu aplicationContext:

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

<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="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" access-denied-page="/negado.jsf">
    <intercept-url pattern="/admin/**" access="ROLE_ADMIN" />
    <intercept-url pattern="/gerente/**" access="ROLE_USER" />
    <intercept-url pattern="/servidor/**" access="ROLE_SERVIDOR" />
  
    <form-login login-page="/login.jsf" authentication-failure-url="/falha.jsf"/> 
    <logout invalidate-session="true" logout-success-url="/admin/default.jsf" logout-url="/logout"/>
</http>

<beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
    <beans:property name="url" value="jdbc:mysql://localhost:3306/padbd" />
    <beans:property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <beans:property name="username" value="root" />
    <beans:property name="password" value="" />
</beans:bean>
<authentication-provider>
 
<jdbc-user-service data-source-ref="dataSource"
 
users-by-username-query="SELECT username, password, 'true' as enable FROM users WHERE username=?"
 
authorities-by-username-query="SELECT username, authority FROM users WHERE username=?"
 
/>
 
</authentication-provider>
 
</authentication-manager>

</beans:beans>

HTTP Status 500 -

type Status report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

Apache Tomcat/7.0.26


Eu acho que eu não to sabendo criar as tabelas na base de dados.

A tabela é desse jeito mesmo?

CREATE TABLE IF NOT EXISTS users (
username varchar(15) NOT NULL,
password varchar(40) DEFAULT NULL,
authority varchar(15) DEFAULT NULL,
PRIMARY KEY (username)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

DarthCego

voce entao consegue acessar pagina definindo um usuario somento sendo ROLE_ADMIN ou nem isso funciona?

A tabela chega a ser criada no banco?

verifique se nao há nenhum erro no console da IDE

joaogbrito

Não funciona. Os diretorios que crio as roles fica sem permissão. Apresenta o erro 500.
eu crio as tabela atrave´s do sql. O spring. mais não redireciona para os diretorios corretos.

LPJava

vê se isso te ajuda:

http://www.edsongoncalves.com.br/2010/04/25/seguranca-passo-a-passo-com-spring-security-3-0/

http://blog.camilolopes.com.br/solucionado-role_-spring-security/

joaogbrito

Olá mans,

Resolveu ±.O spring security quando a gente cria os ROLES, ele vai para o diretorio que o tem permissão ou tem que criar uma página para redirecionar?

Exemplo: Se o usuário te permissão para acessar a ROLE_USER e existe o diretório [b]Usuário /b, tem que colocar a página para redirecionar ou já abre uma página padrão do diretório Usuario :slight_smile:

Criado 5 de março de 2012
Ultima resposta 6 de mar. de 2012
Respostas 6
Participantes 3