Pessoal estou usando Spring Security + VRaptor,não estou tendo sucesso em mostrar em uma páginas JSP, o usuário Logado !
Alguém poderia da uma ajuda ?
jr.
Pessoal estou usando Spring Security + VRaptor,não estou tendo sucesso em mostrar em uma páginas JSP, o usuário Logado !
Alguém poderia da uma ajuda ?
jr.
como vc tá tentando mostrar? qual é o component/bean que vc está usando pra guardar os dados do usuário?
Lucas Cavalcanti Boa Tarde !
Vai fazer o que no Carnaval ?
Primeiro obrigado, por sempre ajudar, prometo que seu nome vai estar no sobre "consultor" do SIGI, :-)
Na verdade, não fiz nada ainda, em JSF eu faço assim :
# Authentication authentication = (Authentication) SecurityContextHolder.getContext().getAuthentication();
if(authentication != null){
Object obj = authentication.getPrincipal();
if (obj instanceof Usuario){
return (Usuario) obj;
}
}
No Vraptor não tenho ideia como vou fazer isso !
Abraço.
jr.
é a mesma coisa, mas vc pode colocar isso num interceptor e fazer:
result.include("usuario", usuario)
Como que tá o sua classe @Component @SessionScoped para manusear os usuários logados?
Quando se usa o Spring-Security, o user e senha são mandados pra este framework, cujo mapeamento está na web.xml, então é só chamar na JSP:
<div id="topoadm">
<!-- Inicio da div logout -->
<div id="logout">
<sec:authorize ifNotGranted="ROLE_ANONYMOUS">
Olá <%= request.getUserPrincipal().getName() %>
<a href="<c:url value="/j_spring_security_logout"/>">Logout</a>
</sec:authorize>
</div>
<!-- Fim da div logout -->
</div>
Nesse código eu dividi uma div pra parte do usuário estar logado e se não estiver, a outra div é mostrada. É necessário fazer o import na própria JSP:
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
Abraço!
Por um motivo que desconheço, meus posts não aparecem após o envio, o problema ocorre no FF 3.6.15 e Opera 11.01 , estou verificando se o problema é aqui ou no fórum do GUJ. Além disto, ao acessar a página principal www.guj.com.br é mostrada a página de usuário logado, mesmo não efetuando login,limpando cache nos dois browsers e configurado para não armazenar senhas e histórico.
post duplicado
Doravan , não fiz ainda !
SEgue:
<?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">
<form-login login-page="/" authentication-failure-url="/?error=invalido" default-target-url="/admin"/>
<intercept-url pattern="/admin/**" access="ROLE_ADMIN" />
<intercept-url pattern="/usuario/**" access="ROLE_USER" />
</http>
-->
<http auto-config='true' access-denied-page="/WEB-INF/jsp/index/negado.jsp">
<form-login login-page="/" authentication-failure-url="/?error=invalido" default-target-url="/index/inicio" />
<!--<intercept-url pattern="/index/index.jsp*" access="IS_AUTHENTICATED_ANONYMOUSLY"/>-->
<intercept-url pattern="/admin/**" access="ROLE_ADMIN" />
<intercept-url pattern="/usuario/**" access="ROLE_USER"/>
<intercept-url pattern="/acesso/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/amostraDimat/**" access="ROLE_USER"/>
<intercept-url pattern="/amostraDimee/**" access="ROLE_USER"/>
<intercept-url pattern="/amostraDitalq/**" access="ROLE_USER"/>
<intercept-url pattern="/amostraNit/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/bancos/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/cidade/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/clienteFisica/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/clienteJuridica/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/contrato/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/cores/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/divisoes/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/equipamentos/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/especialidade/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/estadoCivil/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/estadoUf/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/formaContrato/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/formaPagamento/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/funcionario/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/index/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/laboratorio/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/localColetaAmostra/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/medidas/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/naturezaMarca/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/processo/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/procuracao/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/ramoAtividade/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/requesitosServicosDimat/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/requesitosServicosDimee/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/requesitosServicosDitalq/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/servicosDimat/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/servicosDimee/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/servicosDitalq/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/solicitacao/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/tipoAmostra/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/usuario/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/util/**" access="ROLE_ADMIN"/>
<!--<intercept-url pattern="/usuario/index.jsp" access="ROLE_ADMIN" />-->
<session-management>
<concurrency-control max-sessions="1" error-if-maximum-exceeded="true"/>
</session-management>
<!--<security:intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />-->
<!--<concurrent-session-control max-sessions="1"/>-->
<logout logout-url="/logout" logout-success-url="/"/>
</http>
<!--
<authentication-manager>
<authentication-provider>
<password-encoder hash="md5" />
<jdbc-user-service data-source-ref="dataSource"
users-by-username-query="SELECT email as username,
senha as password,
'true' as enable
FROM nutec.usuario WHERE email = ?"
authorities-by-username-query="SELECT u.email as username,
r.nome as nutec.authority
FROM nutec.usuario u,
regra r WHERE u.regra_id = r.id AND email = ?"/>
</authentication-provider>
</authentication-manager>
-->
<!--selec no banco users authorities-->
<authentication-manager>
<authentication-provider>
<!--<password-encoder hash="md5" />-->
<jdbc-user-service data-source-ref="dataSource"
users-by-username-query="SELECT users.username,users.password,'true' AS enabled FROM financeiro2.users WHERE users.username=?"
authorities-by-username-query="SELECT authorities.username,authorities.autority FROM financeiro2.authorities WHERE authorities.username=?"/>
</authentication-provider>
</authentication-manager>
<!--selec no banco users authorities FIM -->
<beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
<beans:property name="url" value="jdbc:postgresql://localhost:5432/nutec" />
<beans:property name="driverClassName" value="org.postgresql.Driver" />
<beans:property name="username" value="root" />
<beans:property name="password" value="debian23" />
</beans:bean>
</beans:beans>
package br.com.catequese.security;
import br.com.caelum.vraptor.InterceptionException;
//import br.com.caelum.vraptor.Intercepts;
//import br.com.catequese.controller.*;
//import br.com.catequese.security.UsuarioWeb;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.core.InterceptorStack;
import br.com.caelum.vraptor.interceptor.Interceptor;
import br.com.caelum.vraptor.resource.ResourceMethod;
import br.com.catequese.controller.UsuarioController;
public class AutenticacaoInterceptor implements Interceptor {
private final UsuarioWeb usuario;
private final Result result;
public AutenticacaoInterceptor(UsuarioWeb usuario, Result result) {
this.usuario = usuario;
this.result = result;
}
@Override
public void intercept(InterceptorStack arg0, ResourceMethod arg1, Object arg2) throws InterceptionException {
result.redirectTo(UsuarioController.class).loginForm();
}
@Override
public boolean accepts(ResourceMethod arg0) {
return !usuario.isLogado();// && method.containsAnnotation(Restrito.class);
}
}
o usuário DAO ta asim :
package br.com.catequese.dao;
import br.com.caelum.vraptor.ioc.Component;
import br.com.catequese.to.Usuario;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
@Component
public class UsuarioDao {
private final Session session;
public UsuarioDao(Session session) {
this.session = session;
}
public void adiciona(Usuario usuario) {
Transaction tx = session.beginTransaction();
this.session.save(usuario);
tx.commit();
}
public void excluir(Usuario usuario) throws Exception{
try{
Transaction tx = session.beginTransaction();
session.delete(usuario);
tx.commit();
}catch(Exception e){
throw new Exception("Erro ao excluir Usuário. <br />O mesmo tem referência a outros dados.");
}
}
public List<Usuario> listaTudo(){
System.out.println("LISTOU");
return this.session.createCriteria(Usuario.class).addOrder(Order.asc("idusuario")).list();
}
// de id para idusuario
public Usuario carrega(Integer idusuario) {
return (Usuario) this.session.load(Usuario.class, idusuario);
}
public void atualiza(Usuario usuario) {
Transaction tx = session.beginTransaction();
this.session.update(usuario);
tx.commit();
}
public boolean existeUsuario(Usuario usuario) {
Usuario encontrado = (Usuario) session.createCriteria(Usuario.class)
.add(Restrictions.eq("login", usuario.getLogin()))
.uniqueResult();
return encontrado != null;
}
public Usuario carrega(Usuario usuario) {
return (Usuario) session.createCriteria(Usuario.class)
.add(Restrictions.eq("login", usuario.getLogin()))
.add(Restrictions.eq("senha", usuario.getSenha()))
.uniqueResult();
}
}
TCHEGUEVARA FICOU OTIMO :
[url]https://lh3.googleusercontent.com/_nTzBoYSeT2I/TXe1_tcxtqI/AAAAAAAAEXQ/FcMGuDJWTos/s1280/ok.png[/url]

OBRIGADO AO LUCAS / Guevara / DORAVAN
Abraço pessoal !
jr.