私は、ユーザーの認証にSpring Securityを使用するWebアプリケーションを開発しています。 私はこの方法でログインしているユーザー得ることができることを知っている:春のセキュリティでログに記録されたユーザーを取得する最も良い方法は何ですか?
public class SecurityUtil {
public static User getCurrentUser() {
SecurityContextHolder.getContext().getAuthentication().getPrincipal()
}
}
を、このように正常に動作します。 質問は:この値にアクセスする最も良い方法は何ですか?にアクセスし
public class FooController {
@Autowired
private FooService fooService;
public void control() {
fooService.doSomething(SecurityUtil.getCurrentUser());
}
}
3.User:パラメータがサービスに渡されたとして
public class FooController {
@Autowired
private FooService fooService;
private User u = SecurityUtil.getCurrentUser();
@RequestMapping(...)
public void control() {
fooService.doSomething(u);
}
}
2.User:
1.Userは、コントローラ内の変数として宣言:私はいくつかの例を行いますサービス:
public class FooService {
public void doSomething() {
SecurityUtil.getCurrentUser();
//Do something
}
}
すべての例が有効ですか?誰かを気まぐれに使うことはできますか?私が知っておくべきいくつかの欠点がありますか?
どのバージョンのSpringを使用していますか? –