2013-05-21 13 views
18

Mam aplikację Grails z wtyczką spring-security-core i architekturą Atmosphere.Ignoruj ​​połączenie WebSocket w Spring Security SavedRequest

Po wylogowaniu się ze strony, która otworzyła połączenie WebSocket, Spring Security zachowuje adres URL połączenia WebSocket jako SavedRequest.

DEBUG savedrequest.HttpSessionRequestCache - DefaultSavedRequest added to Session: DefaultSavedRequest[http://localhost:8080/formx/formX/update] 
DEBUG savedrequest.HttpSessionRequestCache - DefaultSavedRequest added to Session: DefaultSavedRequest[http://localhost:8080/formx/formX/notifications/?X-Atmosphere-Transport=close&X-Atmosphere-tracking-id=b5d8fde4-d950-41fd-9b49-02e06799a36f&conversationId=988080042] 

pierwszy wpis w dzienniku ma prawidłową wartość SavedRequest, ale jakoś to jest zastępowane przez połączenia Atmosfera websocket.

Jak mogę powiedzieć Spring Security, aby nie używać połączenia Atmosphere WebSocket jako SavedRequest?

Domyślam się, że mogę użyć jakiegoś Atmosphere Protocol Specific Header, aby rozróżnić połączenia.

+1

Co o dodanie „none'security na przewodnika atmosferze: willome

+0

Witaj, Próbuję posprzątać bez odpowiedzi. Rozwiązałeś to? Może możesz odpowiedzieć na własne pytanie. – Neoryder

+0

Nie, niestety nie mam rozwiązania. –

Odpowiedz

0

W konfiguracji Java można ustawić moduł RequestMatcher - wtedy jest to łatwe.

W WebSecurityConfigurerAdapter:

protected void configure(HttpSecurity http) { 
    HttpSessionRequestCache cache = new HttpSessionRequestCache(); //this one is used by default 
    cache.setRequestMatcher(AnyRequestMatcher.INSTANCE); //change the request matcher, so it do not match your Atmosphere requests 
    http.requestCache().requestCache(cache); 
} 
Powiązane problemy