查看当前登录用户的信息,调用 SecurityUtils.getLoginUser()
即可:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| package com.xtuer.utils;
import com.xtuer.bean.User; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder;
public final class SecurityUtils {
public static User getLoginUser() { Authentication auth = SecurityContextHolder.getContext().getAuthentication();
if (auth == null) { return null; }
Object p = auth.getPrincipal();
return p instanceof User ? (User) p : null; } }
|
getAuthentication() 返回的是一个 Authentication 对象,未登陆时它的 getPrinciple() 返回的是字符串 anonymousUser,登陆后返回的是 UserDetailsService.loadUserByUsername() 返回的对象,也即是说,我们可以实现一个 User 类,继承自 org.springframework.security.core.userdetails.User,在我们实现的 User 类中保存用户数据,在 loadUserByUsername() 中返回此用户对象。
User 类的实现请参考用户信息数据源一章。