Apanhando vRaptor, pegar usuario da sessão [RESOLVIDO]

Olá amigos, estou fazendo uma aplicação com o vRaptor e agora estou com dificuldades para pegar o meu usuário que está na sessão.

LoginLogic (Classe que valida o login/senha e joga o usuário na sessão)

@Component("account")
 @InterceptedBy(DaoInterceptor.class)
 public class LoginLogic {
     private final DaoFactory daoFactory;
     private Usuario usuario;
 
     public LoginLogic(DaoFactory daoFactory) {
         this.daoFactory = daoFactory;
     }
 
     public void login() {
     }
 
     public String efetuaLogin(Usuario usuario) {
         UsuarioDao dao = (UsuarioDao) this.daoFactory.getUsuarioDao();
         this.usuario = dao.existeUnico(usuario);
         if (this.usuario != null) {
             return "ok";
         } else {
             return "invalid";
         }
     }
     
     public void logout() {
         this.usuario = null;
     }
     
     @Out(scope=ScopeType.SESSION)
     public Usuario getUsuario() {
         return this.usuario;
     }
 }

MenuXML (Classe que quero pegar o usuário da sessão. Esta classe que não está retornando o usuário)

 public class MenuXML {
     @In(scope=ScopeType.SESSION)
     private Usuario usuario;    
     private List<Menu> mainmenu;
 
     public List<Menu> getMainmenu() {
         System.out.println(this.usuario.getMenu());
         return mainmenu;
     }  
 }

A lógica que chama esta classe é a MeusInteressesLogic. Esta lógica é chamada depois que o cara autentica através do interesse.lista.logic.

 @Component("interesse")
 @InterceptedBy(AutorizadorInterceptor.class)
 public class MeusInteressesLogic {
 
     public void lista() {
         MenuXML menu = new MenuXML();
         List<Menu> lista = menu.getMainmenu();
     }
 }

Pelo o que eu li, acredito ter feito certo, mas como sou principiante em vRaptor, acho que tô comendo bola em algum lugar… Pois o this.usuario está null

Abraços…

Vc já procurou esse problema no forum do vRaptor ?

Sim senhor… o que eu encontrei mostrava que meu código estava correto… até coloquei uma MSG lá…

Olá amigo,

O problema foi resolvido, coloquei as coisas no lugar errado, tipo, o @In tinha que ficar no MeusInteressesLogic e não no MenuXML.

Ficou assim:

@Component("interesse")
@InterceptedBy(AutorizadorInterceptor.class)
public class MeusInteressesLogic {
    @In(scope=ScopeType.SESSION, required=false)
    private Usuario usuario;
    
    public void lista() {
        MenuXML menu = new MenuXML(this.usuario);
        List<Menu> lista = menu.getMainmenu();
    }
}

e

public class MenuXML {    
    private Usuario usuario;    
    private List<Menu> mainmenu;

    public MenuXML(Usuario usuario) {
        this.usuario = usuario;
    }
    public List<Menu> getMainmenu() {
        System.out.println(this.usuario.getMenu());
        return mainmenu;
    }    
}

Obrigado à todos…

abraços…