Java.lang.IllegalArgumentException

6 respostas
A

Olá pessoal,

Estou enfrentando um problema que é o seguinte. Estou com um sistema que primeiramente ao carregar a página inicial aparece o seguinte no Tomcat7 (linha 13):
...
2:01:26.859 [http-bio-8080-exec-5] DEBUG o.s.s.w.s.SessionManagementFilter - Requested session IDB5F284E9F0321536D9A6761D65FB931D is invalid.
22:01:26.859 [http-bio-8080-exec-5] DEBUG o.s.security.web.FilterChainProxy - /restrito/principal.jsf at position 9 of 10 in additional filter chain; firing Filter: 'ExceptionTranslationFilter'
22:01:26.859 [http-bio-8080-exec-5] DEBUG o.s.security.web.FilterChainProxy - /restrito/principal.jsf at position 10 of 10 in additional filter chain; firing Filter: 'FilterSecurityInterceptor'
22:01:26.859 [http-bio-8080-exec-5] DEBUG o.s.s.w.a.i.DefaultFilterInvocationSecurityMetadataSource - Converted URL to lowercase, from: '/restrito/principal.jsf'; to: '/restrito/principal.jsf'
22:01:26.859 [http-bio-8080-exec-5] DEBUG o.s.s.w.a.i.DefaultFilterInvocationSecurityMetadataSource - Candidate is: '/restrito/principal.jsf'; pattern is /admin/**; matched=false
22:01:26.859 [http-bio-8080-exec-5] DEBUG o.s.s.w.a.i.DefaultFilterInvocationSecurityMetadataSource - Candidate is: '/restrito/principal.jsf'; pattern is /restrito/**; matched=true
22:01:26.859 [http-bio-8080-exec-5] DEBUG o.s.s.w.a.i.FilterSecurityInterceptor - Secure object: FilterInvocation: URL: /restrito/principal.jsf; Attributes: [ROLE_USUARIO]
22:01:26.859 [http-bio-8080-exec-5] DEBUG o.s.s.w.a.i.FilterSecurityInterceptor - Previously Authenticated: org.springframework.security.authentication.AnonymousAuthenticationToken@9055c2bc: Principal: anonymousUser; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@b364: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: null; Granted Authorities: ROLE_ANONYMOUS
22:01:26.859 [http-bio-8080-exec-5] DEBUG o.s.s.access.vote.AffirmativeBased - Voter: org.springframework.security.access.vote.RoleVoter@18b6716, returned: -1
22:01:26.859 [http-bio-8080-exec-5] DEBUG o.s.s.access.vote.AffirmativeBased - Voter: org.springframework.security.access.vote.AuthenticatedVoter@11d0c83, returned: 0
22:01:26.859 [http-bio-8080-exec-5] DEBUG o.s.s.w.a.ExceptionTranslationFilter - Access is denied (user is anonymous); redirecting to authentication entry point
org.springframework.security.access.AccessDeniedException: Access is denied
	at org.springframework.security.access.vote.AffirmativeBased.decide(AffirmativeBased.java:71) ~[spring-security-core-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.access.intercept.AbstractSecurityInterceptor.beforeInvocation(AbstractSecurityInterceptor.java:204) ~[spring-security-core-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:106) ~[spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) ~[spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) ~[spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100) [spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78) [spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:112) [spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) [spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35) [spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187) [spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) [spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) [spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381) [spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:168) [spring-security-web-3.0.8.RELEASE.jar:3.0.8.RELEASE]
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) [spring-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) [spring-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.27]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.27]
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) [catalina.jar:7.0.27]
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) [catalina.jar:7.0.27]
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) [catalina.jar:7.0.27]
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) [catalina.jar:7.0.27]
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) [catalina.jar:7.0.27]
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) [catalina.jar:7.0.27]
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) [catalina.jar:7.0.27]
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) [catalina.jar:7.0.27]
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999) [tomcat-coyote.jar:7.0.27]
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565) [tomcat-coyote.jar:7.0.27]
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) [tomcat-coyote.jar:7.0.27]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.7.0_02]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.7.0_02]
	at java.lang.Thread.run(Unknown Source) [na:1.7.0_02]
...
A seguir o erro que aparece quando tento me logar no sistema:
...
Jul 02, 2013 10:15:00 PM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
Grave: Error Rendering View[/restrito/principal.xhtml]
java.lang.IllegalArgumentException
	at com.sun.faces.renderkit.SelectItemsIterator.initializeItems(SelectItemsIterator.java:216)
	at com.sun.faces.renderkit.SelectItemsIterator.hasNext(SelectItemsIterator.java:135)
	at com.sun.faces.renderkit.html_basic.MenuRenderer.renderOptions(MenuRenderer.java:760)
	at com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:842)
	at com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:296)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1620)
	at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1613)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:380)
	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:126)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:127)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at financeiro.web.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:25)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:369)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
	at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:119)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:168)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

22:15:00.024 [http-bio-8080-exec-6] DEBUG org.hibernate.SQL - select usuario0_.codigo as codigo0_, usuario0_.ativo as ativo0_, usuario0_.celular as celular0_, usuario0_.email as email0_, usuario0_.idioma as idioma0_, usuario0_.login as login0_, usuario0_.nascimento as nascimento0_, usuario0_.nome as nome0_, usuario0_.senha as senha0_ from Usuario usuario0_ where usuario0_.login=?
22:15:00.033 [http-bio-8080-exec-6] DEBUG org.hibernate.SQL - select this_.cod_conta as cod1_1_1_, this_.dat_cadastro as dat2_1_1_, this_.desc_conta as desc3_1_1_, this_.favorita as favorita1_1_, this_.saldo_inicial as saldo5_1_1_, this_.cod_usuario as cod6_1_1_, usuario2_.codigo as codigo0_0_, usuario2_.ativo as ativo0_0_, usuario2_.celular as celular0_0_, usuario2_.email as email0_0_, usuario2_.idioma as idioma0_0_, usuario2_.login as login0_0_, usuario2_.nascimento as nascimento0_0_, usuario2_.nome as nome0_0_, usuario2_.senha as senha0_0_ from conta_bancaria this_ inner join Usuario usuario2_ on this_.cod_usuario=usuario2_.codigo where this_.cod_usuario is null and this_.favorita=?
22:15:00.035 [http-bio-8080-exec-6] DEBUG org.hibernate.SQL - select this_.cod_conta as cod1_1_1_, this_.dat_cadastro as dat2_1_1_, this_.desc_conta as desc3_1_1_, this_.favorita as favorita1_1_, this_.saldo_inicial as saldo5_1_1_, this_.cod_usuario as cod6_1_1_, usuario2_.codigo as codigo0_0_, usuario2_.ativo as ativo0_0_, usuario2_.celular as celular0_0_, usuario2_.email as email0_0_, usuario2_.idioma as idioma0_0_, usuario2_.login as login0_0_, usuario2_.nascimento as nascimento0_0_, usuario2_.nome as nome0_0_, usuario2_.senha as senha0_0_ from conta_bancaria this_ inner join Usuario usuario2_ on this_.cod_usuario=usuario2_.codigo where this_.cod_usuario is null
22:15:00.038 [http-bio-8080-exec-6] DEBUG org.hibernate.SQL - select usuario0_.codigo as codigo0_, usuario0_.ativo as ativo0_, usuario0_.celular as celular0_, usuario0_.email as email0_, usuario0_.idioma as idioma0_, usuario0_.login as login0_, usuario0_.nascimento as nascimento0_, usuario0_.nome as nome0_, usuario0_.senha as senha0_ from Usuario usuario0_ where usuario0_.login=?
22:15:00.040 [http-bio-8080-exec-6] DEBUG org.hibernate.SQL - select this_.cod_conta as cod1_1_1_, this_.dat_cadastro as dat2_1_1_, this_.desc_conta as desc3_1_1_, this_.favorita as favorita1_1_, this_.saldo_inicial as saldo5_1_1_, this_.cod_usuario as cod6_1_1_, usuario2_.codigo as codigo0_0_, usuario2_.ativo as ativo0_0_, usuario2_.celular as celular0_0_, usuario2_.email as email0_0_, usuario2_.idioma as idioma0_0_, usuario2_.login as login0_0_, usuario2_.nascimento as nascimento0_0_, usuario2_.nome as nome0_0_, usuario2_.senha as senha0_0_ from conta_bancaria this_ inner join Usuario usuario2_ on this_.cod_usuario=usuario2_.codigo where this_.cod_usuario is null and this_.favorita=?
22:15:00.070 [http-bio-8080-exec-6] DEBUG org.hibernate.SQL - select this_.cod_conta as cod1_1_1_, this_.dat_cadastro as dat2_1_1_, this_.desc_conta as desc3_1_1_, this_.favorita as favorita1_1_, this_.saldo_inicial as saldo5_1_1_, this_.cod_usuario as cod6_1_1_, usuario2_.codigo as codigo0_0_, usuario2_.ativo as ativo0_0_, usuario2_.celular as celular0_0_, usuario2_.email as email0_0_, usuario2_.idioma as idioma0_0_, usuario2_.login as login0_0_, usuario2_.nascimento as nascimento0_0_, usuario2_.nome as nome0_0_, usuario2_.senha as senha0_0_ from conta_bancaria this_ inner join Usuario usuario2_ on this_.cod_usuario=usuario2_.codigo where this_.cod_usuario is null
22:15:00.074 [http-bio-8080-exec-6] DEBUG o.h.e.t.spi.AbstractTransactionImpl - committing
22:15:00.074 [http-bio-8080-exec-6] DEBUG o.h.e.t.i.jdbc.JdbcTransaction - committed JDBC Connection
22:15:00.074 [http-bio-8080-exec-6] DEBUG o.h.e.t.i.jdbc.JdbcTransaction - re-enabling autocommit
22:15:00.074 [http-bio-8080-exec-6] DEBUG o.h.e.j.i.LogicalConnectionImpl - Releasing JDBC connection
22:15:00.074 [http-bio-8080-exec-6] DEBUG o.h.e.j.i.LogicalConnectionImpl - Released JDBC connection
22:15:00.075 [http-bio-8080-exec-6] DEBUG o.h.e.j.i.p.ConnectionProxyHandler - HHH000163: Logical connection releasing its physical connection
22:15:00.075 [http-bio-8080-exec-6] DEBUG o.s.s.w.a.ExceptionTranslationFilter - Chain processed normally
22:15:00.075 [http-bio-8080-exec-6] DEBUG o.s.s.w.c.SecurityContextPersistenceFilter - SecurityContextHolder now cleared, as request processing completed
...

Após o login o sistema deveria mostrar usuario logado e depois carregar a área destinada ao usuario seguindo as regras de acesso.
Pessoal preciso de ajuda de vocês para resolver este problema. Do que precisarem posso postar mais detalhes.

6 Respostas

alanrodrigues

Da uma olhada em algum selectonemenu e as permissoes do usuário…
parece que ta dando problema na render do menu…

A
Amigo tá aqui onde uso o selectOnMenu:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<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"
	xmlns:sec="http://www.springframework.org/security/facelets/tags">
<ui:composition template="/templates/principal.xhtml">
	<ui:define name="corpo">
		
	Usuário logado #{request.remoteUser}
	<br />
	Nome do Usuário Logado #{contextoBean.usuarioLogado.nome}
	<h:form>
			<h:commandButton value="Conta" action="conta" />

			  <h:selectOneMenu value="#{contextoBean.contaAtiva.conta}"
				valueChangeListener="#{contextoBean.setContaAtiva}"
				rendered="#{!empty contextoBean}" onchange="submit()">
				<f:selectItems value="#contaBean.lista" var="conta"
					itemValue="#{conta.conta}" itemLabel="#{conta.descricao}" />
			</h:selectOneMenu>

			<sec:ifAnyGranted roles="ROLE_ADMINISTRADOR">
				<h:commandLink action="/admin/principal" title="Administrativo">
					<h:graphicImage library="imagens" name="administrativo16.png" />
				</h:commandLink>
			</sec:ifAnyGranted>

			<a onclick="document.location='#{request.contextPath}/j_spring_security_logout'" title="Sair">
				<h:graphicImage library="imagens" name="logout16.png" />
			</a> 
		</h:form>
	</ui:define>
</ui:composition>
</html>
E a classe que usa as permissões:
package financeiroweb;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.event.ValueChangeEvent;

import financeiro.conta.Conta;
import financeiro.conta.ContaRN;
import financeiro.usuario.Usuario;
import financeiro.usuario.UsuarioRN;

@ManagedBean(name = "contextoBean")
@SessionScoped
public class ContextoBean {
	private Usuario usuarioLogado = null;
	private Conta contaAtiva = null;
	
	public Usuario getUsuarioLogado(){
		FacesContext context = FacesContext.getCurrentInstance();
		ExternalContext external = context.getExternalContext();
		String login = external.getRemoteUser();
		if (this.usuarioLogado == null || !login.equals(this.usuarioLogado.getLogin())){
			if(login != null){
				UsuarioRN usuarioRN = new UsuarioRN();
				this.usuarioLogado = usuarioRN.buscarPorLogin(login);
				this.contaAtiva = null;
			}
		}
		return usuarioLogado;
	}
	
	public void setUsuarioLogado(Usuario usuario){
		this.usuarioLogado = usuario;
	}
	
	public Conta getContaAtiva(){
		if(this.contaAtiva == null){
			Usuario usuario = this.getUsuarioLogado();
			ContaRN contaRN = new ContaRN();
			this.contaAtiva = contaRN.buscarFavorita(usuario);
			if(this.contaAtiva == null){
				List<Conta> contas = contaRN.listar(usuario);
				if(contas != null){
					for(Conta conta : contas){
						this.contaAtiva = conta;
						break;
					}
				}
			}
		}
		return this.contaAtiva;
	}
	
	public void setContaAtiva(ValueChangeEvent event){
		Integer conta = (Integer) event.getNewValue();
		ContaRN contaRN = new ContaRN();
		this.contaAtiva = contaRN.carregar(conta);
	}
}
Tem essa classe com consulta no banco:
<?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.0.xsd">
	<http>
		<intercept-url pattern="/admin/**" access="ROLE_ADMINISTRADOR" />
		<intercept-url pattern="/restrito/**" access="ROLE_USUARIO" />
		<form-login login-page="/publico/login.jsf"
			always-use-default-target="true" 
			default-target-url="/restrito/principal.jsf"
			authentication-failure-url="/publico/login.jsf?login_error=1" />
		<logout />
		<remember-me />
	</http>
	<authentication-manager>
		<authentication-provider>
			<jdbc-user-service data-source-ref="financeiroDataSource"
				authorities-by-username-query="SELECT u.email, p.permissao
												FROM usuario u, usuario_permissao p 
												WHERE u.codigo = p.usuario 
												AND u.email = ?"
				users-by-username-query="SELECT email, senha, ativo 
										FROM usuario
										WHERE email = ?" />
		</authentication-provider>
	</authentication-manager>
</b:beans>
M

valueChangeListener="#{contextoBean.setContaAtiva}" isso aqui esta certo para você amigo ???

A

Bom já tinha olhado esta parte do código mas não notei nada, pois este método existe. Qual a sua opinião a respeito?

M

Cara eu nao lembro, mas passar um SET no changelistener acho que não existe, assim nao sei se o nome SET ele reconhece apenas como uma metodo normal. mas tem algum erro de permissão que estou tentando diagnostificar
valueChangeListener="#{contextoBean.setContaAtiva}"

<jdbc-user-service data-source-ref="financeiroDataSource"
authorities-by-username-query="SELECT u.email, p.permissao
FROM usuario u, usuario_permissao p
WHERE u.codigo = p.usuario
AND u.email = ?"
Essa parte “where u.codigo = p.usuario” o p.usuario é o codigo da classe usuario permissão? ou p.usuario.codigo? ou u = p.usuario? uma coisa nao é igual a outra

A

Sabe já tinha experimentado sem o set, mas não funcionou. Usuario e usuario_permissao são duas coisas diferentes no banco de dados.

Criado 2 de julho de 2013
Ultima resposta 5 de jul. de 2013
Respostas 6
Participantes 3