Brauche ich da Servletmapping

DaBe1812

Bekanntes Mitglied
Hi,
ich arbeite gerade an einer SSO-Lösung mit ADFS. Aufruf vom ADFS klappt aber der Weg zurück ist gerade das Problem.

Im ADFS kann man keine Endungen hinterlegen.
Ich erwarte den Rückweg auf

Wenn ich die Seite ohne das xhtml versuche auf zu rufen, dann sagt mir der Server, dass er sie nicht kennt.
Mein erster versuch mit einem Servlet-Mapping ging in die Hose, weil ich die xhtml als JSP-File hinterlegt hatte und er dann gemeckert hat:
JspTranslationException: /adfs/adfsResponse.xhtml(0,1) --> JSPG0244E: "#{" ist im Schablonentext nicht zulässig.

Vielleicht liegt es auch am Code in der xhtml. Der ist eigentlich recht einfach:
HTML:
<!DOCTYPE html>
<html>
    <head>
        <title>ADFS</title>
        <meta http-equiv="refresh" content="0;url=#{adfshandler.getRedirect(param['SAMLResponse'])}" />
    </head>
    <body>

    </body>
</html>

Vielleicht kann ich auch da ansetzen. Eigentlich möchte ich nur aus dem Aufruf den Parameter SAMLResponse haben und in meinem Code verarbeiten.
Da steht drin ob der User angemeldet ist und ich bekomme noch ein paar Daten aus dem AD, die ich in meiner Anwendung verwenden kann.

Wenn das ADFS zurück gibt, dass alles gut ist, dann soll ein Objekt erstellt werden für die Session und auf die status.xhtml verwiesen werden.
Wenn die Anmeldung nicht geklappt hat, dann soll auf die login.xhtml verwiesen werden.

Vielleicht hab ich auch einfach zu kompliziert oder blöd gedacht und eigentlich lässt sich das ganze viel einfacher lösen.
 

mihe7

Top Contributor
Die Frage wäre erstmal, was Du für eine View-Technologie verwendest/verwenden willst. Sieht mir nach JSF aus. Ab JSF 2.3 wird auch die Endung .xhtml standardmäßig auf das JSF-Servlet gemappt (s. hier), davor brauchst Du einen Eintrag in der web.xml. Wenn Du die Einträge
XML:
<servlet>
  <servlet-name>Faces Servlet</servlet-name>
  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
In der web.xml hast, sollte das jedenfalls klappen.
 

DaBe1812

Bekanntes Mitglied
Hi,

deine angemerkte Einstellung in der web.xml war schon drin.
Ich hab jetzt ein stupides Servlet draus gemacht, funktioniert soweit ganz gut.

Hatte Bedenken wegen CDI, um die Session auf zu bekommen, aber der Test heute hat mich eines Besseren belehrt.

Danke trotzdem für die Kopfgedanken.
 

Ähnliche Java Themen


Oben