Hỏi về cách hoạt động của Filter trong Spring Security
Hi xin chào mọi người!
Khi làm việc với Spring Security thì mặc định sẽ có hàng loạt các filter liên tiếp nhau có nhiệm vụ Authentication và Authorization các request.Vậy khi chúng ta muốn sử dụng custom filter thì chúng ta phải config các addFilter, addFilterBefore, addFilterAfter.
Em có một câu hỏi muốn hỏi mọi người là:
TH1: Khi dùng addFilter thì custom filter sẽ vị trí nào trong dãy các filter của Spring Security?
TH2: Khi dùng addFilterBefore hay addFilterAfter thì filter được chỉ định mà custom filter đứng trước hoặc sau có hoạt động hay không (Với TH Before em có thắc mắc là khi custom filter được chạy thì nó sẽ thay thế filter được chỉ định hay khi nó chạy xong thì filter chỉ định phải chạy 1 lần nữa )?
Em cám ơn mọi người !
springsecurity
Remain: 5
3 Answers
tvd12
Enlightened
tvd12
Enlightened
Cách đơn giản nhất là em vào thẳng source code đọc em sẽ thây hàm: addFilter và các hàm addFilterBefore, addFilterAfter và hàm performBuild nên khi mà em addFilterBefore, addFilterAfter bản chất là nó sẽ cấp cho mỗi thằng 1 cái order, đến khi build nó sẽ sort theo order đó. Vậy nên:
- TH1 em sẽ khó có thể biết filter em add vào sẽ nằm ở index bao nhiêu và khi nào được chạy
- anh chưa hiểu ý em, nhưng em cứ add filter vào là nó sẽ chạy em ạ
-
0
Hihi
Teacher
Hihi
Teacher
Cám ơn anh đã trả lời.Xin lỗi anh vì cách diễn đạt của em khó hiểu.
TH 2 của em là :
- Em có 1 customFilter extends UsernamePasswordAuthenticationFilter
- Sau đó em dùng hàm addFilterBefore(customFilter,UsernamePasswordAuthenticationFilter.class)
Theo em hiểu đơn giản là customFilter được gọi trước vì nó ở phía trước UsernamePasswordAuthenticationFilter mặc định -> UsernamePasswordAuthenticationFilter mặc định ở phía sau có được gọi lần nữa không ạ hay customFilter sẽ thay thế luôn UsernamePasswordAuthenticationFilter ạ ?
P/s: Tại cái khái niệm add trước,add sau của Spring security làm em khó hiểu quá a ạ :(
-
0