我有一个像这样的类Customer
public class MyCustomer {
public String username;
public String email;
public String password;
}
我有一个实现UserDetailsService
的类服务@Override
public UserDetails loadUserByUsername(String username)
throws UsernameNotFoundException, DataAccessException
{
MyCustomer customer = customerDao.findByName(username);
return new User(customer.getName(), customer.getEmail(), true, true, true, true, customer.getRoles())
}
如何在控制器类中获取MyCustomer?我试过这个,但不幸的是,它不起作用。
MyCustomer customer = (MyCustomer)SecurityContextHolder.getContext().getAuthentication().getPrincipal();
答案 0 :(得分:0)
不,由于User
无法投放到MyCustomer
,因此无法正常工作。
您可以让User
类实现MyCustomer
接口,而不是创建UserDetails
实例。
public class MyCustomer implements UserDetails {
// implementation of UserDetails methods
}
然后,您只需从UserDetailsService返回MyCustomer
实例。