[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
.
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!