Java EE, uwierzytelnienie

0

Witam!
Mam napisany projekt w Javie wykorzystujacy framework Hibernate i JSF.
W ustawieniach serwera (GlassFish) ustawiłem użytkowników, a w całym projekcie przydzieliłem im odpowiednie role i dałem dostęp do konkretnych zasobów.

Pytanie polega na tym, czy istnieje możliwość pobrania roli zalogowanego uzytkowniak.

Sama aplikacja jest prosta:
po zalogowaniu użytkownik przekierowywany jest na index.html

Chciałbym dodać do tego pliku warunek, który byłby odpowiedzialny za wyświetlanie konkretnych treści w zależności od roli.

Znalazłem taki kod:

  <c:if test="#{row==10}">
                <h:outputLabel value="value = 10"/>
            </c:if>

Oczywiście zamiast warunku row==10 chciałbym sprawdzić czy dana rola to rola admina, czyli coś w stylu: getRole() == 'adminRole'

Problemem jest oczywiście fakt, że funkcja getRole() nie istnieje... Może jest jakiś inny sposób/funkcja, która pozwoli na pobranie roli danego użytkownika.

Pozdrawiam i czekam na informacje.

0

co to jest jee ? masz tam z tyłu Springa ? czy może framework WTF ?

1

Masz to skonfigurowane za pomocą JASS i FileRealm?

Ja w JSF robiłem to mniej więcej tak:

    public String getUsername() {
        userPrincipal = FacesContext.getCurrentInstance()
                .getExternalContext().getUserPrincipal();
        if (userPrincipal != null) {
            logged = true;
            return principal.getName();
        } else {
            return "anon";
        }
    }

Z kontekstu serveleta z tego co widzę można to zrobć analogicznie:
http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getUserPrincipal()

0

Tak, wszystko oparte o Hibernate i JSF
Problemem jest fakt, że nie mam żadnego servleta w projekcie. Pomyślałem więc, ze najlepszym i najprostszym sposobem jest właśnie zrobienie takiego ifa w tym index.xhtml i tam ładować zasoby w zależności od roli.

1

Myślałem, że masz legacy aplikacje.

  1. W JSF nie używaj JSTL (znaczniki z c namespace).
  2. Skonfiguruj FileRealm i JASS w GlassFishu (zarządzanie użytkownikami w panelu).
  3. Jak masz JSF (nie JSP, a to wywnioskowałem z Twojego posta, dlatego twierdziłem, że to legacy kod) to zrób to tak jak ja tzn. z FacesContext.
1
<h:outputLabel value="#{empty request.userPrincipal ? 'niezalogowany' : request.userPrincipal}" />
<h:outputLabel value="jestem adminem" rendered="#{request.userPrincipal eq 'adminRole'}" />

1 użytkowników online, w tym zalogowanych: 0, gości: 1