セッションからいくつかのユーザーの詳細にアクセスしたいと思います。私は、loadUserByUsername(文字列のユーザー名)メソッドをオーバーライドして、春のセキュリティとカスタム認証を使用しています。Springセキュリティを使用してSpringのControllerからUserDetailsオブジェクトにアクセスする
私はユーザーを返信しており、コントローラからアクセスしたいと考えています。私はプリンシパルオブジェクトを試しましたが、ESecurityUserオブジェクトのcompanyIdフィールドに到達できません。
任意の助けをいただければ幸いです。..
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
ESecurityUser user = new ESecurityUser();
user.setUsername("hello");
user.setPassword("world");
user.setCompanyId(199);
Set<EAuthority> authorities = new HashSet<EAuthority>();
EAuthority authority = new EAuthority();
authority.setAuthority("ROLE_ADMIN");
authorities.add(authority);
user.setAuthorities(authorities);;
return user;
}
サンプルコントローラコード
@RequestMapping("")
public String toPeriodicAdReport(@ModelAttribute("advertFormHelper") AdvertFormHelper advertFormHelper,
Model model,Principal principal) {
//What to write here so that i can access to authenticated user`s companyId field..
return "Test";
}
ESecurityUserユーザー=(ESecurityUser)元本を、 – brub
@brubこんにちは、私はそれを試みましたが、例外がありました.. 'org.springframework.security.authentication.UsernamePasswordAuthenticationTokenはtr.com.simroll.ada.rvm.report.entity.ESecurityUser'にキャストできません – rematnarab
これは類似しています: https://stackoverflow.com/questions/12078404/org-springframework-security-core-userdetails-user-cannot-be-cast-to-myuser – brub