2010-12-16 8 views
0

Ich entwickle Seam-Anwendung. Für neu erstellte Benutzer gibt es ein spezielles Szenario. Wenn der Benutzeraccount von admin erstellt wird, sollte er das Passwort bei der ersten Anmeldung ändern, damit der Benutzer sein Passwort ändern muss. Auf jeder Seite muss ich kontrollieren, ob er sich zuerst anmeldet oder nicht. Wenn es sich zum ersten Mal anmeldet, sollte ich ihn umleiten, um die Passwort-Seite zu ändern.Umleiten einer anderen Seite beim Laden der Seite in Seam Framework

Ich konnte nicht erfolgreich sein, dieses Problem in Seam Framework zu implementieren.

Haben Sie irgendwelche Ideen dazu?

Antwort

0

Sie können einen Filter implementieren & können dort für neu erstellte Benutzer überprüfen & dann können sie entsprechend umleiten. Stellen Sie ein benutzerdefiniertes URL-Muster bereit, um Anfragen entsprechend zu filtern.

<filter> 
    <filter-name>Seam Filter</filter-name> 
    <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>Seam Filter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
+1

Dies ist nicht wirklich ein guter Ansatz. Dieser Filter wird auf alle Anfragen für alle Benutzer angewendet. –

4

Ich habe zwei Vorschläge. Erste,

Erstellen Sie eine Methode in einer Bean, die zurückgegeben wird, wenn ein Benutzer zum ersten Mal angemeldet. Dann in Ihrem pages.xml,

<page view-id="*"> 
. 
. 

     <navigation from-action="#{identityBean.isFirstLogin()}"> 
      <rule if-outcome="true"> 
       <redirect view-id="/changePasswordPage.xhtml"/> 
      </rule> 
     </navigation> 
    </page> 

zweite ist 'org.jboss.seam.security.loginSuccessful' Ereignis zu verwenden.

@Observer("org.jboss.seam.security.loginSuccessful") 
public void redirectUserToChangePassword() { 

    if (isFirstLogin()) { 

      Redirect redirect = Redirect.instance(); 
      redirect.setViewId("/changePassword.xhtml"); 
      redirect.execute(); 

    } 
} 

Sie können diese Methode jedoch verwenden, wenn Sie Nahtschutz verwenden.

+0

+1 Für den Beobachter Ansatz –

+0

Der erste sieht gut aus, aber es läuft in jeder Anfrage, das ist richtig? – firstthumb

+0

Ja, das stimmt. –

Verwandte Themen