package com.vincent.rsf.server.system.utils; import com.vincent.rsf.common.enums.SystemModeType; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.common.SpringUtils; import com.vincent.rsf.server.common.config.ConfigProperties; import com.vincent.rsf.server.common.domain.BusinessRes; import com.vincent.rsf.server.common.security.JwtSubject; import com.vincent.rsf.server.common.utils.JwtUtil; import com.vincent.rsf.server.system.entity.Tenant; import com.vincent.rsf.server.system.entity.User; import com.vincent.rsf.server.system.entity.UserLogin; import com.vincent.rsf.server.system.service.TenantService; import com.vincent.rsf.server.system.service.UserLoginService; import com.vincent.rsf.server.system.service.UserService; import org.checkerframework.checker.units.qual.C; 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.stereotype.Component; import org.springframework.web.bind.annotation.PostMapping; import javax.annotation.PostConstruct; import java.util.Objects; @Component public class SystemAuthUtils { public static Logger logger = LoggerFactory.getLogger(SystemAuthUtils.class); private static String username; private static String password; private static String tokenKey; private static Long tokenExpireTime; private static SystemModeType systemMode; @Autowired private ConfigProperties configProperties; @PostConstruct public void init() { username = configProperties.getUserName(); password = configProperties.getPassword(); } public static User getLoginUser() { try { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (authentication != null) { Object object = authentication.getPrincipal(); if (object instanceof User) { return (User) object; } } else { UserService userService = SpringUtils.getBean(UserService.class); return userService.getByUsername(username, null); } } catch (Exception e) { logger.error("", e); } return null; } public static Long getLoginUserId() { User loginUser = getLoginUser(); return loginUser == null ? null : loginUser.getId(); } }