| package com.mzl.flower.config.security; | 
|   | 
| import com.mzl.flower.dto.security.UserDTO; | 
| import lombok.experimental.UtilityClass; | 
| import org.springframework.security.core.Authentication; | 
| import org.springframework.security.core.context.SecurityContextHolder; | 
| import org.springframework.security.oauth2.provider.OAuth2Authentication; | 
| import org.springframework.security.oauth2.provider.OAuth2Request; | 
|   | 
| @UtilityClass | 
| public class SecurityUtils { | 
|   | 
|     /** | 
|      * 获取Authentication | 
|      */ | 
|     public Authentication getAuthentication() { | 
|         return SecurityContextHolder.getContext().getAuthentication(); | 
|     } | 
|   | 
|     /** | 
|      * 获取用户 | 
|      */ | 
|     public UserDTO getUser(Authentication authentication) { | 
|         Object principal = authentication.getPrincipal(); | 
|         if (principal instanceof UserDTO) { | 
|             return (UserDTO) principal; | 
|         } | 
|         return null; | 
|     } | 
|   | 
|     /** | 
|      * 获取用户 | 
|      */ | 
|     public UserDTO getUser() { | 
|         Authentication authentication = getAuthentication(); | 
|         if (authentication == null) { | 
|             return null; | 
|         } | 
|         return getUser(authentication); | 
|     } | 
|   | 
|   | 
|     public String getUserName() { | 
|         UserDTO authUser = getUser(); | 
|         if (authUser != null) { | 
|             return authUser.getName(); | 
|         } | 
|         return null; | 
|     } | 
|   | 
|     public String getUserType() { | 
|         UserDTO authUser = getUser(); | 
|         if (authUser != null) { | 
|             return authUser.getUserType(); | 
|         } | 
|         return null; | 
|     } | 
|   | 
|     public String getUserId() { | 
|         UserDTO authUser = getUser(); | 
|         if (authUser != null) { | 
|             return authUser.getId(); | 
|         } | 
|         return null; | 
|     } | 
|   | 
|     public String getClientId() { | 
|         Authentication authentication = getAuthentication(); | 
|         if (authentication == null) { | 
|             return null; | 
|         } | 
|         try { | 
|             OAuth2Authentication oAuth2Authentication = (OAuth2Authentication)authentication; | 
|             OAuth2Request authorizationRequest = oAuth2Authentication.getOAuth2Request(); | 
|             if(authorizationRequest == null){ | 
|                 return null; | 
|             } | 
|             return authorizationRequest.getClientId(); | 
|         } catch (Exception e) { | 
|             return null; | 
|         } | 
|     } | 
| } |