Estou desenvolvendo uma aplicação com jsf2.0 + spring-security3.0 + hibernate
Estou cadastrando um usuário no sistema e apos esse cadastro o envio para a página do sistema.
A fim de testar, eu mudei a role do usuário de “ROLE_USER”, que teria permissão para a página que estou o enviando, para “ROLE_GER”
E o spring deixou ele entrar na página.
Quando faço o login normalmente, ele captura e não deixa passar.
ApplicationContext-spring.xml -
<?xml version="1.0" encoding="UTF-8"?>
<b:beans xmlns="http://www.springframework.org/schema/security"
xmlns:b="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">
<http>
<intercept-url pattern="/admin/**" access="ROLE_ADMINISTRADOR" />
<intercept-url pattern="/restrito/**" access="ROLE_RESTRICT" />
<intercept-url pattern="/sistema/**" access="ROLE_USER" />
<form-login login-page="/publico/login.jsf"
always-use-default-target="true" default-target-url="/sistema/welcome.jsf"
authentication-failure-url="/errorPage/error.jsf" />
<logout/>
</http>
</b:beans>
Método que estou usando para cadastrar usuario no sistema, ele coloca tudo no banco de dados normalmente.
public String cadastroSistema(){
Permission p = new Permission();
p.setAuthority("ROLE_GER"); // adiciona role_user ao ser cadastrado
p.setAluno(this.aluno);
AlunoDAO alunoDAO = new AlunoDAOImpl();
if(alunoDAO.cadastroAluno(this.aluno, p))
return "/sistema/welcome"; // se ele adicionar os dados no banco, manda para a página, o spring-security nao deveria deixar passar, pois ele nao tem a role_user.
else
return "erro";
}
Alguem sabe o que estou fazendo de errado ou como consertar???
[]s