Egyéni szűrő a tavaszi biztonsági szűrő láncban
1. Áttekintés
Ebben a rövid cikkben arra összpontosítunk, hogy egyéni szűrőt írjunk a Spring Security szűrőlánchoz.
2. A szűrő létrehozása
A Spring Security alapértelmezés szerint számos szűrőt biztosít, és ezek legtöbbször elegendőek.
De természetesen néha szükség van új funkcionalitások bevezetésére egy új szűrő létrehozásával, amelyet használni lehet a láncban.
Kezdjük a org.springframework.web.filter.GenericFilterBean.
A GenericFilterBean egy egyszerű javax.servlet.Szűrő a megvalósítás megvalósítása, amely a tavasz tudatában van.
A megvalósításról - csak egyetlen módszert kell végrehajtanunk:
a public class CustomFilter kiterjeszti a GenericFilterBean {@Override public void doFilter (ServletRequest kérés, ServletResponse válasz, FilterChain lánc) dobja az IOException, ServletException {chain.doFilter (kérés, válasz); }}
3. A Szűrő használata a Biztonsági konfigurációban
Szabadon választhatunk XML vagy Java konfigurációt, hogy a szűrőt bekerítsük a Spring Security konfigurációba.
3.1. Java konfiguráció
A szűrőt programozottan felülírhatja a Beállítás módszer től WebSecurityConfigurerAdapter. Például a addFilterAfter módszer a HttpBiztonság példa:
A @Configuration public class CustomWebSecurityConfigurerAdapter kiterjeszti a WebSecurityConfigurerAdapter {@Orride védett void konfigurációját (HttpSecurity http) dobja a {http.addFilterAfter (new CustomFilter (), BasicAuthenticationFilter.class) Kivételt; }}
Pár lehetséges módszer létezik:
- addFilterBefore (szűrő, osztály) - hozzáteszi a szűrő a megadott szűrő helyzete előtt osztály
- addFilterAfter (szűrő, osztály) - teszi hozzá a szűrő a megadott szűrő pozíciója után osztály
- addFilterAt (szűrő, osztály) - teszi hozzá a szűrő a megadott szűrő helyén osztály
- addFilter (szűrő) - teszi hozzá a szűrő ennek a Spring Security által biztosított szűrők egyikének kell lennie, vagy ki kell terjesztenie azt
3.2. XML konfiguráció
A szűrővel hozzáadhatja a láncot a egyedi szűrő címke és ezek egyike a szűrő pozíciójának megadásához. Például a utána tulajdonság:
Itt található az összes attribútum, hogy pontosan megadhassa a szűrő helyét a veremben:
- utána - leírja a szűrőt, amely után egy egyedi szűrő kerül a láncba
- előtt - meghatározza azt a szűrőt, amely előtt a szűrőnket a láncba kell helyezni
- pozíció - lehetővé teszi a normál szűrő explicit helyzetben történő helyettesítését egy egyedi szűrővel
4. Következtetés
Ebben a rövid cikkben létrehoztunk egy egyedi szűrőt, és bekötöttük a Spring Security szűrő láncába.
Mint mindig, minden kódpélda elérhető a Github mintaprojektben.