0

春の MVC プロジェクトに実装されたカスタム認証プロバイダーがあります。私自身のオーバーライドする authenticate() メソッドでは、独自の認証を実装し、独自の UserPasswordAuthenticationToken() を構築してオブジェクトを返します。

上記のオブジェクト「UserPasswordAuthentictionToken」のユーザーIDは匿名化され、パスワードはnullになり、権限はこのユーザーに付与されたものに設定されます。

質問:
これにより、SecurityContextHolder または SecurityContext は一般に、オーバーライドされた authenticate() メソッドに渡される Authenticate オブジェクト内の元の着信資格情報を失いますか?

そうでない場合、それらの元の資格情報を削除し、Spring セキュリティ コンテキストに新しい匿名認証識別子を強制的に保持させるにはどうすればよいでしょうか (できれば他のメタデータと共に)。

4

1 に答える 1

0

Java リモート デバッグ機能 (JDWP) は、デフォルトでオフになっているため、実稼働環境でセキュリティ ホールとなる危険性は実際にはありません。

これが発生する唯一の方法は、誰かが本番環境で明示的にオンにすることですが、本番チームはおそらくそれを許可しないでしょう。また、そのマシンで管理機能を持っているのは彼らだけです。

本番環境でデバッグを有効にするには、サーバー起動スクリプトにこれらのパラメーターを追加するか、コンソールから設定する必要があります。

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<PORT>

これは偶然には起こりませんでした。IDE を使用して本番マシンへのデバッグ リモート接続を作成しようとすると、JDWP が本番環境で無効になっていることを確認できます。失敗するはずです。試す前に、念のため、すべてのブレークポイントを無効にすることをお勧めします。

何らかの理由で JDWP が本番環境で有効になっている場合、本番チームはサーバーのファイアウォールを構成して、JDWP ポートが特定の許容可能な IP リストからのものである場合にのみ JDWP ポートへの接続を許可し、開発者が本番環境をリモートでデバッグしたり、機密情報にアクセスしたりするのを防ぐことができます。 .

于 2014-03-14T22:41:39.053 に答える