package b2ti.gis.session;
import br.com.b2ti.entity.Usuario;
import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.ioc.SessionScoped;
import java.io.Serializable;
/**
*
* @author user
*/
@Component
@SessionScoped
public class SessionUsuario implements Serializable{
private static final long serialVersionUID = 1L;
private Usuario usuario;
/**
* @return the usuario
*/
public Usuario getUsuario() {
return usuario;
}
/**
* @param usuario the usuario to set
*/
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
}
tenho o seguinte controller:
package b2ti.gis.controller;
import b2ti.gis.session.SessionUsuario;
import br.com.b2ti.entity.LoginSistema;
import br.com.b2ti.entity.Unidade;
import br.com.b2ti.entity.Usuario;
import br.com.b2ti.exception.RepositoryException;
import br.com.b2ti.process.ManterLoginSistema;
import br.com.b2ti.util.Criptografia;
import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.Validator;
import br.com.caelum.vraptor.validator.ValidationMessage;
import br.com.caelum.vraptor.view.Results;
import br.com.psflib.process.ManterMunicipioPSFUnidade;
import java.security.NoSuchAlgorithmException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.hamcrest.Matchers.*;
/**
*
* @author user
*/
@Resource
public class HomeController {
private final Result result;
private final Validator validator;
private ManterLoginSistema dao;
private SessionUsuario usuarioInfo;
public HomeController(Result result, Validator validator, SessionUsuario usuarioInfo) {
this.dao = new ManterLoginSistema();
this.result = result;
this.validator = validator;
this.usuarioInfo = usuarioInfo;
}
@Post
public void login(String login, String senha, String unidade) {
LoginSistema sistema = null;
Unidade unidadePsf = new Unidade(Integer.parseInt(unidade));
try {
sistema = dao.RelizarLogin(login, Criptografia.SHA_1(senha));
} catch (RepositoryException ex) {
Logger.getLogger(HomeController.class.getName()).log(Level.SEVERE, null, ex);
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(HomeController.class.getName()).log(Level.SEVERE, null, ex);
}
final Usuario currentUser = sistema == null ? null : sistema.getUsuarioId();
if (currentUser == null) {
validator.add(new ValidationMessage("erro", "Usuario invalido"));
} else if (!currentUser.getUnidadeList().contains(unidadePsf)) {
validator.add(new ValidationMessage("erro", "Usuario não pertende a unidade"));
}
this.validator.onErrorUse(Results.page()).of(ErroController.class).erro();
this.usuarioInfo.setUsuario(currentUser);
this.result.use(Results.logic()).redirectTo(PrincipalController.class).home();
}
@Get
public void login() {
}
public void logout() {
this.result.use(Results.logic()).redirectTo(IndexController.class).index();
}
}
meu problema é o SessionUsuario nunca fica armazenado em sessao, mesmo eu colocando um @Component e @SessionScoped quando uso qualquer interceptador SessionUsuario vem em branco, o que estou fazendo de errado?