2013-05-21 24 views
18

Tôi có một ứng dụng Grails với plugin bảo mật lõi-xuân và khung Atmosphere.Bỏ qua kết nối WebSocket trong Bảo mật mùa xuân SavedRequest

Nếu tôi đăng xuất khỏi một trang đã mở kết nối WebSocket, thì Spring Security sẽ giữ URL của kết nối WebSocket là 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] 

Mục nhập đầu tiên trong nhật ký có giá trị đúng cho SavedRequest, nhưng bằng cách nào đó nó được ghi đè bằng kết nối Atmosphere WebSocket.

Làm cách nào để yêu cầu Spring Security không sử dụng kết nối WebSocket Atmosphere như SavedRequest?

Tôi đoán tôi có thể sử dụng một số Atmosphere Protocol Specific Header để phân biệt các kết nối.

+1

gì về việc thêm 'none'security trên handler Atmosphere: willome

+0

Xin chào, Đang cố dọn dẹp chưa được trả lời. Bạn đã giải quyết điều này? Có lẽ bạn có thể trả lời câu hỏi của riêng bạn. – Neoryder

+0

Không, thật không may là tôi không có giải pháp. –

Trả lời

0

Trong cấu hình Java, bạn có thể đặt RequestMatcher - sau đó thật dễ dàng.

Trong 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); 
} 
Các vấn đề liên quan