# url-pattern



## MQue (25. Nov 2009)

Hallo,

ich verwende die Spring- Security- Konfig unten und die Filter in der web.xml ganz unten. Wenn ich mich mit dem (ersten) Browser mit dem Server verbinde, klappt aller wunderbar, ich bekomme als erstes die index.jsp - Seite, in der ich mich einlogge und dann komme ich zur Hauptseite.

Wenn ich jetzt eine zweites Browserfenster öffne und das selbe mache, dann kann es ab und zu vorkommen, dass mir nach dem einloggen (also wenn ich schon auf der Hauptseite bin und etwas anklicke -> Kommunikation funktioniert mit AJAX -> POST) die index.jsp Seite als response gesendet wird, obwohl der Request eigentlich an ein Servlet geht und nichts mit index.jsp oder frame.jsp zu tun hat.
Vielleicht kann mir da jemand weiterhelfen.
Besten Dank,




[XML]
<http auto-config='true'>                                                                                       
                <intercept-url pattern='/index.jsp' access="IS_AUTHENTICATED_ANONYMOUSLY" requires-channel="https" />  
                <intercept-url pattern='/**' access='ROLE_USER' requires-channel="any" />
                <form-login login-page='/index.jsp' default-target-url='/frame.jsp' always-use-default-target='true' />     
            </http>
            <authentication-provider> 
[/XML] 

[XML]
<filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>  // mir ist nicht ganz klar was ich da herschreiben muss, vielleicht
liegt hier der Fehler, kann ich da auch mehrere Seiten angeben (z.B.: index.jsp und frame.jsp),
damit ich zur Hauptseite komme und dann nichtmehr die index.jsp per AJAX gesendet bekomme?
    </filter-mapping>
[/XML]


----------



## MQue (26. Nov 2009)

ich habs befürchtet, dass dieses Problem noch keiner gehabt hat.


----------



## bronks (26. Nov 2009)

MisterQ hat gesagt.:


> ... Wenn ich jetzt eine zweites Browserfenster öffne und das selbe mache, dann kann es ab und zu vorkommen ...


Kann es sein, daß Du mit Browser den Firefox meinst?


----------



## MQue (26. Nov 2009)

bronks hat gesagt.:


> Kann es sein, daß Du mit Browser den Firefox meinst?



Ja genau, Firefox 3.0.15, An dem kanns ja nicht liegen, oder?
Beste Grüße,


----------



## bronks (26. Nov 2009)

MisterQ hat gesagt.:


> Ja genau, Firefox 3.0.15, An dem kanns ja nicht liegen, oder?
> Beste Grüße,


Doch daran liegt es, da sich, für mein Verständnis, Firefox nicht richtig verhält und Spring nicht damit zurecht kommt. Das Problem liegt darin, daß Du zwar mehrere Fenster von Firefox siehst, aber letzendlich nur eine Instanz davon läuft. Der MSIE macht diese Probleme nicht.


----------



## MQue (26. Nov 2009)

Und an was liegt das genau?
Ich beschreibe mein Problem nochmal:

Wenn ich mich eingeloggt habe, dann gelange ich auf die Hauptseite meiner Webanwendung, wenn ich dann einen Button klicke, dann startet eine asynchrone AJAX- Kommunikation, welche mir Werte vom Server holt (value1=23.4&value2=554.5&...), wenn ich dann einen zweiten Button klicke, dann wird die AJAX- Kommunikation beendet. dann warte ich eine Weile (1 Minute) und dann starte ich die AJAX- Kommunikation wieder und bekomme aber als Antwort nicht value1=23.4&value2=554.5&... sondern eben die login.jsp  HTML- Page -> also die login- Seite als AJAX- response zurück. 

Also es ist egal, ob ich 2 BrowserFenser offen habe oder nur einen und das dann so mache, wie oben beschrieben, Ich habs jetzt auch mit dem Opera versucht mit dem gleichen verhalten.

Das ist mir überhaupt nicht klar wo da der Fehler liegen soll, es hat sich ja eigentlich nichts geändert. 
Wo könnte da das Problem liegen?

Besten Dank,
lg


----------



## bronks (26. Nov 2009)

MisterQ hat gesagt.:


> Und an was liegt das genau? ...


Das liegt daran, daß Du zweimal, also in zwei Firefox Fenstern, mit nur einer einzigen Sitzung auf der Applikation herumreitest. Das kann zu den lustigsten Problemen führen. 

Ich kenne Spring nicht, aber kann mir vorstellen, daß SpringSecurity in diesem Fall einen Verdacht auf SessionHijacking schöpft und Dich knallhart aus der App rauswirft.


----------



## MQue (26. Nov 2009)

Das interessante ist ja, dass es auch mit einem offenen Browserfenster vorkommt, dass nach einer längeren Inaktivität bzgl. AJAX- Requests ich beim ersten Request nach der "Inaktivität" wieder die login- Seite zugesendet bekomme.
Kann man da ein Timeout bei der Spring Security einstellen oder was macht man in so einem Fall,
lg


----------



## MQue (26. Nov 2009)

Ein paar Stunden und eine TestApplikation mehr und ich hab wieder was gelernt.
Besten Dank für die Unterstützung.
lg


----------



## MQue (26. Nov 2009)

Also, wenn die Session (HttpSession) abgelaufen ist, dann kappiert das Spring Security und bei der nächsten AJAX- Anfrage wird eben die Login- Page an den Client zurückgesendet,
Bei mir ist es daran gescheitert, dass ich nicht wusste, das Spring Security das mitbekommt,
jetzt weiß ichs, es erscheint mir auch logisch .
meine Frage wäre jetzt noch, wie macht ihr das, wenn ihr per AJAX den Code für die Login- Page nach ablauf der Session zurückbekommt, was fängt man damit an ... um diese anzuzeigen ist ja einiges an JavaScript- Code nötig. Kann ich den empfangenen Code irgendwie pushen, damit dieser Angeizeigt wird??
Beste Grüße,


----------



## MQue (26. Nov 2009)

OK, hab ich mit JavaScript erledigt, da ist Spring auf jeden Fall noch ausbaufähig,
Besten Dank und beste Grüße,
MQ


----------

