Interceptor causando erro

5 respostas
mococa

boa tarde…seguindo a apostila da caelum j-28…mais precisamente pg. 100
esta ocorrendo um erro ao remover um usuario…

** estou logado como admin, tenho o privilegio para isto, pois na anotação passei como admin --@Role(“admin”) e o add no meu metodo remove() da classe UsuarioLogic…

**outra coisa é que na classe AutorizadorInterceptor.java dentro do metodo intercept() é passada a seguinte logica:

public void intercept(LogicFlow flow) throws LogicException, ViewException {
// pega request e response
HttpServletRequest request = flow.getLogicRequest().getRequest();
HttpServletResponse response = flow.getLogicRequest().getResponse();
try {
// usuario nao esta logado
if (this.usuario == null) {
// redireciona pro login
response.sendRedirect("admin.login.logic");
} else { // usuario esta logado
// pega anotacao @Role no método da lógica
Role role = flow.getLogicRequest().getLogicMethod()
.getMetadata().getAnnotation(Role.class);
// tem role definido
if (role != null) {
// se usuario tem o role pedido, executa
if (this.usuario.hasRole(role.value())) {
flow.execute();
} else {
// sem permissao, vai pra admin.semrole.logic
request.getRequestDispatcher("semrole.jsp")
.forward(request, response);
}
} else {
// nao tem role, entao pode executar
flow.execute();
}
}
} catch (Exception e) {
throw new LogicException(e);
}
}

especificamente na logica:

// pega anotacao @Role no método da lógica
Role role = flow.getLogicRequest().getLogicMethod()
.getMetadata().getAnnotation(Role.class);

nao aceita o metodo getLogicMethod(), o eclipse gera erro…por acasiao troquei por

//pega anotacao @Role no método da lógica
		    Role role = flow.getLogicRequest().getLogicDefinition().getLogicMethod()
		                .getMetadata().getAnnotation(Role.class);

mas continua gerando erro…nao sei o q rola…

…valeu rapaziada…

5 Respostas

mococa

ainda nao consegui resolver…

mococa

ja refiz o exemplo, mas nao consigo resolver…quando logo com outro role sem ser “admin” ele reconhece e me redireciona para uma outra pg dizendo que nao tenho permissão…
mas quando logo como admin gera o seguinte erro:

21/06/2007 14:51:40 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet vraptor2 threw exception
org.hibernate.PropertyValueException: not-null property references a null or transient value: br.com.ricardo.lojavirtual.modelo.Usuario.login
	at org.hibernate.engine.Nullability.checkNullability(Nullability.java:72)
	at org.hibernate.event.def.DefaultDeleteEventListener.deleteEntity(DefaultDeleteEventListener.java:250)
	at org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:141)
	at org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:52)
	at org.hibernate.impl.SessionImpl.fireDelete(SessionImpl.java:766)
	at org.hibernate.impl.SessionImpl.delete(SessionImpl.java:744)
	at br.com.ricardo.lojavirtual.dao.Dao.remove(Dao.java:31)
	at br.com.ricardo.lojavirtual.logic.UsuarioLogic.remove(UsuarioLogic.java:47)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.vraptor.component.DefaultLogicMethod.execute(DefaultLogicMethod.java:117)
	at org.vraptor.interceptor.ExecuteLogicInterceptor.intercept(ExecuteLogicInterceptor.java:37)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at org.vraptor.interceptor.SettingAndValidationInterceptor.intercept(SettingAndValidationInterceptor.java:131)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at org.vraptor.interceptor.InjectionInterceptor.intercept(InjectionInterceptor.java:41)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at org.vraptor.interceptor.ComponentLookupInterceptor.intercept(ComponentLookupInterceptor.java:58)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at br.com.ricardo.lojavirtual.logic.DaoInterceptor.intercept(DaoInterceptor.java:24)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at br.com.ricardo.lojavirtual.logic.AutorizadorInterceptor.intercept(AutorizadorInterceptor.java:50)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:38)
	at org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	at org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:88)
	at org.vraptor.core.DefaultController.execute(DefaultController.java:42)
	at org.vraptor.VRaptorServlet.service(VRaptorServlet.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)

…valeu…

mococa

preciso de um help???

mococa

ainda nao resolvi…alguma opiniao sobre este erro???

valeus

mococa

ainda continua tando pau!!!

Criado 19 de junho de 2007
Ultima resposta 22 de jun. de 2007
Respostas 5
Participantes 1