fix
This commit is contained in:
@@ -3,7 +3,6 @@ package com.agileboot.admin.customize.aop.accessLog;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.EnumUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.extra.servlet.ServletUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.agileboot.common.utils.ServletHolderUtil;
|
||||
import com.agileboot.infrastructure.user.AuthenticationUtils;
|
||||
@@ -18,8 +17,8 @@ import org.springframework.validation.BindingResult;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.servlet.HandlerMapping;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -35,7 +34,7 @@ public class OperationLogModel extends SysOperationLogEntity {
|
||||
|
||||
public void fillOperatorInfo() {
|
||||
// 获取当前的用户
|
||||
String ip = ServletUtil.getClientIP(request);
|
||||
String ip = ServletHolderUtil.getClientIp();
|
||||
setOperatorIp(ip);
|
||||
SystemLoginUser loginUser = AuthenticationUtils.getSystemLoginUser();
|
||||
if (loginUser != null) {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.agileboot.admin.customize.async;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.extra.servlet.ServletUtil;
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.agileboot.common.utils.ServletHolderUtil;
|
||||
import com.agileboot.common.utils.ip.IpRegionUtil;
|
||||
@@ -38,7 +37,7 @@ public class AsyncTaskFactory {
|
||||
ServletHolderUtil.getRequest().getHeader("User-Agent"));
|
||||
// 获取客户端浏览器
|
||||
final String browser = userAgent.getBrowser() != null ? userAgent.getBrowser().getName() : "";
|
||||
final String ip = ServletUtil.getClientIP(ServletHolderUtil.getRequest());
|
||||
final String ip = ServletHolderUtil.getClientIp();
|
||||
final String address = IpRegionUtil.getBriefLocationByIp(ip);
|
||||
// 获取客户端操作系统
|
||||
final String os = userAgent.getOperatingSystem() != null ? userAgent.getOperatingSystem().getName() : "";
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.agileboot.admin.customize.service.login;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import java.util.Collections;
|
||||
import com.agileboot.common.exception.ApiException;
|
||||
import com.agileboot.common.exception.error.ErrorCode;
|
||||
import com.agileboot.infrastructure.user.web.SystemLoginUser;
|
||||
@@ -24,7 +25,6 @@ import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.SetUtils;
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
import org.springframework.security.core.userdetails.UserDetails;
|
||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||
@@ -86,7 +86,7 @@ public class UserDetailsServiceImpl implements UserDetailsService {
|
||||
|
||||
Set<Long> allMenuIds = allMenus.stream().map(SysMenuEntity::getMenuId).collect(Collectors.toSet());
|
||||
|
||||
return new RoleInfo(RoleInfo.ADMIN_ROLE_ID, RoleInfo.ADMIN_ROLE_KEY, DataScopeEnum.ALL, SetUtils.emptySet(),
|
||||
return new RoleInfo(RoleInfo.ADMIN_ROLE_ID, RoleInfo.ADMIN_ROLE_KEY, DataScopeEnum.ALL, Collections.emptySet(),
|
||||
RoleInfo.ADMIN_PERMISSIONS, allMenuIds);
|
||||
|
||||
}
|
||||
@@ -104,7 +104,7 @@ public class UserDetailsServiceImpl implements UserDetailsService {
|
||||
|
||||
DataScopeEnum dataScopeEnum = BasicEnumUtil.fromValue(DataScopeEnum.class, roleEntity.getDataScope());
|
||||
|
||||
Set<Long> deptIdSet = SetUtils.emptySet();
|
||||
Set<Long> deptIdSet = Collections.emptySet();
|
||||
if (StrUtil.isNotEmpty(roleEntity.getDeptIdSet())) {
|
||||
deptIdSet = StrUtil.split(roleEntity.getDeptIdSet(), ",").stream()
|
||||
.map(Convert::toLong).collect(Collectors.toSet());
|
||||
|
||||
@@ -6,8 +6,8 @@ import org.springframework.web.context.request.RequestAttributes;
|
||||
import org.springframework.web.context.request.RequestContextHolder;
|
||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
@@ -73,5 +73,24 @@ public class ServletHolderUtil {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取客户端IP地址(兼容代理头)
|
||||
*/
|
||||
public static String getClientIp() {
|
||||
HttpServletRequest request = getRequest();
|
||||
String xForwardedFor = request.getHeader("X-Forwarded-For");
|
||||
if (StrUtil.isNotEmpty(xForwardedFor)) {
|
||||
// 可能存在多个IP,取第一个
|
||||
int commaIndex = xForwardedFor.indexOf(',');
|
||||
return commaIndex > 0 ? xForwardedFor.substring(0, commaIndex).trim() : xForwardedFor.trim();
|
||||
}
|
||||
String realIp = request.getHeader("X-Real-IP");
|
||||
if (StrUtil.isNotEmpty(realIp)) {
|
||||
return realIp.trim();
|
||||
}
|
||||
return request.getRemoteAddr();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.agileboot.infrastructure.annotations.ratelimit;
|
||||
|
||||
import cn.hutool.extra.servlet.ServletUtil;
|
||||
import com.agileboot.common.exception.ApiException;
|
||||
import com.agileboot.common.exception.error.ErrorCode;
|
||||
import com.agileboot.common.utils.ServletHolderUtil;
|
||||
@@ -67,7 +66,7 @@ public @interface RateLimit {
|
||||
IP {
|
||||
@Override
|
||||
public String generateCombinedKey(RateLimit rateLimiter) {
|
||||
String clientIP = ServletUtil.getClientIP(ServletHolderUtil.getRequest());
|
||||
String clientIP = ServletHolderUtil.getClientIp();
|
||||
return rateLimiter.key() + clientIP;
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
package com.agileboot.infrastructure.config;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.DbType;
|
||||
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
|
||||
import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
|
||||
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
|
||||
import javax.sql.DataSource;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -22,8 +19,6 @@ public class MyBatisConfig {
|
||||
@Bean
|
||||
public MybatisPlusInterceptor mybatisPlusInterceptor() {
|
||||
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
|
||||
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
|
||||
interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());
|
||||
return interceptor;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.agileboot.infrastructure.user.base;
|
||||
|
||||
import cn.hutool.extra.servlet.ServletUtil;
|
||||
import com.agileboot.common.utils.ServletHolderUtil;
|
||||
import com.agileboot.common.utils.ip.IpRegionUtil;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
@@ -54,7 +53,7 @@ public class BaseLoginUser implements UserDetails {
|
||||
*/
|
||||
public void fillLoginInfo() {
|
||||
UserAgent userAgent = UserAgent.parseUserAgentString(ServletHolderUtil.getRequest().getHeader("User-Agent"));
|
||||
String ip = ServletUtil.getClientIP(ServletHolderUtil.getRequest());
|
||||
String ip = ServletHolderUtil.getClientIp();
|
||||
|
||||
this.getLoginInfo().setIpAddress(ip);
|
||||
this.getLoginInfo().setLocation(IpRegionUtil.getBriefLocationByIp(ip));
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.agileboot.infrastructure.user.web;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Set;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.apache.commons.collections4.SetUtils;
|
||||
|
||||
/**
|
||||
* @author valarchie
|
||||
@@ -19,7 +19,7 @@ public class RoleInfo {
|
||||
public static final String ADMIN_ROLE_KEY = "admin";
|
||||
public static final String ALL_PERMISSIONS = "*:*:*";
|
||||
|
||||
public static final Set<String> ADMIN_PERMISSIONS = SetUtils.hashSet(ALL_PERMISSIONS);
|
||||
public static final Set<String> ADMIN_PERMISSIONS = Set.of(ALL_PERMISSIONS);
|
||||
|
||||
|
||||
public RoleInfo(Long roleId, String roleKey, DataScopeEnum dataScope, Set<Long> deptIdSet,
|
||||
@@ -28,8 +28,8 @@ public class RoleInfo {
|
||||
this.roleKey = roleKey;
|
||||
this.dataScope = dataScope;
|
||||
this.deptIdSet = deptIdSet;
|
||||
this.menuPermissions = menuPermissions != null ? menuPermissions : SetUtils.emptySet();
|
||||
this.menuIds = menuIds != null ? menuIds : SetUtils.emptySet();
|
||||
this.menuPermissions = menuPermissions != null ? menuPermissions : Collections.emptySet();
|
||||
this.menuIds = menuIds != null ? menuIds : Collections.emptySet();
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user