私は春のセキュリティを持つ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. キャップロックをプログラムで無効にする
- 2. プログラムでUACを無効にする
- 3. gifアニメーションをプログラムで無効にする
- 4. キーボードの音と振動をプログラムで有効/無効にする
- 5. UNIXネットワークインターフェイスをプログラムで有効/無効にする
- 6. c#WinForms - プログラムApplication.EnableVisualStyles()をプログラムで無効にしますか?
- 7. アンドロイドハニーコムでプログラムによる自動更新を無効にする
- 8. Androidで安全でないキーガードをプログラムで無効にする
- 9. AndroidでGSM接続をプログラムで無効にする方法
- 10. winpdbでプログラムでトラップ未処理例外を無効にする
- 11. ボタンでアクションメソッドをプログラムで無効にする方法
- 12. Windows Vistaでネットワークオートチューンをプログラムで無効にする
- 13. アンドロイドでプログラムで綴り修正を無効にする方法
- 14. クロムでjavascriptをプログラムで無効にする方法
- 15. プログラムでExcelでTeamFoundationアドインを無効にする
- 16. メニューバーとドックをMacでプログラムで無効にする
- 17. 市場での自動更新をプログラムで有効/無効にする
- 18. プログラムでBeanの検証を無効にする(javax.validation.constraints)
- 19. プログラムでWindowsエラー報告(AppCrash)ダイアログを無効にする
- 20. ASP.NETキャッシュ - プログラムでサーバーキャッシュを無効にする...混乱例
- 21. アプリケーション内のDocumentsディレクトリのバックアップをプログラムで無効にする
- 22. プログラムでブラウザのキャッシュを無効にする方法
- 23. Windows Aero - プログラムでビジュアルエフェクトを無効にする
- 24. プログラムでIEプロキシの設定を有効/無効にする方法は?
- 25. C#でExcel UDFをプログラムで無効/登録を解除する
- 26. C#プログラムを実行中にシェルウィンドウを無効にする
- 27. Androidでプログラム的にスクリーンスリープを無効にしますか?
- 28. 無効にコントロール+近いCプログラム
- 29. ICSで位置情報サービスをプログラム的に有効または無効にする(有効または無効にする)方法はありますか?
- 30. コマンドラインからのPythonプログラムへのファイルアクセスを無効にする
まず、ログインページ(通常はそうではありません)を含め、*すべて*が保護されているように、あなたの設定は珍しいようです。 管理者がページのセキュリティを無効にできるシナリオについて詳しく説明できますか?同時に珍しくて面白いようです。 –
これはhttp-basicを使用しているため、デフォルトのブラウザ認証ダイアログが使用されます。アプリケーションは一種のdb search/explore/serverであり、すべてがデフォルトで保護されているため、管理者は公開する必要があるかもしれません(例えば、アプリケーションと通信する必要があるが認証をサポートしないサードパーティのアプリケーションのため) 。 – kpentchev