From 5b60dd29e8f0c9d82fa54051b3c22d76543a362b Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 20 九月 2024 10:37:29 +0800 Subject: [PATCH] 修改权限控制逻辑 --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/filter/AuthFilter.java | 10 ++ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/filter/IgnoreWhiteProperties.java | 31 +++++++ ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/filter/AuthFilter.java | 10 ++ ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java | 2 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/filter/IgnoreWhiteProperties.java | 31 +++++++ ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/filter/IgnoreWhiteProperties.java | 31 +++++++ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/filter/AuthFilter.java | 10 ++ ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/AuthFilter.java | 10 ++ ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/IgnoreWhiteProperties.java | 31 +++++++ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/filter/IgnoreWhiteProperties.java | 31 +++++++ ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/filter/AuthFilter.java | 10 ++ 11 files changed, 207 insertions(+), 0 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/filter/AuthFilter.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/filter/AuthFilter.java index 9b0c010..e9dcae1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/filter/AuthFilter.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/filter/AuthFilter.java @@ -12,6 +12,7 @@ import org.apache.logging.log4j.core.config.Order; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; @@ -42,11 +43,20 @@ @Resource private ISysUserService sysUserService; + @Autowired + private IgnoreWhiteProperties ignoreWhite; + @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; + // 跳过不需要验证的路径 + String url = request.getRequestURI(); + if (StringUtils.matches(url, ignoreWhite.getWhites())) { + filterChain.doFilter(request, response); + return; + } String userid = request.getHeader("user_id"); if(StringUtils.isEmpty(userid)){ filterChain.doFilter(request, response); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/filter/IgnoreWhiteProperties.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/filter/IgnoreWhiteProperties.java new file mode 100644 index 0000000..697c631 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/filter/IgnoreWhiteProperties.java @@ -0,0 +1,31 @@ +package com.ruoyi.system.filter; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.context.annotation.Configuration; + +import java.util.ArrayList; +import java.util.List; + +/** + * 放行白名单配置 + * + * @author ruoyi + */ +@Configuration +@RefreshScope +@ConfigurationProperties(prefix = "security.ignore") +public class IgnoreWhiteProperties { + /** + * 放行白名单配置,网关不校验此处的白名单 + */ + private List<String> whites = new ArrayList<>(); + + public List<String> getWhites() { + return whites; + } + + public void setWhites(List<String> whites) { + this.whites = whites; + } +} diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java index ebda806..af6db93 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java @@ -799,6 +799,8 @@ appUserService.updateById(byId); return R.ok(); } + + //已签到日期 @ApiOperation(value = "本月已签到日期", tags = {"小程序-个人中心-签到"}) @GetMapping(value = "/user/has/sign") diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/AuthFilter.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/AuthFilter.java index a529a5f..9acaeb0 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/AuthFilter.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/AuthFilter.java @@ -11,6 +11,7 @@ import org.apache.logging.log4j.core.config.Order; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; @@ -40,12 +41,21 @@ @Lazy @Resource private SysUserClient sysUserClient; + + @Autowired + private IgnoreWhiteProperties ignoreWhite; @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; + // 跳过不需要验证的路径 + String url = request.getRequestURI(); + if (StringUtils.matches(url, ignoreWhite.getWhites())) { + filterChain.doFilter(request, response); + return; + } String userid = request.getHeader("user_id"); if(StringUtils.isEmpty(userid)){ filterChain.doFilter(request, response); diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/IgnoreWhiteProperties.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/IgnoreWhiteProperties.java new file mode 100644 index 0000000..a89b9f3 --- /dev/null +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/filter/IgnoreWhiteProperties.java @@ -0,0 +1,31 @@ +package com.ruoyi.account.filter; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.context.annotation.Configuration; + +import java.util.ArrayList; +import java.util.List; + +/** + * 放行白名单配置 + * + * @author ruoyi + */ +@Configuration +@RefreshScope +@ConfigurationProperties(prefix = "security.ignore") +public class IgnoreWhiteProperties { + /** + * 放行白名单配置,网关不校验此处的白名单 + */ + private List<String> whites = new ArrayList<>(); + + public List<String> getWhites() { + return whites; + } + + public void setWhites(List<String> whites) { + this.whites = whites; + } +} diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/filter/AuthFilter.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/filter/AuthFilter.java index 467e29a..a7892f8 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/filter/AuthFilter.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/filter/AuthFilter.java @@ -11,6 +11,7 @@ import org.apache.logging.log4j.core.config.Order; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; @@ -41,11 +42,20 @@ @Resource private SysUserClient sysUserClient; + @Autowired + private IgnoreWhiteProperties ignoreWhite; + @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; + // 跳过不需要验证的路径 + String url = request.getRequestURI(); + if (StringUtils.matches(url, ignoreWhite.getWhites())) { + filterChain.doFilter(request, response); + return; + } String userid = request.getHeader("user_id"); if(StringUtils.isEmpty(userid)){ filterChain.doFilter(request, response); diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/filter/IgnoreWhiteProperties.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/filter/IgnoreWhiteProperties.java new file mode 100644 index 0000000..153801a --- /dev/null +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/filter/IgnoreWhiteProperties.java @@ -0,0 +1,31 @@ +package com.ruoyi.chargingPile.filter; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.context.annotation.Configuration; + +import java.util.ArrayList; +import java.util.List; + +/** + * 放行白名单配置 + * + * @author ruoyi + */ +@Configuration +@RefreshScope +@ConfigurationProperties(prefix = "security.ignore") +public class IgnoreWhiteProperties { + /** + * 放行白名单配置,网关不校验此处的白名单 + */ + private List<String> whites = new ArrayList<>(); + + public List<String> getWhites() { + return whites; + } + + public void setWhites(List<String> whites) { + this.whites = whites; + } +} diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/filter/AuthFilter.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/filter/AuthFilter.java index bebbace..a590248 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/filter/AuthFilter.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/filter/AuthFilter.java @@ -11,6 +11,7 @@ import org.apache.logging.log4j.core.config.Order; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; @@ -41,11 +42,20 @@ @Resource private SysUserClient sysUserClient; + @Autowired + private IgnoreWhiteProperties ignoreWhite; + @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; + // 跳过不需要验证的路径 + String url = request.getRequestURI(); + if (StringUtils.matches(url, ignoreWhite.getWhites())) { + filterChain.doFilter(request, response); + return; + } String userid = request.getHeader("user_id"); if(StringUtils.isEmpty(userid)){ filterChain.doFilter(request, response); diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/filter/IgnoreWhiteProperties.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/filter/IgnoreWhiteProperties.java new file mode 100644 index 0000000..01728a9 --- /dev/null +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/filter/IgnoreWhiteProperties.java @@ -0,0 +1,31 @@ +package com.ruoyi.order.filter; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.context.annotation.Configuration; + +import java.util.ArrayList; +import java.util.List; + +/** + * 放行白名单配置 + * + * @author ruoyi + */ +@Configuration +@RefreshScope +@ConfigurationProperties(prefix = "security.ignore") +public class IgnoreWhiteProperties { + /** + * 放行白名单配置,网关不校验此处的白名单 + */ + private List<String> whites = new ArrayList<>(); + + public List<String> getWhites() { + return whites; + } + + public void setWhites(List<String> whites) { + this.whites = whites; + } +} diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/filter/AuthFilter.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/filter/AuthFilter.java index d1e25ba..efd1149 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/filter/AuthFilter.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/filter/AuthFilter.java @@ -11,6 +11,7 @@ import org.apache.logging.log4j.core.config.Order; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; @@ -41,11 +42,20 @@ @Resource private SysUserClient sysUserClient; + @Autowired + private IgnoreWhiteProperties ignoreWhite; + @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; + // 跳过不需要验证的路径 + String url = request.getRequestURI(); + if (StringUtils.matches(url, ignoreWhite.getWhites())) { + filterChain.doFilter(request, response); + return; + } String userid = request.getHeader("user_id"); if(StringUtils.isEmpty(userid)){ filterChain.doFilter(request, response); diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/filter/IgnoreWhiteProperties.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/filter/IgnoreWhiteProperties.java new file mode 100644 index 0000000..90a242f --- /dev/null +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/filter/IgnoreWhiteProperties.java @@ -0,0 +1,31 @@ +package com.ruoyi.other.filter; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.context.annotation.Configuration; + +import java.util.ArrayList; +import java.util.List; + +/** + * 放行白名单配置 + * + * @author ruoyi + */ +@Configuration +@RefreshScope +@ConfigurationProperties(prefix = "security.ignore") +public class IgnoreWhiteProperties { + /** + * 放行白名单配置,网关不校验此处的白名单 + */ + private List<String> whites = new ArrayList<>(); + + public List<String> getWhites() { + return whites; + } + + public void setWhites(List<String> whites) { + this.whites = whites; + } +} -- Gitblit v1.7.1