2017-09-26 12 views
5

WebアプリケーションでSpringセキュリティを使用していて、Javaconfigを使用しています。最近では、アプリケーションでSpring SAML認証を追加し、最終的にはいくつかのハードルの後で動作させました。 WebApplicationInitializeronStartUp()の内部では、いくつかの事前条件に基づいてSpringSecurity設定またはSpringSaml設定をロードしています。Spring Securityでアプリケーションコンテキストを動的に切り替える方法は?

これをどのように動的に行うことができますか?実際に私はボタンを導入し、管理者がこのボタンをクリックするとadminがすべてログアウトされ、コンテキストがリロードされます。現時点では、ok ifシステムはいつかアクセス不能になり、アプリケーションコンテキストを初期化します(これは実際に私の目標です)。

つまり、onStartUp()メソッドをWebApplicationInitializerと呼びますか?

+1

私は、Springアプリケーションのコンテキストをリロードせずに行うことができると思います。コンテキストがリフレッシュされても、他の副作用に直面することがあります。 [この質問](https://stackoverflow.com/questions/27545846/spring-integration-getting-exception-on-refreshing-application-context-2nd-time)はコントローラからアプリケーションコンテキストをリフレッシュする方法を示しますが、終了しました異なる問題で構成コードの一部を共有できれば、より良い回答を提供するのに役立ちます。 – skadya

答えて

6

Spring環境プロファイルを使用して、ロードされるセキュリティ構成を制御します。

プロファイルを切り替えるには、アクティブなプロファイルを含む設定ファイルを更新し、アプリケーションをリロードします。

Spring Boot Reference Guide - 25. Profilesを参照してください。

+0

答えAndreasに感謝します。プログラムで「アプリをリロードする」方法を共有できますか? ? – aProgrammer

+0

@aProgrammer 'spring-boot-devtools'を使うと、設定ファイルを更新すると自動的にLiveReloadがトリガされます:[Springブートリファレンスガイド - 83.ホットスワップ](https://docs.spring.io/spring-boot)を参照してください。 /docs/current/reference/html/howto-hotswapping.html)。 – Andreas

関連する問題