Tu jest cały kod Logowanie.java - kod odpowiedzialny za logowanie i KlasyPomocnicze
zawierające różne klasy pomocnicze (w tym weryfikację)
package moduly;
import data.Uzytkownicy;
import java.io.IOException;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
import org.apache.catalina.manager.util.SessionUtils;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.criterion.Restrictions;
@ManagedBean
@SessionScoped
public class Logowanie {
/**
* Creates a new instance of Logowanie
*/
private String login;
private String haslo;
FacesContext context = FacesContext.getCurrentInstance();
HttpSession sesja;
@PostConstruct
public void initialiseSession() {
sesja = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
//context.addMessage(null, new FacesMessage("DUPA"));
// HttpSession session = SessionUtils.getSession();
// session.setAttribute("username", user);
}
public String getLogin() {
return this.login;
}
public void setLogin(String login) {
this.login = login;
}
public String getHaslo() {
return this.haslo;
}
public void setHaslo(String haslo) {
this.haslo = haslo;
}
public Logowanie() {
}
public int sesstest(){
String testowy = sesja.getAttribute("typ_konta").toString();
int a = Integer.parseInt(testowy)+1;
return a;
}
public void sprawdz( int uprawnienia) {
//String testowy = sesja.getAttribute("typ_konta").toString();
// int a = sesstest();
//HttpSession sesja_z = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
int typ_konta = Integer.parseInt(sesja.getAttribute("typ_konta").toString());
try{
if(KlasyPomocnicze.weryfikuj(typ_konta,uprawnienia)){
context.addMessage(null, new FacesMessage("Masz dostęp!"));
}else{
context.addMessage(null, new FacesMessage("Nie masz dostępu"));
}}catch(Exception e){
// context.addMessage(null, new FacesMessage(e.getLocalizedMessage()));
System.out.println(e.getMessage());
}
}
public void Zaloguj() throws IOException{
FacesContext context = FacesContext.getCurrentInstance();
SessionFactory factory = new Configuration().configure().buildSessionFactory();
Session session = factory.openSession();
Criteria cr = session.createCriteria(Uzytkownicy.class);
cr.add(Restrictions.eq("login",login));
List res = cr.list();
if(res.isEmpty()){
context.addMessage(null, new FacesMessage("Podany adres e-mail nie istnieje w naszej bazie") );
}else{
Uzytkownicy k = (Uzytkownicy) res.get(0);
Rejestracja rej = new Rejestracja();
if(k.getHaslo().equals(rej.PasswordHash(haslo))){
context.addMessage(null, new FacesMessage("Dobre hasło - zalogowano") );
sesja.setAttribute("zalogowano","tak");
sesja.setAttribute("user_id",k.getIdUzytkownika());
sesja.setAttribute("nazwa",k.getImie() + " " + k.getNazwisko());
sesja.setAttribute("typ_konta",k.getTypKonta());
FacesContext.getCurrentInstance().getExternalContext().redirect("/TaniKomp/");
}else{
context.addMessage(null, new FacesMessage("Błędne hasło"));
}
}
}
public void wyloguj() throws IOException{
FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
FacesContext.getCurrentInstance().getExternalContext().redirect("/TaniKomp/b");
}
}
public class KlasyPomocnicze {
public static boolean weryfikuj(int typKonta, int wymUpr){
int wer;
wer = (typKonta >> wymUpr)%2;
boolean upr;
if(wer==1){
upr = true;
} else upr = false;
return upr;
}
}