Spring Securityによる認証

ナファズベンゼマ:

春のセキュリティで認証を使用する場合、いくつか混乱があります。認証には2つの方法があります。

  1. configureメソッドをオーバーライドする
  2. AuthenticationProviderのBeanインスタンスを実装することにより

それらと、それぞれを使用することの賛否両論の違いは何かを知る必要があります。

1。

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {    
    auth.userDetailsService(userDetailsService);
}

@Bean
public BCryptPasswordEncoder getBCryptPasswordEncoder(){
    return new BCryptPasswordEncoder();
}
@Bean
public AuthenticationProvider authenticationProvider(){
     DaoAuthenticationProvider daoAuthenticationProvider=new DaoAuthenticationProvider();
     daoAuthenticationProvider.setUserDetailsService(userDetailsService);
     daoAuthenticationProvider.setPasswordEncoder(new BCryptPasswordEncoder());
     return daoAuthenticationProvider;
}
カビタカランカナパチッピライ:
  • 春のセキュリティフィルターチェーンが不明な場合は、この回答を参照してください。Spring Securityフィルターチェーンの仕組み

  • これは私がデモLDAP +インメモリ認証を設定したときに最近撮ったスクリーンショットです。

    ここに画像の説明を入力してください

  • As you can see, in the end, we want a type of AuthenticationFilter in our spring security filter chain. That filter is responsible for receiving the login request and decide the if authentication successful or not.

  • AuthenticationFilter has a reference to AuthenticationManger and AuthenticationManger implementation (which is called ProviderManager) does not do authentication directly. Instead AuthenticationManger implementations can have a list of AuthenticationProviders and depend on the type authentication request, it asks the corresponding AuthenticationProvider in its list do the authentication.

  • AuthenticationFilter delegates to AuthenticationManger (.ie ProviderManager) which in turn delegates to one of AuthenticationProvider

  • So here is sample. Just for demo purpose, I am duplicating your authenticationProvider() definition and see how the AuthenticationManger .ie ProviderManager looks

    @Override
    protected void configure(AuthenticationManagerBuilder auth) {
        auth.authenticationProvider(authenticationProvider1())
            .authenticationProvider(authenticationProvider2());
    }

    @Bean("my-auth-provider-1")
    public AuthenticationProvider authenticationProvider1(){
        DaoAuthenticationProvider provider=new DaoAuthenticationProvider();
        provider.setUserDetailsService(userDetailsService());
        return provider;
    }

    @Bean("my-auth-provider-2")
    public AuthenticationProvider authenticationProvider2(){
        DaoAuthenticationProvider provider = new DaoAuthenticationProvider();
        provider.setUserDetailsService(userDetailsService());
        return provider;
    }
  

ここに画像の説明を入力してください

Note

ここで少し簡略化しました。実際にProviderManagerは親も持つことができます。しかし事実上、プロバイダーのリストがあります。https://spring.io/guides/topicals/spring-security-architectureを参照してください

ここに画像の説明を入力してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Spring SecurityおよびJavaConfigで認証するときのPartialResultException

分類Dev

Spring Security + Spring data + MongoDBによる認証

分類Dev

Spring Security Rest APIに対するAndroidデバイスからの認証

分類Dev

Spring Security + Angularでログイン/認証する方法

分類Dev

SpringによるRESTful認証

分類Dev

Spring Securityを使用して、Active Directoryサーバーに対してどのように認証しますか?

分類Dev

Spring SecurityとLDAP認証

分類Dev

Spring Securityで実行時に認証アプローチを切り替える?

分類Dev

Spring Securityを使用したADAMに対するLDAPを使用した認証

分類Dev

FacebookAppでFacebook認証をSpring Securityに統合する

分類Dev

認証後にJSON応答を返すようにSpring Securityを構成する

分類Dev

認証後にURLにアクセスしようとすると、Spring Securityログインの問題が発生する

分類Dev

認証前のSpring Security + Spring Boot MVCインデックスページはHTMLのように見えます

分類Dev

複数の認証によるSpring Security

分類Dev

ユーザーによるSpring Security認証

分類Dev

Spring Security + Spring Sessionで認証をtrueに設定する

分類Dev

Spring BootとOAuth 2によるSpring Security

分類Dev

認証なしでSwagger URLにアクセスできるようにSpring Securityを構成する方法

分類Dev

Spring Security5認証は常に302を返します

分類Dev

Spring Boot + Spring Security:基本認証フォームを抑制する方法

分類Dev

Spring Security / Auth0認証に「ROLE」を追加

分類Dev

Spring Security 5.1.1Spring-security-oauth2認証サーバーに接続するOAuth2クライアント

分類Dev

Spring Security認証プロセスにフックする方法は?

分類Dev

Spring WebFlux Securityで複数の認証方法を実装するにはどうすればよいですか?

分類Dev

neo4jによるSpring認証

分類Dev

Spring Security:エンティティに応じて異なる認証方法

分類Dev

Spring Security:認証userdaoがnull

分類Dev

Spring SecurityでWebSocketの認証をオフにする方法は?

分類Dev

Java Spring Securityでログイン認証が失敗した場合にanonymousUserユーザー名を取得するにはどうすればよいですか?

Related 関連記事

  1. 1

    Spring SecurityおよびJavaConfigで認証するときのPartialResultException

  2. 2

    Spring Security + Spring data + MongoDBによる認証

  3. 3

    Spring Security Rest APIに対するAndroidデバイスからの認証

  4. 4

    Spring Security + Angularでログイン/認証する方法

  5. 5

    SpringによるRESTful認証

  6. 6

    Spring Securityを使用して、Active Directoryサーバーに対してどのように認証しますか?

  7. 7

    Spring SecurityとLDAP認証

  8. 8

    Spring Securityで実行時に認証アプローチを切り替える?

  9. 9

    Spring Securityを使用したADAMに対するLDAPを使用した認証

  10. 10

    FacebookAppでFacebook認証をSpring Securityに統合する

  11. 11

    認証後にJSON応答を返すようにSpring Securityを構成する

  12. 12

    認証後にURLにアクセスしようとすると、Spring Securityログインの問題が発生する

  13. 13

    認証前のSpring Security + Spring Boot MVCインデックスページはHTMLのように見えます

  14. 14

    複数の認証によるSpring Security

  15. 15

    ユーザーによるSpring Security認証

  16. 16

    Spring Security + Spring Sessionで認証をtrueに設定する

  17. 17

    Spring BootとOAuth 2によるSpring Security

  18. 18

    認証なしでSwagger URLにアクセスできるようにSpring Securityを構成する方法

  19. 19

    Spring Security5認証は常に302を返します

  20. 20

    Spring Boot + Spring Security:基本認証フォームを抑制する方法

  21. 21

    Spring Security / Auth0認証に「ROLE」を追加

  22. 22

    Spring Security 5.1.1Spring-security-oauth2認証サーバーに接続するOAuth2クライアント

  23. 23

    Spring Security認証プロセスにフックする方法は?

  24. 24

    Spring WebFlux Securityで複数の認証方法を実装するにはどうすればよいですか?

  25. 25

    neo4jによるSpring認証

  26. 26

    Spring Security:エンティティに応じて異なる認証方法

  27. 27

    Spring Security:認証userdaoがnull

  28. 28

    Spring SecurityでWebSocketの認証をオフにする方法は?

  29. 29

    Java Spring Securityでログイン認証が失敗した場合にanonymousUserユーザー名を取得するにはどうすればよいですか?

ホットタグ

アーカイブ