R
R4Z0r1337
Hallo!
Ich habe folgendes Problem:
Ich habe eine adminboard.jsf auf die sollen, logischerweise, nur Admins zugreifen können.
Dies funktioniert auch schon so einigermaßen, mithilfe eines PhaseListeners, allerdings sobald irgendein Benutzer in die Adressleiste "..../pages/adminboard.xhtml" eingibt, wird ihm die Seite angezeigt, wenn allerdings
"..../pages/adminboard.jsf" eingegeben wird, funktioniert alles einwandfrei und der Benutzer wird normal weitergeleitet.
MyPhaseListener:
UserBean:
Möglicherweise können einige von euch mir einen Lösungsansatz nennen
lg
Ich habe folgendes Problem:
Ich habe eine adminboard.jsf auf die sollen, logischerweise, nur Admins zugreifen können.
Dies funktioniert auch schon so einigermaßen, mithilfe eines PhaseListeners, allerdings sobald irgendein Benutzer in die Adressleiste "..../pages/adminboard.xhtml" eingibt, wird ihm die Seite angezeigt, wenn allerdings
"..../pages/adminboard.jsf" eingegeben wird, funktioniert alles einwandfrei und der Benutzer wird normal weitergeleitet.
MyPhaseListener:
Code:
public class MyPhaseListener implements PhaseListener {
public void afterPhase(PhaseEvent pe) {
try {
FacesContext fc = pe.getFacesContext();
UserBean currentUser = UserBean.getUserBean(fc.getExternalContext());
String viewid = fc.getViewRoot().getViewId();
if (viewid.contains("/adminboard") && !currentUser.isAdmin()) {
nh.handleNavigation(fc, null, "back");
}
} catch (NullPointerException npe) {
//do nothing
}
}
public void beforePhase(PhaseEvent pe) {
//do nothing
}
public PhaseId getPhaseId() {
return PhaseId.RESTORE_VIEW;
}
}
UserBean:
Code:
public class UserBean {
private String username;
private String password;
private boolean admin = false;
private boolean loggedIn = false;
private static final long ADMINISTRATION_GROUP = 1L;
/**
* Loggt den User ein.
*
* @return Navigationrule
*/
public String login() {
FacesContext context = FacesContext.getCurrentInstance();
try {
User user = DBAccess.login(username, password);
} catch (SQLException e) {
return "login_failed";
}
if (user == null) {
loggedIn = false;
return "login_failed";
}
loggedIn = true;
if (user.getUserGroup() == ADMINISTRATION_GROUP) {
admin = true;
}
return "login_successfull" ;
}
....sehr sehr viele Getter/Setter Methoden....
}
Möglicherweise können einige von euch mir einen Lösungsansatz nennen
lg