私は春に完全に書かれたRESTfulプログラムを持っています。私は春のセキュリティを使ってREST呼び出しを制御し、承認されていないアクセスを監査するためにAccessDeniedHandlerImpl
を拡張しました。今私はまた、認証されていないユーザーからのリクエストを監査し、そのIPアドレスをログに記録したい(ユーザー名が匿名であるため、唯一のものです)。私はAuthenticationEntryPoint
を使ってみましたが、動作しませんし、ログインページへリダイレクトすることもできません(監査パートは動作しますが、私のログインページにアクセスすることはできません。REST APIへの認証されていないアクセスの監査
この動作を実装する正しい方法は何ですか?フォームのログインを実装し、それに監査を置く必要がありますか?彼らのシンプルなリスナーか何か私のコードのログインを追加し、ユーザーにログインページを表示するための類似ですか?
これは私が監査のために認証されていないしようとしたコードではアクセス:
@Component
public class MyAuthEntry implements AuthenticationEntryPoint{
@Override
public void commence(HttpServletRequest req, HttpServletResponse resp, AuthenticationException e) throws IOException, ServletException {
//log user ip and uri they tried accessing
resp.sendError(401, e.getMessage());
}
}
私もWebSecurityConfigでこの実装を登録している:
http
.exceptionHandling().authenticationEntryPoint(myAuthEntry);
私の質問はIPアドレスを取得することではありません。注意深く読んでください。 – AKJ88
ログインページにアクセスできませんか? 「はい」の場合、「慎重にお読みください」と答えてください。「ユーザーが認証されていない場合は、エラーの代わりにログインページにリダイレクトを送信する必要があります。 – Boschi
投稿するのではなく、リンク。 – AKJ88