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.


$config[zx-auto] not found$config[zx-overlay] not found