What is the difference between registering an authenticationprovider with HttpSecurity vs...
up vote
0
down vote
favorite
WebSecurityConfigurerAdapter offers two overrides as follows:
protected void configure(AuthenticationManagerBuilder auth)
and
protected void configure(HttpSecurity http)
Both HttpSecurity and AuthenticationManagerBuilder offer registration for authenticationProviders. Is there any difference between registering my providers with one vs the other?
I'm also using Spring boot 2.1 with @SpringBootApplication(exclude = SecurityAutoConfiguration.class) to turn off their autoconfig completely.
spring-boot spring-security
add a comment |
up vote
0
down vote
favorite
WebSecurityConfigurerAdapter offers two overrides as follows:
protected void configure(AuthenticationManagerBuilder auth)
and
protected void configure(HttpSecurity http)
Both HttpSecurity and AuthenticationManagerBuilder offer registration for authenticationProviders. Is there any difference between registering my providers with one vs the other?
I'm also using Spring boot 2.1 with @SpringBootApplication(exclude = SecurityAutoConfiguration.class) to turn off their autoconfig completely.
spring-boot spring-security
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
WebSecurityConfigurerAdapter offers two overrides as follows:
protected void configure(AuthenticationManagerBuilder auth)
and
protected void configure(HttpSecurity http)
Both HttpSecurity and AuthenticationManagerBuilder offer registration for authenticationProviders. Is there any difference between registering my providers with one vs the other?
I'm also using Spring boot 2.1 with @SpringBootApplication(exclude = SecurityAutoConfiguration.class) to turn off their autoconfig completely.
spring-boot spring-security
WebSecurityConfigurerAdapter offers two overrides as follows:
protected void configure(AuthenticationManagerBuilder auth)
and
protected void configure(HttpSecurity http)
Both HttpSecurity and AuthenticationManagerBuilder offer registration for authenticationProviders. Is there any difference between registering my providers with one vs the other?
I'm also using Spring boot 2.1 with @SpringBootApplication(exclude = SecurityAutoConfiguration.class) to turn off their autoconfig completely.
spring-boot spring-security
spring-boot spring-security
asked Nov 21 at 2:03
Jazzepi
2,78343462
2,78343462
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
accepted
From Spring Security Architecture
The main strategy interface for authentication is
AuthenticationManager[...]
The most commonly used implementation of
AuthenticationManageris
ProviderManager, which delegates to a chain of
AuthenticationProviderinstances. AnAuthenticationProvideris a
bit like anAuthenticationManager[...]
A
ProviderManagercan support multiple different authentication
mechanisms in the same application by delegating to a chain of
AuthenticationProviders. If aProviderManagerdoesn’t recognise a
particularAuthenticationinstance type it will be skipped.
A
ProviderManagerhas an optional parent, which it can consult if
all providers return null. If the parent is not available then a null
Authenticationresults in anAuthenticationException.

Generally speaking WebSecurityConfigurerAdapter provides configuration for HttpSecurity apart from Filter's configuration (like UsernamePasswordAuthenticationFilter, LogoutFilter etc.) it's also creates and configures (adding AuthenticationProviders and parent AuthenticationManager) AuthenticationManagers in HttpSecurity by using AuthenticationManagerBuilder.
WebSecurityConfigurerAdapter will create only one AuthenticationManager for HttpSecurity. However AuthenticationManager has its own AuthenticationProviders and its own optional parent AuthenticationProvider. When you are doing http.authenticationProvider(...) you are adding new AuthenticationProvider to the AuthenticationManager which belong to that http. By using configure(AuthenticationManagerBuilder auth) you are configuring AuthenticationManager which is the parent of the AuthenticationManager which belongs to that particular HttpSecurity.
Spring is providing default configuration for the parent of that particular AuthenticationManager, but by using configure(AuthenticationManagerBuilder auth) you are rejecting spring's configuration in favour of your (auth).
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
From Spring Security Architecture
The main strategy interface for authentication is
AuthenticationManager[...]
The most commonly used implementation of
AuthenticationManageris
ProviderManager, which delegates to a chain of
AuthenticationProviderinstances. AnAuthenticationProvideris a
bit like anAuthenticationManager[...]
A
ProviderManagercan support multiple different authentication
mechanisms in the same application by delegating to a chain of
AuthenticationProviders. If aProviderManagerdoesn’t recognise a
particularAuthenticationinstance type it will be skipped.
A
ProviderManagerhas an optional parent, which it can consult if
all providers return null. If the parent is not available then a null
Authenticationresults in anAuthenticationException.

Generally speaking WebSecurityConfigurerAdapter provides configuration for HttpSecurity apart from Filter's configuration (like UsernamePasswordAuthenticationFilter, LogoutFilter etc.) it's also creates and configures (adding AuthenticationProviders and parent AuthenticationManager) AuthenticationManagers in HttpSecurity by using AuthenticationManagerBuilder.
WebSecurityConfigurerAdapter will create only one AuthenticationManager for HttpSecurity. However AuthenticationManager has its own AuthenticationProviders and its own optional parent AuthenticationProvider. When you are doing http.authenticationProvider(...) you are adding new AuthenticationProvider to the AuthenticationManager which belong to that http. By using configure(AuthenticationManagerBuilder auth) you are configuring AuthenticationManager which is the parent of the AuthenticationManager which belongs to that particular HttpSecurity.
Spring is providing default configuration for the parent of that particular AuthenticationManager, but by using configure(AuthenticationManagerBuilder auth) you are rejecting spring's configuration in favour of your (auth).
add a comment |
up vote
1
down vote
accepted
From Spring Security Architecture
The main strategy interface for authentication is
AuthenticationManager[...]
The most commonly used implementation of
AuthenticationManageris
ProviderManager, which delegates to a chain of
AuthenticationProviderinstances. AnAuthenticationProvideris a
bit like anAuthenticationManager[...]
A
ProviderManagercan support multiple different authentication
mechanisms in the same application by delegating to a chain of
AuthenticationProviders. If aProviderManagerdoesn’t recognise a
particularAuthenticationinstance type it will be skipped.
A
ProviderManagerhas an optional parent, which it can consult if
all providers return null. If the parent is not available then a null
Authenticationresults in anAuthenticationException.

Generally speaking WebSecurityConfigurerAdapter provides configuration for HttpSecurity apart from Filter's configuration (like UsernamePasswordAuthenticationFilter, LogoutFilter etc.) it's also creates and configures (adding AuthenticationProviders and parent AuthenticationManager) AuthenticationManagers in HttpSecurity by using AuthenticationManagerBuilder.
WebSecurityConfigurerAdapter will create only one AuthenticationManager for HttpSecurity. However AuthenticationManager has its own AuthenticationProviders and its own optional parent AuthenticationProvider. When you are doing http.authenticationProvider(...) you are adding new AuthenticationProvider to the AuthenticationManager which belong to that http. By using configure(AuthenticationManagerBuilder auth) you are configuring AuthenticationManager which is the parent of the AuthenticationManager which belongs to that particular HttpSecurity.
Spring is providing default configuration for the parent of that particular AuthenticationManager, but by using configure(AuthenticationManagerBuilder auth) you are rejecting spring's configuration in favour of your (auth).
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
From Spring Security Architecture
The main strategy interface for authentication is
AuthenticationManager[...]
The most commonly used implementation of
AuthenticationManageris
ProviderManager, which delegates to a chain of
AuthenticationProviderinstances. AnAuthenticationProvideris a
bit like anAuthenticationManager[...]
A
ProviderManagercan support multiple different authentication
mechanisms in the same application by delegating to a chain of
AuthenticationProviders. If aProviderManagerdoesn’t recognise a
particularAuthenticationinstance type it will be skipped.
A
ProviderManagerhas an optional parent, which it can consult if
all providers return null. If the parent is not available then a null
Authenticationresults in anAuthenticationException.

Generally speaking WebSecurityConfigurerAdapter provides configuration for HttpSecurity apart from Filter's configuration (like UsernamePasswordAuthenticationFilter, LogoutFilter etc.) it's also creates and configures (adding AuthenticationProviders and parent AuthenticationManager) AuthenticationManagers in HttpSecurity by using AuthenticationManagerBuilder.
WebSecurityConfigurerAdapter will create only one AuthenticationManager for HttpSecurity. However AuthenticationManager has its own AuthenticationProviders and its own optional parent AuthenticationProvider. When you are doing http.authenticationProvider(...) you are adding new AuthenticationProvider to the AuthenticationManager which belong to that http. By using configure(AuthenticationManagerBuilder auth) you are configuring AuthenticationManager which is the parent of the AuthenticationManager which belongs to that particular HttpSecurity.
Spring is providing default configuration for the parent of that particular AuthenticationManager, but by using configure(AuthenticationManagerBuilder auth) you are rejecting spring's configuration in favour of your (auth).
From Spring Security Architecture
The main strategy interface for authentication is
AuthenticationManager[...]
The most commonly used implementation of
AuthenticationManageris
ProviderManager, which delegates to a chain of
AuthenticationProviderinstances. AnAuthenticationProvideris a
bit like anAuthenticationManager[...]
A
ProviderManagercan support multiple different authentication
mechanisms in the same application by delegating to a chain of
AuthenticationProviders. If aProviderManagerdoesn’t recognise a
particularAuthenticationinstance type it will be skipped.
A
ProviderManagerhas an optional parent, which it can consult if
all providers return null. If the parent is not available then a null
Authenticationresults in anAuthenticationException.

Generally speaking WebSecurityConfigurerAdapter provides configuration for HttpSecurity apart from Filter's configuration (like UsernamePasswordAuthenticationFilter, LogoutFilter etc.) it's also creates and configures (adding AuthenticationProviders and parent AuthenticationManager) AuthenticationManagers in HttpSecurity by using AuthenticationManagerBuilder.
WebSecurityConfigurerAdapter will create only one AuthenticationManager for HttpSecurity. However AuthenticationManager has its own AuthenticationProviders and its own optional parent AuthenticationProvider. When you are doing http.authenticationProvider(...) you are adding new AuthenticationProvider to the AuthenticationManager which belong to that http. By using configure(AuthenticationManagerBuilder auth) you are configuring AuthenticationManager which is the parent of the AuthenticationManager which belongs to that particular HttpSecurity.
Spring is providing default configuration for the parent of that particular AuthenticationManager, but by using configure(AuthenticationManagerBuilder auth) you are rejecting spring's configuration in favour of your (auth).
edited yesterday
answered yesterday
Andrew Sasha
372112
372112
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53404327%2fwhat-is-the-difference-between-registering-an-authenticationprovider-with-httpse%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown