Announcement

Collapse
No announcement yet.

Prinzipielle Frage zu Authentifizierung und JSF

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Prinzipielle Frage zu Authentifizierung und JSF

    Hallo alle zusammen,

    ich plane gerade eine JSF Web Applikation, in der es einen usergesperrten Bereich geben soll.
    Jetzt gibt es ja zahlreiche Möglichkeiten gewisse URL-Pattern mit Usern die im Container hinterlegt sind, bzw. auch User die vom Container aus einer DB gezogen werden können. Ich möchte auch keine Basic-Authentifizierung.
    Die einfachen Login-Beispiele die zu Hauf im Netz rumgeistern machen ja meist nur eine Weiterleitung auf eine dahinter geschaltete Seite.

    Ich möchte das ganze jedoch auf der Applikationsschine machen. Geschützt werden sollen entweder bestimmte URL-Pattern oder bestimmte Seiten oder Funktionen. Nur wer sich in seiner entsprechenden Session eingeloggt hat kann entsprechende Bereiche betreten. Man kann es sich so etwa wie in einem Forum vorstellen.

    Nur wie kann ich das machen? Kann mir jemand ein paar Tipps geben wo ich ansetzten kann? Kennt jemand ein gutes Tutorium mit dem man mal einen ersten Prototypen (zum Verständnis) bauen kann?
    Ich wollte eigentlich auf Spring oder andere Frameworks verzichten.

    Ich würde mich über ein paar Tipps sehr freuen.

    Gruß
    meinereiner

  • #2
    ich plane gerade eine JSF Web Applikation, in der es einen usergesperrten Bereich geben soll.
    Wer sollte danndarauf zugreifen können, wenn alle User gesperrt sind?

    Die einfachen Login-Beispiele die zu Hauf im Netz rumgeistern machen ja meist nur eine Weiterleitung auf eine dahinter geschaltete Seite.
    Was sollte eine Loginseite auch anderes tun? Wenn sich jemand authentifiziert hat, sollte sie schon irgendwohin weiterleiten. Entweder "ok" oder "nicht ok"

    Ich möchte das ganze jedoch auf der Applikationsschine machen.
    bsp. per EJB...

    Geschützt werden sollen entweder bestimmte URL-Pattern oder bestimmte Seiten oder Funktionen.
    Nun doch nicht mehr per Application? -> dann in den Konfigurationsdateien deines Servers ->web.xml

    Nur wer sich in seiner entsprechenden Session eingeloggt hat kann entsprechende Bereiche betreten.
    Wer sich einloggt, bekommt eine Session und kann weitermachen.
    Christian

    Comment


    • #3
      Ok hast recht war ein bisschen unglücklich formuliert.

      In der Web Appliaktion die entstehen soll, soll es einen öffentlichen und einen privaten Bereich geben. Im öffentlcihen soll jeder zugriff haben und im Privaten soll der User entsprechende individuelle Informationen bekommen.
      Wie du schon durch deine Fragen gemerkt hast ist mir noch nicht ganz klar, wie ich am besten die Trennlinie ziehe.

      Was sollte eine Loginseite auch anderes tun? Wenn sich jemand authentifiziert hat, sollte sie schon irgendwohin weiterleiten. Entweder "ok" oder "nicht ok"
      Das ist klar nur was muss danach passieren, dass der User authentifiziert bleibt? Über eine Session?:
      Was sollte eine Loginseite auch anderes tun? Wenn sich jemand authentifiziert hat, sollte sie schon irgendwohin weiterleiten. Entweder "ok" oder "nicht ok"
      Kennst du für eine solche Anwendung irgendwelche Beispiele die ich mir mal anschauen kann um zu verstehen wie ich das bei mir einbauen müsste?

      Gruß
      meinereiner

      Comment


      • #4
        http://www.cafesoft.com/products/cam...-security.html

        -> Form Based Authentication

        mal als Beispiel für den Tomcat
        Christian

        Comment


        • #5
          Danke für das Beispiel.
          Ich sehe nur bei den Beispielen einen Nachteil: Die Authentifizierung läuft ja, wenn sie gegen User in einer DB gecheckt werden sollen über eine eigene Datenbankverbindung die der Tomcat/Glassfish/... managed (POST request wird von tomcat und nicht von der App ausgewertet). Dadurch kenne ich in meiner Applikation jedoch nicht den Benutzernamen und kann so nicht den Inhalt auf den User anpassen.

          Oder verstehe ich da was falsch?

          Comment


          • #6
            a) hast du

            getRemoteUser - Returns the user name the client used for authentication.
            isUserInRole - Determines if a remote user is in a specified security role.
            getUserPrincipal - Returns a java.security.Principal object, which contains the principals name and roles.

            b) übernimmst du ja bei der Form Based Authentication die Verifizierung. Du kannst die Daten in der Session speichern und von dort abrufen
            Christian

            Comment


            • #7
              OK, also du schlägst vor die Authentifizierung durch den Application server zu machen, beispielsweise durch JDBCRealm und dann mit den erwähnten Methoden auf die Eigenschaften des Users zuzugreifen.

              Ich werde es die Tage mal probieren und mich dann wieder melden. Die Daten in der Session ablegen werde ich dann auch gleich ausprobieren!

              THX schonmal!

              Comment

              Working...
              X