Prilagođeni filtar u proljetnom lancu sigurnosnih filtara

1. Pregled

U ovom ćemo se brzom članku usredotočiti na pisanje prilagođenog filtra za lanac filtara Spring Security.

2. Izrada filtra

Spring Security prema zadanim postavkama nudi brojne filtre, a većinu vremena to je dovoljno.

Ali naravno da je ponekad potrebno implementirati novu funkcionalnost sa stvaranjem novog filtra koji će se koristiti u lancu.

Počet ćemo s implementacijom org.springframework.web.filter.GenericFilterBean.

The GenericFilterBean je jednostavan javax.servlet.Filter implementacija implementacije koja je svjesna Proljeća.

Što se tiče implementacije - trebamo primijeniti samo jednu metodu:

javna klasa CustomFilter proširuje GenericFilterBean {@Override javna praznina doFilter (zahtjev ServletRequest, odgovor ServletResponse, lanac FilterChain) baca IOException, ServletException {chain.doFilter (zahtjev, odgovor); }}

3. Korištenje filtra u sigurnosnoj konfiguraciji

Slobodni smo odabrati XML ili Java konfiguraciju za povezivanje filtra u Spring Security konfiguraciju.

3.1. Java konfiguracija

Možete registrirati filtar programski nadjačavajući konfigurirati metoda iz WebSecurityConfigurerAdapter. Na primjer, radi s addFilterAfter metoda na a HttpSecurity primjer:

@Configuration javna klasa CustomWebSecurityConfigurerAdapter proširuje WebSecurityConfigurerAdapter {@Override zaštićena void konfiguracija (HttpSecurity http) baca izuzetak {http.addFilterAfter (novi CustomFilter (), BasicAuthenticationFilter.class); }} 

Postoji nekoliko mogućih metoda:

  • addFilterBefore (filter, klasa) - dodaje a filtar prije položaja navedenog filtra razred
  • addFilterAfter (filtar, klasa) - dodaje a filtar nakon položaja navedenog filtra razred
  • addFilterAt (filtar, klasa) - dodaje a filtar na mjestu navedenog filtra razred
  • addFilter (filtar) - dodaje a filtar to mora biti instanca ili proširiti jedan od filtara koje pruža Spring Security

3.2. XML konfiguracija

Možete dodati filtar lancu pomoću prilagođeni filtar i jedno od ovih imena za određivanje položaja vašeg filtra. Na primjer, na to može ukazati nakon atribut:

Evo svih atributa za točno određivanje mjesta vašeg filtra u stogu:

  • nakon - opisuje filtar odmah nakon čega će se prilagođeni filtar staviti u lanac
  • prije - definira filter prije kojeg bi naš filter trebao biti smješten u lanac
  • položaj - omogućuje zamjenu standardnog filtra u eksplicitnom položaju prilagođenim filtrom

4. Zaključak

U ovom smo kratkom članku stvorili prilagođeni filtar i povezali ga u lanac filtara Spring Security.

Kao i uvijek, svi primjeri koda dostupni su u primjeru Github projekta.


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