package com.syzton.sunread.controller.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Component; import com.syzton.sunread.model.user.User; import com.syzton.sunread.service.user.UserService; @Component public class SecurityContextUtil { private static final Logger LOGGER = LoggerFactory.getLogger(SecurityContextUtil.class); private UserService userService; @Autowired public SecurityContextUtil( UserService userService) { this.userService = userService; } public UserDetails getPrincipal() { LOGGER.debug("Getting principal from the security context"); UserDetails principal = null; Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (authentication != null) { Object currentPrincipal = authentication.getPrincipal(); if (currentPrincipal instanceof UserDetails) { principal = (UserDetails) currentPrincipal; } } return principal; } public User getUser(){ LOGGER.debug("Getting principal from the security context"); User principal = null; User user = null; Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (authentication != null) { Object currentPrincipal = authentication.getPrincipal(); if (currentPrincipal instanceof User) { principal = (User) currentPrincipal; } } if(principal!=null){ user = userService.findByUserId(principal.getUserId()); } return user; } }