Po wpisaniu loginu i hasła, i kliknięciu w przycisk, sprawdzam w bazie czy dane są ok, jak są to wyciągam wszystkie dane użytkownika z bazy i wkładam je do obiektu klasy użytkownik.
W jaki sposób przenieść dane zalogowanego użytkownika z requestscoped managedbeana obsługującego logowanie do sessionscoped managed bina obsługującego resztę aplikacji?
Próbuję to robić tak jak widać poniżej, ale to nie działa
@ManagedBean
@RequestScoped
public class Login_ManageBean implements Serializable {
private String mail;
private String pass;
private String message;
private Session session;
private HibernateUtil hutil;
private Query query, getSalt;
private User_Entity user;
//konstruktor, settery i gettery
public void check() {
try {
session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
getSalt=session.createQuery("SELECT salt FROM User_Entity WHERE mail =:mail");
getSalt.setString("mail", mail);
List saltList=getSalt.list();
String salt = null;
if(saltList.isEmpty()){
message="Nie ma takiego";
}else{
salt=saltList.get(0).toString();
}
MessageDigest sha512=MessageDigest.getInstance("sha-512");
sha512.update((pass+salt).getBytes());
query=session.createQuery("from User_Entity where mail = :mail and password =:pass");
query.setString("mail", mail);
query.setBinary("pass", sha512.digest());
List results=query.list();
if(results.isEmpty()){
message="Wrong mail or password, please check if capslock is off";
}else{
user=(User_Entity) results.get(0);
String url = "faces/mainPanel.xhtml";
FacesContext fc = FacesContext.getCurrentInstance();
ExternalContext ec = fc.getExternalContext();
try {
ec.redirect(url);
} catch (IOException ex) {
ex.printStackTrace();
}
}
} catch (NoSuchAlgorithmException ex) {
message="Hash create exception";
}
}
@ManagedBean
@SessionScoped
public class MainPanel_ManageBean implements Serializable{
private int jakaśzmienna;
private int jakaśinnazmienna;
private String message;
private Results results;
private Session session;
@ManagedProperty(value="#{Login_ManagedBean.user}")
private User_Entity user;
//tutaj settery i gettery