Vlastný filter v reťazci bezpečnostného filtra na jar

1. Prehľad

V tomto rýchlom článku sa zameriame na napísanie vlastného filtra pre reťazec filtrov Spring Security.

2. Vytvorenie filtra

Spring Security štandardne poskytuje množstvo filtrov a väčšinou ich stačí.

Ale samozrejme je niekedy potrebné implementovať novú funkčnosť s vytvorením nového filtra, ktorý sa použije v reťazci.

Začneme implementáciou org.springframework.web.filter.GenericFilterBean.

The GenericFilterBean je jednoduchý javax.servlet.Filter implementácia, ktorá si je vedomá jari.

Pokiaľ ide o implementáciu, musíme implementovať iba jednu metódu:

public class CustomFilter extends GenericFilterBean {@Override public void doFilter (ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {chain.doFilter (request, response); }}

3. Používanie filtra v konfigurácii zabezpečenia

Môžeme si zvoliť buď konfiguráciu XML, alebo konfiguráciu Java, aby sme filter zapojili do konfigurácie Spring Security.

3.1. Konfigurácia Java

Filter môžete zaregistrovať programovo tak, že prepíšete konfigurovať metóda z WebSecurityConfigurerAdapter. Funguje to napríklad s addFilterAfter metóda na a HttpSecurity inštancia:

@Configuration verejná trieda CustomWebSecurityConfigurerAdapter rozširuje WebSecurityConfigurerAdapter {@Override protected void configure (HttpSecurity http) vyvolá výnimku {http.addFilterAfter (nový CustomFilter (), BasicAuthenticationFilter.class); }} 

Existuje niekoľko možných metód:

  • addFilterBefore (filter, trieda) - dodáva a filter pred pozíciou určeného filtra trieda
  • addFilterAfter (filter, trieda) - dodáva a filter za pozíciou určeného filtra trieda
  • addFilterAt (filter, trieda) - dodáva a filter na mieste určeného filtra trieda
  • addFilter (filter) - dodáva a filter to musí byť inštancia alebo rozšírenie jedného z filtrov poskytovaných Spring Security

3.2. Konfigurácia XML

Filter môžete pridať do reťaze pomocou custom-filter značka a jeden z týchto mien na určenie polohy filtra. Napríklad na to môže poukázať po atribút:

Tu sú všetky atribúty, aby ste presne určili miesto filtra v zásobníku:

  • po - popisuje filter, okamžite po ktorom bude do reťazca vložený vlastný filter
  • predtým - definuje filter, pred ktorý by mal byť náš filter umiestnený v reťazci
  • pozíciu - umožňuje nahradiť štandardný filter v explicitnej polohe vlastným filtrom

4. Záver

V tomto rýchlom článku sme vytvorili vlastný filter a zapojili sme ho do reťazca filtrov Spring Security.

Všetky ukážky kódu sú ako vždy dostupné vo vzorovom projekte Github.


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