Может ли кто-нибудь объяснить, когда следует переопределять configure(HttpSecurity)
, configure(WebSecurity)
и configure(AuthenticationManagerBuilder)
?
HttpSecurity, WebSecurity и AuthenticationManagerBuilder
Ответ 1
configure (AuthenticationManagerBuilder) используется для создания механизма аутентификации, позволяя легко добавлять AuthenticationProviders: например, Ниже описывается аутентификация в памяти с встроенными входами "пользователь" и "админ".
public void configure(AuthenticationManagerBuilder auth) {
auth
.inMemoryAuthentication()
.withUser("user")
.password("password")
.roles("USER")
.and()
.withUser("admin")
.password("password")
.roles("ADMIN","USER");
}
configure (HttpSecurity) позволяет настроить сетевую безопасность на уровне ресурсов на основе соответствия выбора - например, В приведенном ниже примере ограничиваются URL-адреса, начинающиеся с/admin/для пользователей с ролью ADMIN, и объявляет, что любые другие URL-адреса должны быть успешно аутентифицированы.
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeUrls()
.antMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
}
configure (WebSecurity) используется для параметров конфигурации, которые влияют на глобальную безопасность (игнорируют ресурсы, устанавливают режим отладки, отклоняют запросы, реализуя пользовательское определение брандмауэра). Например, следующий метод приведет к игнорированию любого запроса, начинающегося с /resources/, для целей аутентификации.
public void configure(WebSecurity web) throws Exception {
web
.ignoring()
.antMatchers("/resources/**");
}
Вы можете обратиться к следующей ссылке для получения дополнительной информации Spring Безопасность Предварительный просмотр конфигурации Java: веб-безопасность