Ich habe Java EE 6 mit Glassfish v3.0.1 verwendet, und ich frage mich, ob Java EE-Sicherheitsmodell ACL unterstützt, und wenn ja, wie feinkörnig wird es?Unterstützt das Java EE-Sicherheitsmodell ACL?
EDITED
ich über Glassfish v3 Sicherheit mit jdbc Bereich implementieren, dass der Bereich zur Laufzeit Blick in der Tabelle USER in der Datenbank für die Authentifizierung zu überprüfen, indem am password
Feld und Genehmigung der Suche nach im role
Feld suchen . Das Rollenfeld enthält nur 2 entweder ADMINISTRATOR
oder DESIGNER
. Es handelt sich also um eine Eins-zu-Eins-Karte zwischen Benutzer und Rolle. Auf der Bohne Ebene verwaltet, ich implementiert diese
private Principal getLoggedInUser()
{
HttpServletRequest request =
(HttpServletRequest) FacesContext.getCurrentInstance().
getExternalContext().getRequest();
if(request.isUserInRole("ADMINISTRATORS")){
admin = true;
}else{
admin = false;
}
return request.getUserPrincipal();
}
public boolean isUserNotLogin()
{
Principal loginUser = getLoggedInUser();
if (loginUser == null)
{
return true;
}
return false;
}
public String getLoginUserName()
{
Principal loginUser = getLoggedInUser();
if (loginUser != null)
{
return loginUser.getName();
}
return "None";
}
von isUserInRole
nennen, kann ich feststellen, ob der Benutzer admin
ist oder nicht, dann wird der JSF den Inhalt entsprechend render
. Das ist aber nicht feinkörnig genug (echte schnelle Hintergrundinformation: Es gibt mehrere Projekte, ein Projekt enthält mehrere Zeichnungen). Denn wenn u eine DESIGNER
sind, können Sie alle Zeichnungen aus allen Projekten sehen (was, wenn ich nur tom
wollen A
auf Projekt arbeiten, während peter
B
auf Projekt arbeiten, können Cindy
über die beiden Projekt überwacht A
und B
). Ich möchte, dass ich zur Laufzeit beim Erstellen des Benutzers festlegen kann, welches Projekt er/sie sehen kann. Gibt es einen Weg, dies zu erreichen? HINWEIS: Es gibt mehr als nur zwei Projekte, das obige Beispiel dient nur zur Demonstration.
Ich schrieb einige Codes mit jdbc Realm für die Sicherheit, aber es nur "Principal" verwenden, weiß ich nicht, wie man 'Berechtigungen' und' Fähigkeiten', glauben Sie, ich kann einige Codes, und fragen Sie nach Ihrer Meinung ? –
Dies wird immer helfen, wenn nicht von mir, dann von mehr sachkundigen Menschen hier. –
Ich habe gerade meinen Beitrag aktualisiert. Wenn es Ihnen nichts ausmacht, bitte führen Sie mich. Vielen Dank –