Может кто - нибудь объяснить , когда переопределить configure(HttpSecurity)
, configure(WebSecurity)
а configure(AuthenticationManagerBuilder)
?
источник
Может кто - нибудь объяснить , когда переопределить configure(HttpSecurity)
, configure(WebSecurity)
а configure(AuthenticationManagerBuilder)
?
configure (AuthenticationManagerBuilder) используется для установки механизма аутентификации, позволяя легко добавлять AuthenticationProvider: например, следующее определяет аутентификацию в памяти со встроенными логинами «пользователь» и «администратор».
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
.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
}
configure (WebSecurity) используется для параметров конфигурации, которые влияют на глобальную безопасность (игнорировать ресурсы, устанавливать режим отладки, отклонять запросы путем реализации настраиваемого определения брандмауэра). Например, следующий метод приведет к тому, что любой запрос, начинающийся с / resources /, будет проигнорирован для целей аутентификации.
public void configure(WebSecurity web) throws Exception {
web
.ignoring()
.antMatchers("/resources/**");
}
Вы можете обратиться к следующей ссылке для получения дополнительной информации Spring Security Java Config Preview: Web Security
http.authorizeUrls()
, возможно, он был переименованhttp.authorizeRequests()
некоторое время назад.Общее использование
ignoring()
метода WebSecurity не включает Spring Security, и никакие функции Spring Security не будут доступны. WebSecurity основан на HttpSecurity.WebSecurity в приведенном выше примере позволяет Spring игнорировать
/resources/**
и/publics/**
. Поэтому.antMatchers("/publics/**").hasRole("USER")
в HttpSecurity является непродуманным .configure(HttpSecurity)
позволяет настроить веб-безопасность на уровне ресурсов на основе совпадения выбора - например, в приведенном ниже примере ограничиваются URL-адреса, которые начинаются с/admin/
пользователей с ролью ADMIN , и объявляется, что любые другие URL-адреса должны быть успешно аутентифицированы.configure(WebSecurity)
используется для параметров конфигурации, влияющих на глобальную безопасность (игнорировать ресурсы, устанавливать режим отладки, отклонять запросы путем реализации настраиваемого определения брандмауэра). Например, следующий метод приведет к тому, что любой запрос, который начинается с,/resources/
будет игнорироваться для целей аутентификации .SecurityBuilder используется для создания файла
AuthenticationManager
. Позволяет легко встроить аутентификацию памяти, аутентификацию LDAP, аутентификацию на основе JDBC, добавить UserDetailsService и добавить AuthenticationProvider .источник