問題タブ [spring-security]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
grails - Grails - Acegi: 認証方法のカスタマイズ
Acegi - プラグインで使用される認証プロセスを変更したい。これは、完全にカスタマイズされたプロセスである必要があります。カスタムログインフォーム + カスタム認証方法。
明らかに、このトピックに関するドキュメントはほとんどありません。
本The Definitive Guide to Grailsでは、古いバージョンの grails について説明されています。そこでspring/resources.xml
使われています。
新しいバージョンにはspring/resources.groovy
、DSL が使用されるファイルがあります。新しい を構成する方法がわかりませんAuthenticationManager
。
これどうやってするの?
login - Springセキュリティ:「ログインイベントリスナーが成功した場合」を追加
SpringSecurityは初めてです。ユーザーが正常にログインすると呼び出されるイベントリスナーを追加するにはどうすればよいですか?また、このリスナーで何らかの一意のセッションIDを取得する必要があります。これは、後で使用できるようにする必要があります。別のサーバーと同期するには、このIDが必要です。
java - Captcha と Spring Security の統合
SpringSecurity と Capcha を統合する適切な方法は何ですか?
私は次のユースケースを持っています: ユーザーがログインを試みるとき、ログインに N 回失敗した場合、キャプチャが表示されるため、認証はユーザー名、パスワード、キャプチャの 3 つのパラメーターを使用します。ただし、Spring Security は組み込みの Captcha 処理をサポートしていません。
実装を考え始めたところです。また、次のバリアントがあります。
- Spring Security フィルター スタックに個別のセキュリティ フィルターを追加し、
- 一部の Captcha をサポートするために AuthenticationProcessingFilter を完全に書き直します。
- インターセプト キャプチャ ロジックを使用したプログラムによる認証を使用してから、ユーザー名とパスワードを Spring Security に転送する
Captcha の実装として、JCaptcha について考えていますが、どう思いますか?
java - Spring Securityを使用する場合、Bean内の現在のユーザー名(つまりSecurityContext)情報を取得する適切な方法は何ですか?
SpringSecurityを使用するSpringMVCWebアプリがあります。現在ログインしているユーザーのユーザー名を知りたい。以下に示すコードスニペットを使用しています。これは受け入れられた方法ですか?
このコントローラー内で静的メソッドを呼び出すのは好きではありません。これは、Springの目的全体であるIMHOを無効にします。代わりに、現在のSecurityContextまたは現在の認証が挿入されるようにアプリを構成する方法はありますか?
spring-security - Acegi Security: 匿名ユーザーへの認証に別の GrantedAuthority を追加するにはどうすればよいですか
アクセスキーを含む特別な URL をユーザーに提供します。この特別な URL を介して公開ページにアクセスするユーザーは、単純な匿名ユーザーと比較して、いくつかの追加データを表示できるはずです。
リクエストで提供されたパラメーターに基づいて、匿名ユーザーに追加の役割を与えたいので、テンプレートで次のようなことができます。
現在、私はSpringのを実装していますOncePerRequestfilter
:
java - Spring Security を使用した単体テスト
私の会社では、Spring MVC を評価して、次のプロジェクトで使用する必要があるかどうかを判断しています。今のところ、Spring Security モジュールを調べて、使用できる/使用する必要があるかどうかを判断しています。
私たちのセキュリティ要件は非常に基本的なものです。ユーザーは、ユーザー名とパスワードを入力するだけで、サイトの特定の部分にアクセスできます (自分のアカウントに関する情報を取得するなど)。サイトには、匿名ユーザーにアクセスを許可する必要があるページ (FAQ、サポートなど) がいくつかあります。
私が作成しているプロトタイプでは、認証されたユーザーのセッションに "LoginCredentials" オブジェクト (ユーザー名とパスワードのみを含む) を格納しています。たとえば、一部のコントローラーは、このオブジェクトがセッション内にあるかどうかを確認して、ログインしているユーザー名への参照を取得します。代わりに、この自家製のロジックを Spring Security に置き換えようと考えています。これにより、「ログインしているユーザーをどのように追跡するか」というあらゆる種類のものを削除できるという利点があります。および「ユーザーをどのように認証しますか?」私のコントローラー/ビジネスコードから。
Spring Security は、アプリのどこからでもユーザー名/プリンシパル情報にアクセスできるように、(スレッドごとの)「コンテキスト」オブジェクトを提供しているようです...
...ある意味で、このオブジェクトは(グローバル)シングルトンであるため、非常に春らしくないようです。
私の質問は次のとおりです。これが Spring Security で認証されたユーザーに関する情報にアクセスする標準的な方法である場合、Authentication オブジェクトを SecurityContext に挿入して、単体テストで認証されたユーザー?
各テスト ケースの初期化メソッドでこれを接続する必要がありますか?
これは冗長すぎるようです。もっと簡単な方法はありますか?
オブジェクト自体はSecurityContextHolder
非常に春らしくないようです...
spring-security - Acegi/Spring Security を使用したカスタム認証の作成
Spring Security を使用する Web アプリケーションでカスタム認証方法を使用するために実装する必要があるものを正確に見つけるのに苦労しています。現在、ブラウザフォームで標準のユーザー/パスワード認証を使用しているSpring Securityプラグインを備えたGrailsアプリケーションがあります。これは正しく機能しています。
これに加えて、一種のMAC認証を実装するメカニズムを実装する必要があります。HTTP リクエストに複数のパラメーター (ユーザー識別子、タイムスタンプ、署名など) が含まれている場合、それらのパラメーターを取得し、ハッシュと署名/タイムスタンプの比較を実行してから、ユーザーを認証する必要があります。
どこから始めればよいか100%確信が持てません。拡張/実装する必要がある Spring Security クラスは何ですか? リファレンス ドキュメントを読み、概念を十分に理解していますが、フィルター、プロバイダー、またはマネージャーが必要かどうか、または認証オブジェクトを正確に作成する場所と方法がよくわかりません。AbstractProcessingFilterを拡張したり、 AuthenticationProviderを実装したりしようとしてめちゃくちゃになりましたが、それらすべてをうまく機能させる方法を理解することに夢中になっています。
java - Spring Security で URL にアクセスするために必要なロールを特定するにはどうすればよいですか?
Spring Security を使用して webapp を保護しています。URL は次のように保護されます。
特定の状況下でユーザーを特別なページにリダイレクトする必要があるフィルターがあります。ただし、そのページには、assets ディレクトリにある画像と CSS ファイルが必要であり、残念ながらその特別なページにもリダイレクトされます。実際の URL 構成ははるかに長いため、フィルターで各 URL パターンを手動でチェックする必要はありません。また、他のページも許可したいと考えています。
特定のページのフィルターから必要な役割を判断する方法はありますか? ROLE_ANONYMOUS が必要ない場合は、リダイレクトしないことを選択できます。
java - 有権者を使用する AccessDecisionManager から有益な例外をスローする方法
次のような状況があります: 私のアプリケーションの承認メカニズムは、Spring セキュリティを使用して実装されています。中央クラスはAccessDecisionManagerを実装し、ボーター (それぞれがAccessDecisionVoterを実装) を使用して、何らかのメソッドへのアクセスを許可するかどうかを決定します。投票を集計するアルゴリズムはカスタムです。
あるメソッドへのアクセスを拒否すると、アプリケーションのクライアントは、アクセスが拒否された理由を正確に示す有益な例外を取得することに関心があります。これは、有権者から意思決定マネージャーに情報を渡すことを意味します。残念ながら、標準のAccessDecisionVoterが意思決定マネージャーに返す唯一の情報は、可能な戻り値 ( ACCESS_GRANTED、ACCESS_ABSTAINまたはACCESS_DENIED ) の 1 つです。
それを行う最良の方法は何ですか?
ありがとう。
java - 春はメソッドのセキュリティアノテーションを強制しません
Springがサービスインターフェイスに@Secured( "ROLE_USER")を適用しない理由について、私は少し迷っています。私のコントローラーは注釈を使用して確立されます。
私のサービスインターフェースの例
私のセキュリティコンテキスト: