私は春のセキュリティを持つWebアプリケーションを持っており、デフォルトではすべてのページに承認が必要です。私のシナリオでは、管理者はある時点でいくつかのページのセキュリティを無効にしたり、完全に無効にすることを決めることができます。どのようにこれを達成するのが最善でしょうか?私はFilterChainProxy
の変更について考えていましたが、どのように正確に(getFilterChains()
が変更不可能なリストを返すか)私には明らかではありませんか?プログラムでスプリングセキュリティを無効にする
答えて
サブクラスDelgatingFilterProxy
を見てくださいと、デリゲートを呼び出すするか否かのフラグをチェックします。
DelegatingFilterProxy
の代わりにweb.xmlにspringSecurityFilterChain
(名前空間の設定を使用していると仮定)を使用してください。例えば:あなたのDelegatingFilterProxyで
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>com.foo.spring.MyDelegatingFilterProxy</filter-class>
</filter>
あなたが委任またはべきでないかどうかを確認するために(例えば、システムプロパティ)フラグをチェック。
class MyDelegatingFilterProxy extends DelegatingFilterProxy {
override def doFilter(request: ServletRequest, response: ServletResponse, chain: FilterChain) {
if (System.getProperty("skipSpringSecurity" != null) {
// Ignore the DelegatingProxyFilter delegate
chain.doFilter(request, response)
} else {
// Call the delegate
super.doFilter(request, response, chain)
}
}
}
あなたは<security:intercept-url pattern="/**" access="ROLE_USER" />
のようなブランケットワイルドカードを使用するために、同じ技術を使用して、(静的ファイル、などのために)/下のパスのいくつかのセットのために春のセキュリティフィルタを呼び出すスキップすることができます。
ありがとう、これは私が探していたもので、うまくいきます! – kpentchev
スプリングセキュリティはどのように設定されていますか?あなたの条件を検証するカスタムpermissionEvaluatorを追加することができますか?
はspring-security writing a custom PermissionEvaluator - how to inject a DAO service?
私はいくつかの特定の有権者とAuthenticationProviderを持っていますが、それ以外の場合は、デフォルトのWebアプリケーションの設定 '<セキュリティ使用します。http自動設定 \t \t認証マネージャ-REF =「authenticationManager」=「真」 \t \tアクセス意思決定マネージャを-ref = "repositoryAccessDecisionManager" \t \tアクセス拒否-ページ=> "/についてaccessdenied" \t \t \t \t <セキュリティ:インターセプト-URLパターン= "/ **" アクセス= "ROLE_USER" /> \t \t <セキュリティ:http-basic /> \t security:ht tp> ' – kpentchev
- 1. POSTメソッドのスプリングセキュリティを無効にする
- 2. スプリングセキュリティ - 無効な列インデックス例外
- 3. キャップロックをプログラムで無効にする
- 4. App screenshotをプログラムで無効にする
- 5. プログラムでUACを無効にする
- 6. プログラムでFirebaseMessagingServiceを無効にする
- 7. マイクをプログラムで無効にする
- 8. プログラムでLiferayクッキーを無効にする
- 9. gifアニメーションをプログラムで無効にする
- 10. Bluetoothプロファイルをプログラムで有効/無効にする
- 11. UNIXネットワークインターフェイスをプログラムで有効/無効にする
- 12. キーボードの音と振動をプログラムで有効/無効にする
- 13. プログラムで没入モードを有効/無効にする
- 14. プログラムでWindows 10バッテリーセーバーを有効/無効にする方法は?
- 15. プログラムで無効/ Googleのスクリプトトリガを有効
- 16. 無効なURLをログインページにリダイレクトするためのスプリングセキュリティの防止
- 17. c#WinForms - プログラムApplication.EnableVisualStyles()をプログラムで無効にしますか?
- 18. Log4jLoggerをプログラムで有効/無効にしますか?
- 19. アンドロイドハニーコムでプログラムによる自動更新を無効にする
- 20. プログラムで制約をプログラム内で無効にしました
- 21. Androidで安全でないキーガードをプログラムで無効にする
- 22. Swiper.js - タッチスワイプを無効にするが、プログラムでスライドする
- 23. 節電モードをプログラムでアンドロイドで無効にする方法
- 24. Windows Vistaでネットワークオートチューンをプログラムで無効にする
- 25. アンドロイドでプログラムで綴り修正を無効にする方法
- 26. winpdbでプログラムでトラップ未処理例外を無効にする
- 27. プログラムでGboardで自動提案を無効にする
- 28. Samsungでアプリの省電力モードをプログラムで無効にする
- 29. ボタンでアクションメソッドをプログラムで無効にする方法
- 30. メニューバーとドックをMacでプログラムで無効にする
まず、ログインページ(通常はそうではありません)を含め、*すべて*が保護されているように、あなたの設定は珍しいようです。 管理者がページのセキュリティを無効にできるシナリオについて詳しく説明できますか?同時に珍しくて面白いようです。 –
これはhttp-basicを使用しているため、デフォルトのブラウザ認証ダイアログが使用されます。アプリケーションは一種のdb search/explore/serverであり、すべてがデフォルトで保護されているため、管理者は公開する必要があるかもしれません(例えば、アプリケーションと通信する必要があるが認証をサポートしないサードパーティのアプリケーションのため) 。 – kpentchev