tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
392
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Spamcop Spamcop ist offline Grünschnabel
    Registriert seit
    Apr 2009
    Beiträge
    3
    Hallo zusammen. (:

    Nachdem mir hier schon oft geholfen wurde und ich aber diesmal - leider - nicht fündig wurde, hab ich mich nun doch mal dazu entschlossen, mich zu registrieren.

    Nun, zu meinem Problem:

    Der User loggt sich aus der Applikation aus, er wird auf die Logout-Seite (127.0.0.1:8080/logout.do) weitergeleitet. Das funktioniert auch alles ganz toll. Allerdings möchte ich nun, dass der User auf die Startseite weitergeleitet wird (127.0.0.1:8080/login.do), wenn folgende Punkte zutreffen:

    - der User gibt die 127.0.0.1:8080/logout.do im Browser ein
    - der User ist bereits auf der Logout-Seite und aktualisiert die Seite im Browser

    Habe bzgl. der Logout-Seite folgendes ActionMapping in meiner struts-config.xml eingetragen:

    <action path="/logout" type="bar.foo.struts.action.LogoutAction">
    <forward name="logout" path="/WEB-INF/jsp/logout.jsp" />
    </action>

    Meine LogoutAction.java ist quasi noch jungfräulich... hier hab ich lediglich bisher das stehen:

    [...]
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {

    return mapping.findForward("logout");
    [...]


    Ich hab wirklich keine Ahnung, wo ich ansetzen soll/kann, damit ich mein Vorhaben realisieren kann. :/

    Bin für jeden Vorschlag/Tipp dankbar. :>

    Ciao und schöne Grüße
    Spamcop
     

  2. #2
    Avatar von Franz Degenhardt
    Franz Degenhardt Franz Degenhardt ist offline Mitglied Brokat
    Registriert seit
    Mar 2004
    Ort
    Köln
    Beiträge
    375
    logout.do wird wahrscheinlich aufgerufen, wenn der Benutzer auf den logout button drückt.
    Dann sollte die logoutAction zwei Sachen machen:
    - Zerstören der Session oder Status setzten auf ausgelogt
    - forward zu einer Seite, die erfolgreiches logout anzeigt - logout.jsp.

    Für den Fall, dass logout.do ohne eine Session aufgerufen wird, durch Urleingabe oder browserrefresh, kann dies in logoutAction festgestellt werden.
    Ist der Benutzer nicht im Status eingeloggt oder hat keine gültige Session kann dann nicht auf logout.jsp sondern auf login.jsp geforwardet werden.

    Damit hätte man den direkten Aufruf der action bereinigt. Dass ein Benutzer direkt die logout.jsp aufruft sollte generell verboten werden und nur die Verwendung über die action zugelassen werden (kein mapping für die jsp bereitstellen und dynamischen aufrufe über /servlet/ auch verbieten).
     
    Denken gefärdet die Gewohnheit

  3. #3
    Spamcop Spamcop ist offline Grünschnabel
    Registriert seit
    Apr 2009
    Beiträge
    3
    Hey, hey.

    Also, mein Sourcecode sieht mittlerweile so aus:

    public class LogoutAction extends Action {
    /*
    * Generated Methods
    */

    /**
    * Method execute
    *
    * @param mapping
    * @param form
    * @param request
    * @param response
    * @return ActionForward
    */
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {

    HttpSession session = request.getSession();
    if (session.getAttribute("login.username") == null) {
    return mapping.findForward("showLogin");
    } else {
    session.invalidate();
    session.setAttribute("login.username",null);
    return mapping.findForward("showLogout");
    }
    }
    }

    Wenn der User nicht eingeloggt ist, funktioniert das auch so, wie es soll. Allerdings haut der Logout nicht mehr hin. Die Session wird nicht zerstört... gar nichts. Aber es werden auch keinerlei Fehler geschmissen.

    Any ideas?
     

  4. #4
    Spamcop Spamcop ist offline Grünschnabel
    Registriert seit
    Apr 2009
    Beiträge
    3
    Schubs... hm, wirklich keiner ne Idee?
     

Ähnliche Themen

  1. Servlets forward
    Von oscar33 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 4
    Letzter Beitrag: 04.09.07, 17:07
  2. beim logout online auf offline setzen
    Von Kurt Cobain im Forum PHP
    Antworten: 1
    Letzter Beitrag: 03.08.05, 21:40
  3. [W2000/XP] Batch-Datei beim Logout ausführen
    Von Onkel Schuppig im Forum Microsoft Windows
    Antworten: 8
    Letzter Beitrag: 26.07.05, 08:24
  4. Da Vinci Forward
    Von tawarwaith im Forum Typografie
    Antworten: 3
    Letzter Beitrag: 29.11.04, 09:31
  5. forward
    Von rosmi im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 1
    Letzter Beitrag: 27.05.04, 23:23