17 Gennaio 2022

Trova la risposta a qualsiasi domanda

Expand search form

Cos’è authorizeRequests?

Postato il 9 settembre 2018

Spring boot è venuto con molte caratteristiche utili e per la maggior parte dei soliti casi d’uso abbiamo tutta l’implementazione già fornita da Spring la sua solo una questione di configurazione che suite le nostre esigenze. Una delle caratteristiche è la sicurezza di primavera. Presumo che abbiate una comprensione di base di come funzionano i Servlet Container. Inizieremo con la creazione dell’applicazione di esempio da Spring Initializr. Assicuratevi di selezionare Web e Security nel campo “Search for dependencies”. Una volta scaricato il file zip avrete un’applicazione spring-boot standalone pronta. Si può semplicemente eseguire utilizzando maven con il comando mvn spring-boot:run

Si potrebbe notare che l’applicazione non è venuto con qualsiasi file web.xml che era il file principale che è stato utilizzato per configurare il DispatcherServlet utilizzato da Spring, questo è perché nuovo Servlet API fornisce interfaccia ServletContainerInitializer . Qualsiasi classe che implementa questa interfaccia può configurare tutta la configurazione Servlet al volo, questo permette a Spring di agganciare i nuovi filtri e Servlet da utilizzare dall’applicazione al volo. Questa caratteristica permette di utilizzare il proxy del filtro guidato dalla configurazione per l’autorizzazione e l’autenticazione. Vedremo utili classi e interfacce definite da Spring che fanno autenticazione e autorizzazione.

Qualsiasi configurazione per spring-security inizia con l’estensione di WebSecurityConfigurerAdapter, questa classe astratta fornisce metodi convenienti per configurare la configurazione di sicurezza di primavera utilizzando l’oggetto HTTPSecurity. Vedremo di seguito come utilizzare HTTPSecurity per configurare l’autenticazione e l’autorizzazione per la nostra applicazione

Limitare l’HTTPSecurity solo a url specifici

Si consideri il caso in cui una parte degli URL dell’applicazione web sono accessibili pubblicamente e una parte necessita di un accesso speciale. Per raggiungere questo scopo HTTPSecurity fornisce metodi come indicato di seguito

1. requestMatcher: per abilitare HTTPSecurity per specifici url e specifici metodi http

Se si desidera limitare HTTPSSecurity solo per un modello di url specifico, allora dobbiamo usare requestMatcher.

Il codice di cui sopra autorizzerà qualsiasi POST richiesto che sia autenticato e che corrisponda al pattern /restricted/**

2. antMatcher: Per abilitare HTTPSecurity per uno specifico schema di url indipendentemente da uno specifico metodo http

Se non abbiamo bisogno di limitare alcun metodo HTTP specifico, allora possiamo fare uso di antMatcher come segue

3. requestMatcher: per abilitare HTTPSecurity per più modelli di url per più metodi http

La configurazione precedente abiliterà HTTPSecurity per qualsiasi richiesta GET con modelli di url “/restricgted/get/” e “/restricgted2/get/” e qualsiasi metodo POST con i modelli “/restricgted/post/” e “/restricgted2/post/

Tutti i casi di cui sopra attiveranno HTTPSecurity per matcher specifici, si noti che il metodo authorizeRequests() usato sopra restituisce l’oggetto HTTPsecurity stesso, quindi è possibile saltare la configurazione di requestMatchers o antMatcher e chiamare subito authorizeRequests, che per default disabiliterà qualsiasi filtro e abiliterà HTTPSecurity per tutti gli url invece di quelli filtrati sopra.

Scaviamo più a fondo nelle interfacce importanti che entrano in scena per l’autenticazione di Spring Security

Spring Security si basa su Servlet API Filters per controllare il flusso dell’autenticazione. L’interfaccia principale che è responsabile dell’autenticazione è AuthenticationManager. Questa interfaccia fornisce un singolo metodo authenticate. Questo metodo convalida le credenziali dall’oggetto Authentication passato. Il gestore dell’autenticazione ha generalmente scelto se può restituire l’oggetto Authentication con authenticated=”true” o se può lanciare AuthenticationException se le credenziali non corrispondono. AuthenticationManager non può decidere se restituire null.

AuthenticationManager ha più implementazioni di ProviderManager, il gestore del provider passa l’autenticazione attraverso la catena di AuthenticationProvider. Una volta che un AuthenticationProvider restituisce un valore non nullo, l’autenticazione è contrassegnata come completata. L’autenticazione effettiva avviene nell’implementazione di AuthenticationProvider. Per agganciare AuthenticationProvider personalizzato il WebSecurityConfigurerAdapter fornisce un metodo di aiuto

Il filtro di autenticazione è a conoscenza di quale AuthenticationManager utilizzare per l’autenticazione e durante l’inizializzazione del filtro anche questo AuthenticationManager viene inizializzato. Quando configuriamo l’oggetto httpSecurity tramite WebSecurityConfigurerAdapter, per default viene inizializzato AuthenticationFilter, che fa uso di AuthenticationManager con autenticazione di nome utente e password.

AuthenticationManagerBuilder ha il metodo authenticationProvider che è usato per impostare il provider di autenticazione locale per specifici Se si fornisce l’override questo configurerà il AuthenticationProvider locale che è specifico dell’implementazione di WebSecurityConfigurerAdapter. Per tutti i casi d’uso usuali questo sarebbe sufficiente. Se si desidera configurarlo per globale, è necessario iniettare AuthenticationManagerBuilder globale e chiamare il suo metodo authenticationProvider.

Possiamo fornire più implementazioni di WebSecurityConfigurerAdapter nella singola applicazione per configurare filtri separati che corrispondono a requestMatcher e antMatcher specifici. In ogni implementazione possiamo configurare seperate authenticationProvider utilizzando overriden public configure(AuthenticationManagerBuilder builder) .

Potresti anche essere interessato agli argomenti

Qual è l’uso di WebSecurityConfigurerAdapter?

WebSecurityConfigurerAdapter è una classe di convenienza che permette la personalizzazione sia di WebSecurity che di HttpSecurity. Possiamo estendere WebSecurityConfigurerAdapter più volte (in oggetti distinti) per replicare il comportamento di avere più elementi http.

Continua…

Qual è l’uso di AbstractSecurityWebApplicationInitializer?

Classe AbstractSecurityWebApplicationInitializer Registra il DelegatingFilterProxy per utilizzare la springSecurityFilterChain prima di qualsiasi altro filtro registrato.

Continua…

Come si usano gli antMatcher?

Configurare l’autenticazione come di consueto. Crea un’istanza di WebSecurityConfigurerAdapter che contiene @Order per specificare quale WebSecurityConfigurerAdapter deve essere considerato per primo. L’http.antMatcher afferma che questo HttpSecurity sarà applicabile solo agli URL che iniziano con /api/More items…-Mar 9, 2016

Continua…

Cos’è WebSecurityConfig?

La classe WebSecurityConfig è annotata con @EnableWebSecurity per abilitare il supporto alla sicurezza web di Spring Security e fornire l’integrazione Spring MVC. Estende anche WebSecurityConfigurerAdapter e sovrascrive un paio dei suoi metodi per impostare alcune specifiche della configurazione della sicurezza web.

Continua…

La carta da parati peel and stick è amica degli affittuari?

Il problema, pareti vuote e un contratto d’affitto. Questa opzione autoadesiva è così facile da installare e altrettanto facile da rimuovere, quindi ora non avete nulla che si frapponga tra voi e i vostri sogni di carta da parati. …

Continua…

Si può mettere la carta da parati sulle pareti di un appartamento?

Renter-Friendly Wallpaper Installation – Sì, è possibile installare la carta da parati! … Alcuni di voi ricorderanno che all’inizio di quest’anno ho collaborato con Walls Republic per alcuni progetti di carta da parati: alcune opere d’arte moderna e un baule ricoperto di teli d’erba.

Continua…

La carta da parati peel and stick è un pericolo di incendio?

La carta da parati peel and stick e quella pre-incollata non sono classificate per il fuoco, quindi non contengono un ritardante di fiamma. Quella non incollata è classificata antincendio e non è chiaro se contenga un ritardante di fiamma chimico.

Continua…

Quale classe di filtro è essenziale per la sicurezza della primavera?

Importanti filtri di sicurezza di primavera AnonymousAuthenticationFilter: quando non c’è un oggetto di autenticazione in SecurityContextHolder, crea un oggetto di autenticazione anonimo e lo mette lì. FilterSecurityInterceptor: solleva eccezioni quando l’accesso è negato. ExceptionTranslationFilter: cattura le eccezioni di Spring Security.

Continua…

Cos’è l’autenticazione in Spring Security?

Uno dei modi fondamentali per rendere sicura una risorsa è assicurarsi che il chiamante sia chi dice di essere. Questo processo di controllare le credenziali e assicurarsi che siano autentiche si chiama autenticazione.

Continua…

Cos’è @EnableWebSecurity?

@EnableWebSecurity è un’annotazione di marcatura. Permette a Spring di trovare (è una @Configuration e, quindi, @Component ) e applicare automaticamente la classe alla WebSecurity globale. Se non annoto nessuna delle mie classi con @EnableWebSecurity ancora l’applicazione richiede username e password.

Continua…

Che cosa è @EnableGlobalMethodSecurity?

EnableGlobalMethodSecurity fornisce la sicurezza AOP sui metodi. Alcune delle annotazioni che fornisce sono PreAuthorize , PostAuthorize . Ha anche il supporto per JSR-250. Ci sono più parametri nella configurazione per te. Per le tue esigenze, è meglio mescolare i due.

Continua…

Cos’è WebSecurityConfigurerAdapter in Spring Security?

WebSecurityConfigurerAdapter() Crea un’istanza con la configurazione di default abilitata. protected. WebSecurityConfigurerAdapter(boolean disableDefaults) Crea un’istanza che permette di specificare se la configurazione di default deve essere abilitata.

Continua…

Cos’è un antMatchers in Spring Security?

L’antMatchers() è un metodo HTTP di Springboot utilizzato per configurare i percorsi URL da cui la sicurezza dell’applicazione Springboot dovrebbe consentire le richieste in base ai ruoli dell’utente. … Springboot usa l’antmatchers() per proteggere gli URL legando i modelli che rappresentano gli endpoint dell’applicazione a specifici utenti.

Continua…

Anonymous () è Spring Security?

L’autenticazione anonima di Spring Security ti dà solo un modo più conveniente per configurare i tuoi attributi di controllo dell’accesso. Le chiamate alle API servlet come getCallerPrincipal , per esempio, continueranno a restituire null anche se c’è effettivamente un oggetto di autenticazione anonimo nel SecurityContextHolder .

Continua…

Come coprire la mia carta da parati in affitto?

Come coprire le brutte pareti di un appartamento in affitto Mettete la carta da parati con il peel-and-stick. Crea un rivestimento decorativo per le pareti con pannelli di schiuma. Aggiungere strisce facili da rimuovere alle pareti con il washi. Applicare delle decalcomanie. Appendi un grande pezzo di tessuto. Appendi poster dei tuoi gruppi preferiti, film o opere d’arte.

Continua…

Articolo precedente

Qual è il miglior cibo per cani al miglior prezzo?

Articolo successivo

Cosa fa un capability manager?

You might be interested in …

Quali alberi sempreverdi crescono all’ombra?

CIAO Vorrei poter far crescere un albero sempreverde a crescita rapida, ma all’ombra. Questo è per ottenere la privacy dal ponte che appartiene alla proprietà dietro di me. Ho un terreno argilloso. Ho notato che […]

Come si usa un cric di scarico?

I cric di scarico possono essere uno strumento serio nel tuo arsenale di recupero. Facebook Twitter Email Copia collegamento QUANDO sei nella boscaglia, le cose vanno male – è essenzialmente il motivo per cui stiamo […]