# Brauche ich da Servletmapping



## DaBe1812 (4. Jan 2023)

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 


			https://meinServer/Anwendung/adfs/adfsResponse.xhtml
		


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:

```
<!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 (4. Jan 2023)

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

```
<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 (5. Jan 2023)

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.


----------



## mihe7 (5. Jan 2023)

DaBe1812 hat gesagt.:


> deine angemerkte Einstellung in der web.xml war schon drin.


Was seltsam ist, da der Fehlercode JSPGxxxx auf JSP statt JSF hindeutet. Aber gut, da müsste man sich jetzt mehr reinhängen und da Du ja eine Lösung gefunden hast -> Deckel druff.


----------

