세션에서 일부 사용자 정보에 액세스하고 싶습니다. 나는 loadUserByUsername (문자열 사용자 이름) 메서드를 재정 의하여 봄 보안 및 사용자 지정 인증을 사용하고 있습니다.스프링 보안 컨트롤러를 사용하여 Spring의 컨트롤러에서 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