前提
現在SpringBoot2 基礎から実演までの8-3章のサンプルを作成しながらSpringの勉強をしています。
8-3章ではSpringSecurityを用いたログイン機能を有したアプリを設計しており、その際のログイン情報の取得にUserDetailsServiceを使ってユーザ情報を取得しています。
UserDetailsServiceImplから該当箇所
@RequiredArgsConstructor @Service public class UserDetailsServiceImpl implements UserDetailsService{ private final SiteUserRepository userRepository; //ユーザ特定の為のインタフェース //メソッドの戻り値()で見つかったユーザを返す。見つからなかった場合はSecurityのUsename...をthrowする @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException{ SiteUser user = userRepository.findByUsername(username); if(user == null) { throw new UsernameNotFoundException(username + "not found"); } return createUserDetails(user); }
この際userにはSiteUserクラス(Bean)の情報が以下のように格納され、ControllerでAuthenticationをクラスに設定した上でGetNameで参照できます。格納した値はカラム別に呼び出すこともできるようです。
Controllerから該当箇所
public String showList(Authentication loginUser, Model model) { System.out.println("userRepository:"+userRepository.findByUsername(loginUser.getName())); System.out.println("username:",loginUser.getName());
userRepository:SiteUser(id=1, username=XXXX, password=XXXXX., email=XXXX, admin=true, role=ADMIN, active=true, state=null) username:XXXX
実現したいこと
Authentication+Getで呼び出せる値は限定されているらしく、例えばemailなどの値は呼び出せません。
ログイン中のユーザのBeanをカラム別にController内で自由に呼び出す方法を探しています
環境
開発環境:STS
SQL:PostgreSQL
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/20 23:04