SpringBootの除外自動設定
2022-02-27 17:32:43
SpringBootの自動構成は、私たちの開発に大きな利便性をもたらしましたが、時には問題ももたらしました。
問題のシナリオ
プロジェクトは、Springboot + dubboマイクロサービスアーキテクチャに基づいて、フレームワークの構造ウェブ+ファサード+サービスは、ファサードのモジュールは、順序でインターフェイスを継承するために、Spring Securityのpomファイルを参照し、サービスの結果、ファサードのインターフェイスの開始回を実装する春セキュリティXXXConfiguration XXXMethodが見つかりません、関連するインターフェイスで春セキュリティを達成するため、Web層で呼ばれる、温層が実際に春セキュリティを継承する必要なので、サービスは春セキュリティ関連の自動設定を除外する必要があることです。
解決プロセス
まず、エラーメッセージを投稿してください。
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of method setAuthenticationConfiguration in org.springframework.security.config.annotation.web.configuration. WebSecurityConfigurerAdapter required a bean of type 'org.springframework.security.config.annotation.authentication.configuration. AuthenticationConfiguration' that could not be found.
Action:
Consider defining a bean of type 'org.springframework.security.config.annotation.authentication.configuration. AuthenticationConfiguration' in your configuration.
エラーメッセージから、springboot が WebSecurityConfigurerAdapter の設定にエラーを起こしたことがわかります。springboot はまだ非常に使いやすく、起動時にデバッグログレベルをオンにするとすべての AutoConfiguration 情報を出力するので、起動時のログを検索して WebSecurityConfigurerAdapter を見つけてください。
2019-01-15 20:10:30.880 [main] DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Finished creating instance of bean ' managementContextResolver'
2019-01-15 20:10:30.887 [main] DEBUG o.s.beans.factory.annotation.InjectionMetadata - Registered injected element on class [org. springframework.boot.actuate.autoconfigure.ManagementWebSecurityAutoConfiguration$ManagementWebSecurityConfigurerAdapter$$ EnhancerBySpringCGLIB$$3db9a4ce]: AutowiredMethodElement for public void org.springframework.security.config.annotation.web. configuration.WebSecurityConfigurerAdapter.setApplicationContext(org.springframework.context.)
2019-01-15 20:10:30.887 [main] DEBUG o.s.beans.factory.annotation.InjectionMetadata - Registered injected element on class [org. springframework.boot.actuate.autoconfigure.ManagementWebSecurityAutoConfiguration$ManagementWebSecurityConfigurerAdapter$$ EnhancerBySpringCGLIB$$3db9a4ce]: AutowiredMethodElement for public void org.springframework.security.config.annotation.web. configuration.WebSecurityConfigurerAdapter.setTrustResolver(org.springframework.security.authentication. AuthenticationTrustResolver)
2019-01-15 20:10:30.888 [main] DEBUG o.s.beans.factory.annotation.InjectionMetadata - Registered injected element on class [org. springframework.boot.actuate.autoconfigure.ManagementWebSecurityAutoConfiguration$ManagementWebSecurityConfigurerAdapter$$ EnhancerBySpringCGLIB$$3db9a4ce]: AutowiredMethodElement for public void org.springframework.security.config.annotation.web. configuration.WebSecurityConfigurerAdapter.setContentNegotationStrategy(org.springframework.web.acceptance.ContentNegotiationStrategy)
2019-01-15 20:10:30.888 [main] DEBUG o.s.beans.factory.annotation.InjectionMetadata - Registered injected element on class [org. springframework.boot.actuate.autoconfigure.ManagementWebSecurityAutoConfiguration$ManagementWebSecurityConfigurerAdapter$$ EnhancerBySpringCGLIB$$3db9a4ce]: AutowiredMethodElement for public void org.springframework.security.config.annotation.web. configuration.WebSecurityConfigurerAdapter.setAuthenticationConfiguration(org.springframework.security.config.annotation. authentication.configuration.AuthenticationConfiguration)
2019-01-15 20:10:30.888 [main] DEBUG o.s.beans.factory.annotation.InjectionMetadata - Registered injected element on class [org. springframework.boot.actuate.autoconfigure.ManagementWebSecurityAutoConfiguration$ManagementWebSecurityConfigurerAdapter$$ EnhancerBySpringCGLIB$$3db9a4ce]: AutowiredMethodElement for public void org.springframework.security.config.annotation.web. configuration.WebSecurityConfigurerAdapter.setObjectPostProcessor(org.springframework.security.config.annotation. ObjectPostProcessor)
2019-01-15 20:10:30.888 [main] DEBUG o.s.b.factory.support.DefaultListableBeanFactory - Eagerly caching bean 'org.springframework.boot. actuate.autoconfigure.ManagementWebS
ログメッセージから、WebSecurityConfigurerAdapterの設定を読み込むのはManagementWebSecurityAutoConfigurationであることがわかり、springboot起動クラスで除外を追加すればよいことがわかりました。
@SpringBootApplication(exclude={SecurityAutoConfiguration.class, OAuth2AutoConfiguration.class,SecurityFilterAutoConfiguration. class,ManagementWebSecurityAutoConfiguration.class})
関連
-
eclipse で「アクセス制限: タイプ 'HttpServer' は API ではありません」というプロンプトが表示される。
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 0 at One1.main(One1.java:3)
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 4 at text.Division.main(Divisi
-
linux run jarfile Invalid or corrupt jarfile error.
-
JAVA のエラーです。公開型***は、独自のファイルで定義する必要があります***。
-
Java言語プログラミング(基礎編)(第10版)練習問題解答編 第6章
-
GDALを使用すると、Java Runtime Environmentのプログラムエラー処理方式で致命的なエラーが検出されました。
-
Jgitでのgit操作時に発生する問題点
-
Javaラーニングノート-Collections.singletonListの使用法
-
DataIntegrityViolationException (データ整合性違反例外)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スレッド "main "での例外をEclipseで解決 java.lang.Error: 未解決のコンパイル問題、コンパイラとパッケージの不整合
-
undefinedeclipse エラー。この行に複数のアノテーションが見つかりました: - 文字列を型解決に解決できない
-
Android Studio 3.1.2 で v4, v7 パッケージが見つからない シンボル 'AppCompatActivity' を解決できない
-
javaでよく使われる英単語
-
java -serverコマンドで「Error: no `server' JVM at ... jvm.dll」を解決する方法です。
-
「リソースリーク:'scanner'が閉じない」警告、Scannerステートメントでの解決法
-
IDEAがGitHubに接続し、認証情報が正しくない401、インバリダの認証データの問題を解決する。
-
ApiModelPropertyアノテーションの使用方法
-
AxisFault: com.ctc.wstx.exc.WstxEOFException.AxisFault.WstxEOFException: Prolog サービスで予期しない EOF が発生し、接続できません。
-
jenkins の起動レポートです。そのようなファイルやディレクトリはありません