Setar Atributos na Sessao

Olá bom dia!
Estou com o seguinte problema:
Estou precisando guardar o usuario da da sessao. Para isso criei uma classe sessao

import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
import br.com.directusweb.domain.Usuarios;

public class Sessao {

public void inserirAtributoSessao(String nome, Object valor) {
    ((HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true)).setAttribute(nome, valor);
}

public void removerAtributoSessao(String nome) {
	((HttpSession) (FacesContext.getCurrentInstance().getExternalContext().getSession(true))).removeAttribute(nome);
}

public Object obterAtributoSessao(String nome) {
	return ((HttpSession) (FacesContext.getCurrentInstance().getExternalContext().getSession(true)))
			.getAttribute(nome);
}

public Usuarios getUsuarioLogado() {
	return (Usuarios) obterAtributoSessao("usuarioLogado");
}

public void invalidarSessao() {
	((HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false)).invalidate();
}

Depois tenho a classe bean

public Usuarios usuarios = new Usuarios();
private int idUsuario;
private String Nome;
private String pass;
public Usuarios usuarioLogado = null;
public Sessao sessao = new Sessao();

UsuariosDAO daousuario = new UsuariosDAO();

public Usuarios getUsuarios() {
	return usuarios;
}

public void setUsuarios(Usuarios usuarios) {
	this.usuarios = usuarios;
}

public int getIdUsuario() {
	return idUsuario;
}

public void setIdUsuario(int idUsuario) {
	this.idUsuario = idUsuario;
}

public String getNome() {
	return Nome;
}

public void setNome(String nome) {
	Nome = nome;
}

public String getPass() {
	return pass;
}

public void setPass(String pass) {
	this.pass = pass;
}

public Usuarios getUsuarioLogado() {
	return usuarioLogado;
}

public void setUsuarioLogado(Usuarios usuarioLogado) {
	this.usuarioLogado = usuarioLogado;
}

public Sessao getSessao() {
	return sessao;
}

public void setSessao(Sessao sessao) {
	this.sessao = sessao;
}

public UsuariosDAO getDaousuario() {
	return daousuario;
}

public void setDaousuario(UsuariosDAO daousuario) {
	this.daousuario = daousuario;
}

public String validar(Usuarios usuarios) throws SQLException {


	UsuariosDAO dao = new UsuariosDAO();

	if (dao.validarUsuario(usuarios) != null) {
		usuarioLogado = sessao.getUsuarioLogado();
		return "dashboard.xhtml";
	} else
		// System.out.println("Nao entrou no if do bean");
		return "access-denied.xhtml";
	
}

	public static void main(String[] args) throws SQLException {
	UsuariosDAO dao = new UsuariosDAO();
	Usuarios usuario = new Usuarios();

	usuario.NOME = "Weldes";
	usuario.PASS = "123";

	System.out.println(usuario.NOME +" :"+ usuario.PASS);
	System.out.println(dao.validarUsuario(usuario));
}

e depois a classe DAO
public Usuarios validarUsuario(Usuarios usuarios) throws SQLException {
StringBuilder sql = new StringBuilder();

	System.out.println("Usuarios dentro do DAO: "+usuarios.getNOME() + " Senha: "+usuarios.getPASS());
	sql.append("SELECT * FROM usuario  where usuario.nome = ? and usuario.pass = ?");

	Connection conexao = Conexao2.conectar();
	
	System.out.println(conexao.getCatalog() + " é a conexao");

	PreparedStatement comando = conexao.prepareStatement(sql.toString());
	comando.setString(1, usuarios.NOME);
	comando.setString(2, usuarios.PASS);

	ResultSet resultado = comando.executeQuery();

	if (resultado.next()) {

		Usuarios usuarioLogado = new Usuarios();

		usuarioLogado.setIdUsuario(resultado.getInt("idUsuario"));
		usuarioLogado.setNOME(resultado.getString("NOME"));
		usuarioLogado.setPASS(resultado.getString("PASS"));

		Sessao sessao = new Sessao();
		System.out.println("usuario: "+usuarioLogado.NOME);
		sessao.inserirAtributoSessao("usuarioLogado", usuarioLogado);

		return usuarioLogado;
	}

	return null;
}

O problema é que estava funcionando… e agora esta dando a mensagem

Weldes :123
Usuarios dentro do DAO: Weldes Senha: 123
cadusu é a conexao
usuario: WELDES
Exception in thread “main” java.lang.NullPointerException
at br.com.directusweb.util.Sessao.inserirAtributoSessao(Sessao.java:11)
at br.com.directusweb.dao.UsuariosDAO.validarUsuario(UsuariosDAO.java:48)
at br.com.directusweb.bean.LoginBean.main(LoginBean.java:104)

Nao estou conseguindo identificar o nullPointerException. Alguem consegue me dar uma luz?

Você tem um cast ali, então, pode ser neste ponto.

Deu certo, com o Managed BeanScoped. Valeu