Alguém poderia explicar quando para substituir configure(HttpSecurity)
, configure(WebSecurity)
e configure(AuthenticationManagerBuilder)
?
fonte
Alguém poderia explicar quando para substituir configure(HttpSecurity)
, configure(WebSecurity)
e configure(AuthenticationManagerBuilder)
?
configure (AuthenticationManagerBuilder) é usado para estabelecer um mecanismo de autenticação, permitindo que AuthenticationProviders sejam adicionados facilmente: por exemplo, o seguinte define a autenticação na memória com os logins embutidos de 'usuário' e 'admin'.
public void configure(AuthenticationManagerBuilder auth) {
auth
.inMemoryAuthentication()
.withUser("user")
.password("password")
.roles("USER")
.and()
.withUser("admin")
.password("password")
.roles("ADMIN","USER");
}
configure (HttpSecurity) permite a configuração de segurança baseada na web em um nível de recurso, com base em uma combinação de seleção - por exemplo, o exemplo abaixo restringe os URLs que começam com / admin / para usuários que têm função ADMIN e declara que quaisquer outros URLs precisam ser autenticado com sucesso.
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
}
configure (WebSecurity) é usado para configurações que impactam a segurança global (ignorar recursos, definir modo de depuração, rejeitar solicitações implementando uma definição de firewall personalizada). Por exemplo, o método a seguir faria com que qualquer solicitação que comece com / resources / fosse ignorada para fins de autenticação.
public void configure(WebSecurity web) throws Exception {
web
.ignoring()
.antMatchers("/resources/**");
}
Você pode consultar o link a seguir para obter mais informações Spring Security Java Config Preview: Web Security
http.authorizeUrls()
, talvez ele tenha sido renomeado parahttp.authorizeRequests()
algum tempo atrás.O uso geral do
ignoring()
método WebSecurity omite o Spring Security e nenhum dos recursos do Spring Security estará disponível. WebSecurity é baseado em HttpSecurity.WebSecurity no exemplo acima permite que o Spring ignore
/resources/**
e/publics/**
. Portanto, o.antMatchers("/publics/**").hasRole("USER")
em HttpSecurity não é considerado .configure(HttpSecurity)
permite a configuração de segurança baseada na web em um nível de recurso , com base em uma correspondência de seleção - por exemplo, O exemplo abaixo restringe os URLs que começam com/admin/
para usuários que têm função ADMIN e declara que quaisquer outros URLs precisam ser autenticados com sucesso.configure(WebSecurity)
é usado para definições de configuração que afetam a segurança global (ignorar recursos, definir modo de depuração, rejeitar solicitações implementando uma definição de firewall personalizada). Por exemplo, o método a seguir faria com que qualquer solicitação iniciada com/resources/
seja ignorada para fins de autenticação .SecurityBuilder usado para criar um
AuthenticationManager
. Permite criar facilmente autenticação de memória, autenticação LDAP, autenticação baseada em JDBC, adicionando UserDetailsService e adicionando AuthenticationProvider's .fonte