G
Gelöschtes Mitglied 68249
Gast
Hallo,
ich habe eine Primefaces Anwendung. In der Firma wird ein Autologin via ADFS angeboten, welcher auch von unserer Anwendung genutzt werden soll.
Dazu gibt es auf der normalen Login-Seite einen Button zum automatisch anmelden.
Hier mal die login.xhtml:
Wenn man sich normal anmeldet ist alles hübsch, das BlockUI wird eingeblendet, während der Code sich die Benutzergruppen vom AD holt, alles schick.
Wenn man aber auf den Autologin Button klickt, verweist das auf eine leere Seite, welche lediglich eine URL aufbaut und damit ein Redirect ans ADFS macht.
Im Browser stellt sich das aber so dar, dass für eine knappe Sekunde die Login-Seite, aber komplett ohne CSS angezeigt wird.
Jetzt steh ich ein wenig doof da, weil ich nicht weiß, wie ich dieses Verhalten unterbinden soll. Meine Versuche bisher:
ich habe eine Primefaces Anwendung. In der Firma wird ein Autologin via ADFS angeboten, welcher auch von unserer Anwendung genutzt werden soll.
Dazu gibt es auf der normalen Login-Seite einen Button zum automatisch anmelden.
Hier mal die login.xhtml:
HTML:
<h:body>
<f:event listener="#{sessionHandler.checkLoggedIn}" type="preRenderView" />
<p:panel id="loginBasePnl" style="background: transparent;border: 0;">
<p:growl id="msg" showDetail="true" life="3000" />
<p:staticMessage severity="error" summary="WARTUNGSMODUS" detail="#{aduserHandler.sperrmeldungsText}" style="width: 100%"
rendered="#{aduserHandler.sperrmeldung}" />
<p:panel id="loginPnl" header="Login" style="width: 400px;" rendered="#{aduserHandler.autoLoginFade}">
<h:form id="autoLoginForm">
<p:commandButton id="autoLoginButton" action="adfs/adfsRequest.xhtml" value="Automatisch anmelden" update="loginBasePnl"
style="width: 100%;margin-bottom: 20px;" rendered="#{aduserHandler.ssoActive}" />
</h:form>
<h:form id="loginForm">
<h:panelGrid id="loginPanel" columns="2">
<h:outputText value="Username" />
<p:inputText id="username" value="#{aduserHandler.benutzer}"></p:inputText>
<p:spacer></p:spacer>
<p:message for="username"></p:message>
<h:outputText value="Password" />
<p:password id="password" value="#{aduserHandler.passwort}" feedback="false"></p:password>
<p:spacer></p:spacer>
<p:message for="password"></p:message>
<h:outputText value="Domäne" />
<p:inputText id="domain" value="#{aduserHandler.userdomain}"></p:inputText>
<p:spacer></p:spacer>
<p:message for="domain"></p:message>
<p:spacer></p:spacer>
<p:commandButton id="loginButton" action="#{aduserHandler.login}" value="Login" update="loginBasePnl" ajax="true"
style="width: 100%;" />
</h:panelGrid>
</h:form>
</p:panel>
<p:blockUI block="loginPnl" trigger="loginForm:loginButton" style="float:right;">
<p:graphicImage value="resources/images/loader.gif" />
</p:blockUI>
</p:panel>
</h:body>
Wenn man aber auf den Autologin Button klickt, verweist das auf eine leere Seite, welche lediglich eine URL aufbaut und damit ein Redirect ans ADFS macht.
Im Browser stellt sich das aber so dar, dass für eine knappe Sekunde die Login-Seite, aber komplett ohne CSS angezeigt wird.
Jetzt steh ich ein wenig doof da, weil ich nicht weiß, wie ich dieses Verhalten unterbinden soll. Meine Versuche bisher:
- Redirect auf der nächsten Seite erhöht auf eine Sekunde, damit er die Seite wechselt und eben eine leere Seite an zeigt --> Nächste Seite wird nicht angezeigt, Redirect funktioniert allerdings.
- Im loginPanel habe ich ein ein Rendered eingebaut, der boolean soll beim Aufruf einer Funktion geändert werden. Problem dabei, wenn ich die Aktion auf action lasse, dann wird der Boolean in der Oberfläche nicht geändert, wenn ich einen actionListener daraus mache, dann, dann wird der Boolean geändert und alle Elemente ausgeblendet, aber der Redirect funktioniert nicht mehr, wenn ic hbeides mache, dann habe ich wieder diese CSS-lose Hässlichkeit vor mir.