在Spring中如何从“”打印用户名和姓氏

如何从打印用户名和姓

principal.username仅打印用户ID。 但我想在这里打印用户名和数据库的名字。 可能吗?

我想你在谈论Spring Security。

这是我使用的解决方案:

创建一个将映射您的用户的类。 它必须实现org.springframework.security.core.userdetails.UserDetails接口:

 public class MyUserDetails implements UserDetails { private String username; private String password; private String firstname; private String lastname; public String getFirstname() { return firstname; } public String getLastname() { return lastname; } // Etc. } 

创建org.springframework.security.core.userdetails.UserDetailsS​​ervice的实现 ,它将从数据库加载用户:

 @Component public class MyUserDetailsService implements UserDetailsService { @Autowired private MyUserDAO userDAO; @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { final MyUserDetails user = userDAO.getUserByUsername(username); if(user == null) { throw new UsernameNotFoundException("No user found for username '" + username +"'."); } return user; } } 

现在,您必须告诉Spring Security使用您的服务加载用户的详细信息:

    

现在,您应该能够使用来显示当前用户的名字和姓氏。