Minha contribuição - Controle de acesso VRaptor 3

[quote=juniorsatanas]fabio.cbrandao

É tipo o Spring Security ?

   como ta a extrutura de tuas tabelas ? do acesso !?[/quote]

Junior, eu não conheço muito bem o Spring Security então não sei comparar com ele.

Não sei se entendi sua pergunta direito mas o meu controle de acesso eu estou fazendo com um campo Roles na Tabela do Usuário. Não Tenho uma tabela apenas para Roles para associa-lá com a tabela de Usuários, mas sei que muito fazem isso e acredito que seja a maneira mais correta de se fazer. Mas acredito que sua estrutura varia de acordo com a dificuldade e complexidade do Projeto.

Usuário.


id bigint
nome cv
senha
cpf cv
Roles cv

          tendo essa tabela eu faço uma pesquisa no banco, procurando por nome e senha, e a Roles do usuário correto ? apos isso eu direciono ele para

Página 1 ----------- se administrador
pagina 2 ------------se usuario comum
pagina 3-------------se tec
etc…

é isso ?

[quote=juniorsatanas]Usuário.


id bigint
nome cv
senha
cpf cv
Roles cv

          tendo essa tabela eu faço uma pesquisa no banco, procurando por nome e senha, e a Roles do usuário correto ? apos isso eu direciono ele para

Página 1 ----------- se administrador
pagina 2 ------------se usuario comum
pagina 3-------------se tec
etc…

é isso ?

[/quote]

Exatamente isso!

Minha estrutura segue este mesmo modelo que vc passou. Dá pra vc direciona-lo para cada página de acordo com a Roles dele.

fabio.cbrandao tu pode postar parte do código aqui, para eu ter uma ideia de como fazer o meu ?

[quote=juniorsatanas]fabio.cbrandao tu pode postar parte do código aqui, para eu ter uma ideia de como fazer o meu ?
[/quote]

@LoggedIn
@Resource
public class AdminLocalizacaoController {

	private final Result result;
	private final LocalizacaoDAO dao;
	
	public AdminLocalizacaoController(Result result, LocalizacaoDAO dao) {
		this.result = result;
		this.dao = dao;
	}
	
	@Roles(roles = {"admin", "moderador"})
	@Path("/admin/localizacao/list")
	public void list() {
	}
	
	@Roles(roles = {"admin"})
	@Path("/admin/localizacao/excluir/{id}")
	public void excluir(Long id) {
		dao.delete(dao.findById(id));
		result.use(Results.logic()).redirectTo(AdminLocalizacaoController.class).list();		
	}

    

Como vc pode ver nesse controle eu tenho dois métodos um é apenas para previlégio do admin e o outro pode ser chamado por admin e moderador…

Pessoal,

estou postando aqui um projeto de exemplo utilizando o Restrictrex…

Acesse o link abaixo e baixe o RestrictrexProject.zip
http://cid-3bd2ec0085abad63.office.live.com/self.aspx/.Public/RestrictrexProject.zip

obs: desenvolvi o projeto no eclipse e compactei em .zip, caso tenham alguma dificuldade em acessa-lo avise.

fabio.cbrandao !

Obrigado, vai poupar tempo para meu projeto, fico devendo uma ! ótima iniciativa !

 Boa Semana !

Junior

Fabio, vou pegar teu exemplo e por ele para rodar + postgresql, e vou postar o link para baixar !

Flw

Ok, juniorsatanas!

Poste ai que vai nos ajudar bastante!

o que ta foda e isso :


package br.com.restrictrex.project.controller;

import br.com.bronx.vraptor.restrictrex.annotation.LoggedIn;
import br.com.bronx.vraptor.restrictrex.annotation.Roles;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;
import br.com.restrictrex.project.model.Usuario;
import br.com.restrictrex.project.session.UsuarioLogado;

@Resource
public class UsuarioController {

	private final UsuarioLogado usuarioLogado;
	
	public UsuarioController(UsuarioLogado usuarioLogado) {
		this.usuarioLogado = usuarioLogado;
	}
	
	public void login(Usuario usuario) {
		this.usuarioLogado.efetuaLogin(usuario);
	}
	
	@LoggedIn
	@Roles(roles = {"admin"})
	@Path("/test1")
	public void test1() {
	}
	
	@LoggedIn
	@Roles(roles = {"admin", "moderador"})
	@Path("/test2")
	public void test2() {
	}
	
	@LoggedIn
	@Roles(roles = {"admin", "moderador", "usuario"})
	@Path("/test3")
	public void test3() {
	}
	
	@LoggedIn
	@Roles(roles = {"moderador"})
	@Path("/test4")
	public void test4() {
	}
	
	@LoggedIn
	@Roles(roles = {"moderador", "usuario"})
	@Path("/test5")
	public void test5() {
	}
	
	@LoggedIn
	@Roles(roles = {"usuario"})
	@Path("/test6")
	public void test6() {
	}
}


 PARA ISSO :

package br.com.catequese.controller;

import br.com.catequese.security.UsuarioWeb;
import br.com.caelum.vraptor.Delete;
import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Put;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import static br.com.caelum.vraptor.view.Results.*;

import br.com.caelum.vraptor.Validator;
import br.com.caelum.vraptor.validator.Hibernate;
import br.com.caelum.vraptor.validator.ValidationMessage;
import br.com.catequese.dao.UsuarioDao;
import br.com.catequese.to.Usuario;
import java.util.List;

@Resource
public class UsuarioController {
    private final UsuarioDao dao;
    private final Result result;
    private final Validator validator;
    private final UsuarioWeb usuarioWeb;
    
    public UsuarioController(UsuarioDao dao, Result result, Validator validator, UsuarioWeb usuarioWeb) {
        this.dao = dao;
        this.result = result;
        this.validator = validator;
        this.usuarioWeb = usuarioWeb;
    }

    @Post @Path("/usuario/adiciona")
    public void adiciona(Usuario usuario) {
        if (dao.existeUsuario(usuario)) {
            validator.add(new ValidationMessage("Login já existe", "usuario.login"));
        }
        validator.onErrorUse(page()).of(UsuarioController.class).formulario();
        dao.adiciona(usuario);
        result.redirectTo(UsuarioController.class).lista();
    }

    @Delete @Path("/usuario/{idUsuario}")
    public void remove(Integer idUsuario) throws Exception {
        Usuario d = dao.carrega(idUsuario);
        dao.excluir(d);
        result.redirectTo(UsuarioController.class).lista();
    }

    @Get @Path("/usuario/{idUsuario}")
    public Usuario edita(Integer idUsuario){
        return dao.carrega(idUsuario);
    }

    @Put @Path("/usuario/{usuario.idUsuario}")
    public void altera(Usuario usuario) {
        validator.addAll(Hibernate.validate(usuario));
        validator.onErrorUse(page()).of(UsuarioController.class).edita(usuario.getIdUsuario());
        dao.atualiza(usuario);
        result.redirectTo(UsuarioController.class).lista();
    }

    @Get @Path("/usuario/novo")
    public void formulario() {
    }

    @Get @Path("/usuario/todos")
    public List<Usuario> lista(){
        return dao.listaTudo();
    }

    @Get @Path("/usuario/login")
    public void loginForm() {
    }

    @Post @Path("/usuario/login")
    public void login(Usuario usuario) throws Exception {
        Usuario carregado = dao.carrega(usuario);
        if (carregado == null) {
            validator.add(new ValidationMessage("Login e/ou senha inválidos", "usuario.login"));
        }
        validator.onErrorUse(page()).of(UsuarioController.class).loginForm();
        usuarioWeb.login(carregado);
        result.redirectTo(AlunoController.class).formulario();
    }

    @Path("/usuario/logout")
    public void logout() {
        usuarioWeb.logout();
        result.redirectTo(UsuarioController.class).loginForm();
    }
}

Obrigado bronx!!!

São 2:18h. de um sábado e eu finalmente consegui fazer funcionar o seu Restrictrex no meu projeto. Estava desde às 22h. Obrigado.

Leandro-SP Bom dia !

  Como você fez ? tem como postar aqui ?

abraço.

[quote=juniorsatanas]Leandro-SP Bom dia !

  Como você fez ? tem como postar aqui ?

abraço.[/quote]

Fiz exatamente com o Guevara fez… ele colocou as classes dele nos posts anteriores.
Foi um pouco complicado (quebrei a cabeça) para adaptar ao meu projeto mas no fim ocorreu tudo bem.
Dá uma olhadinha nos posts anteriores e se sentir dificuldades me fala ou coloca a sua duvida aqui pra galera.
Att,
Leandro

Leandro…

Exemplo que funciona e me leva para N telas diacordo com a Roles…

       @LoggedIn
	@Roles(roles = {"admin"})
	@Path("/test1")
	public void test1() {
	}
	
	@LoggedIn
	@Roles(roles = {"admin", "moderador"})
	@Path("/test2")
	public void test2() {
	}

Meu sistema que logar pegando um OBJETO usuario senha e roles do banco e me direciona para uma tela FORM !

 @Post @Path("/usuario/login")
    public void login(Usuario usuario) throws Exception {
        Usuario carregado = dao.carrega(usuario);
        if (carregado == null) {
            validator.add(new ValidationMessage("Login e/ou senha inválidos", "usuario.login"));
        }
        validator.onErrorUse(page()).of(UsuarioController.class).loginForm();
        usuarioWeb.login(carregado);
        result.redirectTo(AlunoController.class).formulario();
    }

Pergutna é : como pegar esse valor de roler do banco e comparar com " @Roles(roles = {“admin”})"

Obrigado !

Quero fazer um controle de usuário:

Usuario páginas 1 2 3 5 9 8
Administrado páginas 1 2
Pesquisador páginas 3 5
Cadastrador páginas 1

Vai no banco e pega a Roles, e direciona para páginas que tem acesso !

Abraço
.

ok

Estou vindo ressuscitar o tópico… rs

Pessoal,

Já estou trabalhando a um bom tempo com o VRaptor3 no meu projeto e hoje resolvi atualizar sua versão.

Eu estava com a versão 3.1.1 e resolvi atualizar para a mais atual 3.1.3, porém logo de cara quando fui subir o TOMCAT deu um erro! A única coisa q fiz foi trocar o .jar do vraptor e alterar a ref. no meu classpath

Alguém já viu esse erro?

14:00:15,934  INFO [DefaultSpringLocator] No application context found
14:00:16,043  INFO [VRaptorApplicationContext] Refreshing Root WebApplicationContext: startup date [Tue Aug 10 14:00:16 GMT-03:00 2010]; root of context hierarchy
14:00:16,403  INFO [Version             ] Hibernate Validator 3.1.0.GA
14:00:16,481  INFO [VRaptorApplicationContext] Scanning WEB-INF/classes: C:\Develop\Workspaces\Workspace-Loucaliza\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Loucaliza\WEB-INF\classes
log4j:WARN No appenders could be found for logger (org.springframework.core.io.support.PathMatchingResourcePatternResolver).
log4j:WARN Please initialize the log4j system properly.
14:00:16,949  INFO [VRaptorApplicationContext] Scanning packages from WEB-INF/classes and jars: [br.com.bronx.vraptor.restrictrex]
10/08/2010 14:00:17 org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter vraptor
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'pageHandler' defined in URL [jar:file:/C:/Develop/Workspaces/Workspace-Loucaliza/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Loucaliza/WEB-INF/lib/restrictrex-1.0.2.jar!/br/com/bronx/vraptor/restrictrex/startup/PageHandler.class]: Unsatisfied dependency expressed through constructor argument with index 0 of type [br.com.caelum.vraptor.http.route.Router]: : Error creating bean with name 'defaultRouter': Unsatisfied dependency expressed through constructor argument with index 1 of type [br.com.caelum.vraptor.http.route.RoutesParser]: : Error creating bean with name 'pathAnnotationRoutesParser': Unsatisfied dependency expressed through constructor argument with index 1 of type [br.com.caelum.vraptor.http.route.TypeFinder]: : Error creating bean with name 'defaultTypeFinder': Unsatisfied dependency expressed through constructor argument with index 0 of type [br.com.caelum.vraptor.http.ParameterNameProvider]: : Error creating bean with name 'paranamerNameProvider': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.vraptor.http.ParanamerNameProvider]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/thoughtworks/paranamer/AnnotationParanamer; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'paranamerNameProvider': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.vraptor.http.ParanamerNameProvider]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/thoughtworks/paranamer/AnnotationParanamer; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'defaultTypeFinder': Unsatisfied dependency expressed through constructor argument with index 0 of type [br.com.caelum.vraptor.http.ParameterNameProvider]: : Error creating bean with name 'paranamerNameProvider': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.vraptor.http.ParanamerNameProvider]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/thoughtworks/paranamer/AnnotationParanamer; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'paranamerNameProvider': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.vraptor.http.ParanamerNameProvider]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/thoughtworks/paranamer/AnnotationParanamer; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'pathAnnotationRoutesParser': Unsatisfied dependency expressed through constructor argument with index 1 of type [br.com.caelum.vraptor.http.route.TypeFinder]: : Error creating bean with name 'defaultTypeFinder': Unsatisfied dependency expressed through constructor argument with index 0 of type [br.com.caelum.vraptor.http.ParameterNameProvider]: : Error creating bean with name 'paranamerNameProvider': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.vraptor.http.ParanamerNameProvider]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/thoughtworks/paranamer/AnnotationParanamer; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'paranamerNameProvider': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.vraptor.http.ParanamerNameProvider]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/thoughtworks/paranamer/AnnotationParanamer; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'defaultTypeFinder': Unsatisfied dependency expressed through constructor argument with index 0 of type [br.com.caelum.vraptor.http.ParameterNameProvider]: : Error creating bean with name 'paranamerNameProvider': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.vraptor.http.ParanamerNameProvider]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/thoughtworks/paranamer/AnnotationParanamer; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'paranamerNameProvider': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.vraptor.http.ParanamerNameProvider]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/thoughtworks/paranamer/AnnotationParanamer; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'defaultRouter': Unsatisfied dependency expressed through constructor argument with index 1 of type [br.com.caelum.vraptor.http.route.RoutesParser]: : Error creating bean with name 'pathAnnotationRoutesParser': Unsatisfied dependency expressed through constructor argument with index 1 of type [br.com.caelum.vraptor.http.route.TypeFinder]: : Error creating bean with name 'defaultTypeFinder': Unsatisfied dependency expressed through constructor argument with index 0 of type [br.com.caelum.vraptor.http.ParameterNameProvider]: : Error creating bean with name 'paranamerNameProvider': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.vraptor.http.ParanamerNameProvider]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/thoughtworks/paranamer/AnnotationParanamer; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'paranamerNameProvider': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.vraptor.http.ParanamerNameProvider]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/thoughtworks/paranamer/AnnotationParanamer; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'defaultTypeFinder': Unsatisfied dependency expressed through constructor argument with index 0 of type [br.com.caelum.vraptor.http.ParameterNameProvider]: : Error creating bean with name 'paranamerNameProvider': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.vraptor.http.ParanamerNameProvider]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/thoughtworks/paranamer/AnnotationParanamer; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'paranamerNameProvider': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.vraptor.http.ParanamerNameProvider]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/thoughtworks/paranamer/AnnotationParanamer; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'pathAnnotationRoutesParser': Unsatisfied dependency expressed through constructor argument with index 1 of type [br.com.caelum.vraptor.http.route.TypeFinder]: : Error creating bean with name 'defaultTypeFinder': Unsatisfied dependency expressed through constructor argument with index 0 of type [br.com.caelum.vraptor.http.ParameterNameProvider]: : Error creating bean with name 'paranamerNameProvider': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.vraptor.http.ParanamerNameProvider]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/thoughtworks/paranamer/AnnotationParanamer; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'paranamerNameProvider': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.vraptor.http.ParanamerNameProvider]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/thoughtworks/paranamer/AnnotationParanamer; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'defaultTypeFinder': Unsatisfied dependency expressed through constructor argument with index 0 of type [br.com.caelum.vraptor.http.ParameterNameProvider]: : Error creating bean with name 'paranamerNameProvider': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.vraptor.http.ParanamerNameProvider]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/thoughtworks/paranamer/AnnotationParanamer; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'paranamerNameProvider': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.vraptor.http.ParanamerNameProvider]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/thoughtworks/paranamer/AnnotationParanamer
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:698)
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:192)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:984)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:886)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:479)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:557)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:842)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:416)
	at br.com.caelum.vraptor.ioc.spring.SpringBasedContainer.start(SpringBasedContainer.java:68)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.start(SpringProvider.java:82)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:110)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:103)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
	at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4363)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
	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.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)


  Xi, extranho pra caralho !

Xi, extranho pra caralho !

É realmente muito estranho.

O mais estranho foi o fato de ele ter gerado um erro como se houvesse algum conflito com o jar ou com a configuração do restrictrex.

Foi até por isso q postei essa dúvida neste tópico do restrictrex. Achei q alguém já tivesse passado por isso.

Descobri!

O meu projeto na versão 3.1.1 não usava o jar paranamer-2.2.jar

Porém só foi eu trocar o .jar do vraptor e add o paranamer-2.2.jar

Se algum dia alguém precisar segue a dica!