
com.luues.security.util.SecurityUtils Maven / Gradle / Ivy
package com.luues.security.util;
import com.luues.core.core.SpringContextHolder;
import com.luues.security.core.entity.SysUser;
import com.luues.security.core.interfaces.SecurityTokenUserRolePermissionsUpdateHandler;
import lombok.experimental.UtilityClass;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.context.SecurityContextHolder;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
/**
* 安全工具类
*
* @author Mr-Wu
*/
@UtilityClass
@Slf4j
public class SecurityUtils {
/**
* 获取Authentication
*/
public Authentication getAuthentication() {
return SecurityContextHolder.getContext().getAuthentication();
}
/**
* 获取用户
*/
public SysUser getUser(Authentication authentication) {
try {
SysUser sysUser = (SysUser) authentication.getPrincipal();
sysUser.setAuthorities((Collection extends SimpleGrantedAuthority>) authentication.getAuthorities());
return sysUser;
}catch (Exception e){
if(!authentication.getPrincipal().toString().equals("anonymousUser")){
log.error("转换用户信息失败,数据:{}, 错误:{}", authentication.getPrincipal(), e.getMessage());
}
return null;
}
}
/**
* 获取用户
*/
public SysUser getUser() {
Authentication authentication = getAuthentication();
if (authentication == null) {
return null;
}
return getUser(authentication);
}
public String getUserId(){
SysUser user = getUser();
if(user == null){
return null;
}
return user.getId();
}
public Integer getIntegerUserId() {
return Integer.valueOf(getUserId());
}
public Long getLongUserId(){
return Long.valueOf(getUserId());
}
/**
* 获取用户角色信息
*
* @return 角色集合
*/
public List getRoles() {
return getAuthentication().getAuthorities().stream().map(a -> a.getAuthority()).collect(Collectors.toList());
}
/**
* 获取用户权限信息
*
* @return 权限集合
*/
public List getPermissions() {
return getUser().getPermissions().stream().map(p -> p.getAuthority()).collect(Collectors.toList());
}
/**
* 获取指定用户基本信息 默认只能认证项目里面使用 根据配置redis前缀决定
* @param id 用户id集合
* @return sysUser 用户基本信息
*/
public SysUser getUser(String id){
SecurityTokenUserRolePermissionsUpdateHandler handler = SpringContextHolder.getApplicationContext().getBean(SecurityTokenUserRolePermissionsUpdateHandler.class);
return handler.getUser(id);
}
/**
* 更新用户基本信息 默认只能认证项目里面使用 根据配置redis前缀决定
* @param id 用户id集合
* @param sysUser 用户基本信息
*/
public boolean updateUser(String id, SysUser sysUser){
SecurityTokenUserRolePermissionsUpdateHandler handler = SpringContextHolder.getApplicationContext().getBean(SecurityTokenUserRolePermissionsUpdateHandler.class);
return handler.updateUser(id, sysUser);
}
/**
* 更新用户基本信息 默认只能认证项目里面使用 根据配置redis前缀决定
* @param id 用户id集合
* @param sysUser 用户基本信息
* @param source 来源 DeviceUtils.SOURCE_PC 。。。
*/
public boolean updateUser(String id, SysUser sysUser, String source){
SecurityTokenUserRolePermissionsUpdateHandler handler = SpringContextHolder.getApplicationContext().getBean(SecurityTokenUserRolePermissionsUpdateHandler.class);
return handler.updateUser(id, sysUser, source);
}
/**
* 更新用户info信息 默认只能认证项目里面使用 根据配置redis前缀决定
* @param ids 用户id集合
* @param info info信息
*/
public boolean updateInfo(List ids, String info){
SecurityTokenUserRolePermissionsUpdateHandler handler = SpringContextHolder.getApplicationContext().getBean(SecurityTokenUserRolePermissionsUpdateHandler.class);
return handler.updateInfo(ids, info);
}
/**
* 更新用户info信息
* @param ids 用户id集合
* @param info info信息
* @param source 来源 DeviceUtils.SOURCE_PC 。。。
*/
public boolean updateInfo(List ids, String info, String source){
SecurityTokenUserRolePermissionsUpdateHandler handler = SpringContextHolder.getApplicationContext().getBean(SecurityTokenUserRolePermissionsUpdateHandler.class);
return handler.updateInfo(ids, info, source);
}
/**
* 更新用户权限组
* @param ids 用户id集合
* @param roles 权限组集合
*/
public boolean updateRoles(List ids, List roles){
SecurityTokenUserRolePermissionsUpdateHandler handler = SpringContextHolder.getApplicationContext().getBean(SecurityTokenUserRolePermissionsUpdateHandler.class);
return handler.updateRoles(ids, roles);
}
/**
* 更新用户权限组
* @param ids 用户id集合
* @param roles 权限组集合
* @param source 来源 DeviceUtils.SOURCE_PC 。。。
*/
public boolean updateRoles(List ids, List roles, String source){
SecurityTokenUserRolePermissionsUpdateHandler handler = SpringContextHolder.getApplicationContext().getBean(SecurityTokenUserRolePermissionsUpdateHandler.class);
return handler.updateRoles(ids, roles, source);
}
/**
* 更新用户权限组
* @param ids 用户id集合
* @param permissions 操作标识集合
*/
public boolean updatePermissions(List ids, List permissions){
SecurityTokenUserRolePermissionsUpdateHandler handler = SpringContextHolder.getApplicationContext().getBean(SecurityTokenUserRolePermissionsUpdateHandler.class);
return handler.updatePermissions(ids, permissions);
}
/**
* 更新用户权限组
* @param ids 用户id集合
* @param permissions 操作标识集合
* @param source 来源 DeviceUtils.SOURCE_PC 。。。
*/
public boolean updatePermissions(List ids, List permissions, String source){
SecurityTokenUserRolePermissionsUpdateHandler handler = SpringContextHolder.getApplicationContext().getBean(SecurityTokenUserRolePermissionsUpdateHandler.class);
return handler.updatePermissions(ids, permissions, source);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy