JSF Form based authentication mit JSF templating

denis7788

Bekanntes Mitglied
Hallo,

kann JSF Templating auch mit form based authentication funktionieren?
Ich habe mir Templates erstellt, allerdings scheinen diese bei den Seiten, die mit der Authentifizierung zu tun haben nicht zu greifen (login, error). Außerdem wird nach dem Login nicht auf die Startseite geleitet, sondern auf eine css Datei.

Hier z.B. die login.xhtml
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html">

    <ui:composition template="/templates/template.xhtml">
   
        <ui:define name="title">Login</ui:define>
       
        <ui:define name="content">
            <form action="j_security_check" method="post" class="form-horizontal">
                <div class="form-group">
                    <h:outputLabel value="User Name" class="col-sm-2"/>
                    <div class="col-sm-10">
                        <input type="text" class="" name="j_username" placeholder="Username" />
                    </div>
                </div>
                <div class="form-group">
                    <h:outputLabel value="Passwort" class="col-sm-2" />
                    <div class="col-sm-10">
                        <input type="password" class="" name="j_password" placeholder="Passwort" />
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-sm-offset-2 col-sm-10">
                        <button type="submit" class="btn btn-primary">Login</button>
                    </div>
                </div>
            </form>
        </ui:define>
       
    </ui:composition>
</html>
 

denis7788

Bekanntes Mitglied
Ich habe den Fehler leider noch nicht gefunden. Muss ich eventuell irgendwas beachten bei JSF Templates und der Nutzung der Authentifizierung? Vor dem Login werden alle css und js Dateien eingebunden, nur führt der link wieder auf die Login Seite.
Ich habe in der web.xml Ausnahmen hinzugefügt, die die Dateien, css und js Dateien für alle Nutzer zugänglich machen, leider hilft das auch nicht.

Oben habe ich noch falsch beschrieben, das auf eine css weitergeleitet wird. Stattdessen wird nach erfolgreichem Login auf die in meinem Template eingebundene boostrap.js weitergeleitet (folgende url: http://localhost:8080/ProjectTutorialsWeb/javax.faces.resource/bootstrap.min.js.xhtml?ln=js). Hat jemand eine Ahnung warum das passiert?

web.xml:
HTML:
...
<!-- Security Constraints -->

  <security-constraint>

  <web-resource-collection>

  <web-resource-name>user</web-resource-name>

  <url-pattern>/resources/css/bootstrap.css</url-pattern>

  </web-resource-collection>

  </security-constraint>

  <security-constraint>

  <web-resource-collection>

  <web-resource-name>user</web-resource-name>

  <url-pattern>/resources/js/bootstrap.min.css</url-pattern>

  </web-resource-collection>

  </security-constraint>

  <security-constraint>

  <web-resource-collection>

  <web-resource-name>user</web-resource-name>

  <url-pattern>/resources/js/jquery-2.1.4.min.css</url-pattern>

  </web-resource-collection>

  </security-constraint>

    <security-constraint>

  <web-resource-collection>

  <web-resource-name>user</web-resource-name>

  <url-pattern>/registration.xhtml</url-pattern>

  </web-resource-collection>

  </security-constraint>

  <security-constraint>

  <web-resource-collection>

  <web-resource-name>user</web-resource-name>

  <url-pattern>/templates/header.xhtml</url-pattern>

  </web-resource-collection>

  </security-constraint>

  <security-constraint>

  <web-resource-collection>

  <web-resource-name>user</web-resource-name>

  <url-pattern>/templates/footer.xhtml</url-pattern>

  </web-resource-collection>

  </security-constraint>

  <security-constraint>

  <web-resource-collection>

  <web-resource-name>user</web-resource-name>

  <url-pattern>/templates/template.xhtml</url-pattern>

  </web-resource-collection>

  </security-constraint>

  <security-constraint>

  <web-resource-collection>

  <web-resource-name>user</web-resource-name>

  <url-pattern>/*</url-pattern>

  <http-method>POST</http-method>

        <http-method>GET</http-method>

        <http-method>PUT</http-method>

        <http-method>DELETE</http-method>

  </web-resource-collection>

  <auth-constraint>

  <role-name>USER</role-name>

  </auth-constraint>

  </security-constraint>


  <!-- Login method -->

  <login-config>

  <auth-method>FORM</auth-method>

  <realm-name>projecttutorials</realm-name>

  <form-login-config>

  <form-login-page>/login.xhtml</form-login-page>

  <form-error-page>/error.xhtml</form-error-page>

  </form-login-config>

  </login-config>


  <!-- Security roles -->

  <security-role>

  <role-name>USER</role-name>

  </security-role>


</web-app>
</web-app>
 
Zuletzt bearbeitet:

denis7788

Bekanntes Mitglied
Ich habe die Ursache gefunden:
Die css und js Dateien werden über das javax.faces.resource Servlet geladen, wie man auch an der URL im oberen Post sieht. Ich musste das Servlet einfach als Constraint hinzufügen, jetzt funktioniert es wie es soll.

HTML:
  <security-constraint>
      <web-resource-collection>
          <web-resource-name>Resources</web-resource-name>
          <url-pattern>/javax.faces.resource/*</url-pattern>
    </web-resource-collection>
  </security-constraint>
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Form based authentication Allgemeines EE 4
Q Form Based Authentication - Session Attribute ? Allgemeines EE 2
Q Form Based Authentication erweitern? Custom JDBCRealm!?! Allgemeines EE 14
F Form Based Authentication Allgemeines EE 2
K J2EE Security - A JSF based Login Form Allgemeines EE 7
N Unterminated &lt;sf:form tag Allgemeines EE 3
F FORM Auth in JBoss für User mit falscher Rolle ? Allgemeines EE 2
N <h:form id=". wie kommt man an diese Id? Allgemeines EE 2
B JSF - Form. je nach checked Radio um Feld erweitern Allgemeines EE 3
W Eine Form an einen fremden Server schicken. Allgemeines EE 3
A HttpUnit: Form wird nicht submitted Allgemeines EE 4
W Enter in einer Form mit mehreren Submits Allgemeines EE 2
E Seltsames Verhalten bei <form> - Tag und Tomcat Allgemeines EE 8
M STRUTS/Cannot retrieve definition for form bean null on acti Allgemeines EE 4
P Struts Form Bean vs. Session Variable Allgemeines EE 6
R html-form mit bean:write Allgemeines EE 10
clemson [Struts] Innerhalb Action auf form zugreifen Allgemeines EE 4
G Struts-Form: in validate- oder reset-Methode umleiten. Allgemeines EE 3
A Form Validierung mit Struts? Allgemeines EE 2
A struts: html:form-tag das Attribut "name" ersetzen Allgemeines EE 7
T Zwei Buttons in derselben FORM rufen unterschied. Servlets a Allgemeines EE 10
N Authentication/UserPrincipal mit Rest Webservice? Allgemeines EE 6
S Servlet Authentication Filter Allgemeines EE 0
S Principal, Authentication, Security und alles im JBoss 7 Allgemeines EE 16

Ähnliche Java Themen

Neue Themen


Oben