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.










share|improve this question


























    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.










    share|improve this question
























      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.










      share|improve this question













      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






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 21 at 2:03









      Jazzepi

      2,78343462




      2,78343462
























          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 AuthenticationManager is
          ProviderManager, which delegates to a chain of
          AuthenticationProvider instances. An AuthenticationProvider is a
          bit like an AuthenticationManager [...]



          A ProviderManager can support multiple different authentication
          mechanisms in the same application by delegating to a chain of
          AuthenticationProviders. If a ProviderManager doesn’t recognise a
          particular Authentication instance type it will be skipped.



          A ProviderManager has an optional parent, which it can consult if
          all providers return null. If the parent is not available then a null
          Authentication results in an AuthenticationException.




          enter image description here



          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).






          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














             

            draft saved


            draft discarded


















            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

























            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 AuthenticationManager is
            ProviderManager, which delegates to a chain of
            AuthenticationProvider instances. An AuthenticationProvider is a
            bit like an AuthenticationManager [...]



            A ProviderManager can support multiple different authentication
            mechanisms in the same application by delegating to a chain of
            AuthenticationProviders. If a ProviderManager doesn’t recognise a
            particular Authentication instance type it will be skipped.



            A ProviderManager has an optional parent, which it can consult if
            all providers return null. If the parent is not available then a null
            Authentication results in an AuthenticationException.




            enter image description here



            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).






            share|improve this answer



























              up vote
              1
              down vote



              accepted










              From Spring Security Architecture




              The main strategy interface for authentication is
              AuthenticationManager [...]



              The most commonly used implementation of AuthenticationManager is
              ProviderManager, which delegates to a chain of
              AuthenticationProvider instances. An AuthenticationProvider is a
              bit like an AuthenticationManager [...]



              A ProviderManager can support multiple different authentication
              mechanisms in the same application by delegating to a chain of
              AuthenticationProviders. If a ProviderManager doesn’t recognise a
              particular Authentication instance type it will be skipped.



              A ProviderManager has an optional parent, which it can consult if
              all providers return null. If the parent is not available then a null
              Authentication results in an AuthenticationException.




              enter image description here



              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).






              share|improve this answer

























                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 AuthenticationManager is
                ProviderManager, which delegates to a chain of
                AuthenticationProvider instances. An AuthenticationProvider is a
                bit like an AuthenticationManager [...]



                A ProviderManager can support multiple different authentication
                mechanisms in the same application by delegating to a chain of
                AuthenticationProviders. If a ProviderManager doesn’t recognise a
                particular Authentication instance type it will be skipped.



                A ProviderManager has an optional parent, which it can consult if
                all providers return null. If the parent is not available then a null
                Authentication results in an AuthenticationException.




                enter image description here



                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).






                share|improve this answer














                From Spring Security Architecture




                The main strategy interface for authentication is
                AuthenticationManager [...]



                The most commonly used implementation of AuthenticationManager is
                ProviderManager, which delegates to a chain of
                AuthenticationProvider instances. An AuthenticationProvider is a
                bit like an AuthenticationManager [...]



                A ProviderManager can support multiple different authentication
                mechanisms in the same application by delegating to a chain of
                AuthenticationProviders. If a ProviderManager doesn’t recognise a
                particular Authentication instance type it will be skipped.



                A ProviderManager has an optional parent, which it can consult if
                all providers return null. If the parent is not available then a null
                Authentication results in an AuthenticationException.




                enter image description here



                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).







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited yesterday

























                answered yesterday









                Andrew Sasha

                372112




                372112






























                     

                    draft saved


                    draft discarded



















































                     


                    draft saved


                    draft discarded














                    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





















































                    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







                    Popular posts from this blog

                    Dijon

                    Sphinx de Gizeh

                    xlwings: Save and Close