コントローラーで、Spring Securityが提供する組み込み式(hasRole([role])やisFullyAuthenticated()など)に類似したいくつかの(Java)メソッドを使用したいと思います。
これらのメソッドの場所と、コントローラーのJavaメソッド内でそれらを呼び出す方法を知っていますか(Spring ELは使用したくない、プレーンJavaを使用したい)。例:
SomeStaticSpringSecutityClass.isFullyAuthenticated();
編集:
SecurityContextHolder.getContext().getAuthentication().isAuthenticated()
実際には機能しません。このメソッドは、ユーザーが「匿名」として認証されている場合にもtrueを返します。上記のSpringSecurityドキュメントへのリンクを参照してください。
isAuthenticated()ユーザーが匿名でない場合はtrueを返します
代わりに、次のようなものを使用する必要があります。
public boolean isAuthenticated() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
return !(authentication == null || authentication instanceof AnonymousAuthenticationToken);
}
しかしとにかく:私はロジックを再び実装したくありません。それはすでにSpringSecurityのどこかに実装されています。さらに
SecurityContextHolder.getContext().getAuthentication()
isFullyAuthenticated()やhasRole()のようなメソッドは提供していません。