接口逻辑补充零碎修改等
This commit is contained in:
@ -61,7 +61,7 @@ public class ResourcesConfig implements WebMvcConfigurer
|
||||
"/tool/gen/**");
|
||||
//配置项目数据隔离拦截器
|
||||
registry.addInterceptor(projectDataIsolationInterceptor)
|
||||
.addPathPatterns("/gis/groups/**", "/gis/legend/**","/gis/site/**");
|
||||
.addPathPatterns("/gis/groups/**", "/gis/legend/**","/gis/site/**","/project/**");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -131,6 +131,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
|
||||
//安防小板
|
||||
.antMatchers("/iot/photos","/iot/photos/**","/yinghsiyun/webhook").permitAll()
|
||||
.antMatchers("/test/**/*").permitAll()
|
||||
.antMatchers("/system/district/tree").permitAll()
|
||||
// 除上面外的所有请求全部需要鉴权认证
|
||||
.anyRequest().authenticated()
|
||||
|
||||
|
@ -15,9 +15,11 @@ import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.servlet.HandlerInterceptor;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import javax.servlet.http.Cookie;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
@ -49,18 +51,52 @@ public class ProjectDataIsolationInterceptor implements HandlerInterceptor {
|
||||
if ("PUT".equalsIgnoreCase(request.getMethod())) {
|
||||
return true;
|
||||
}
|
||||
//获取路径中的查询字符串参数
|
||||
String projectIds = request.getParameter("projectIds");
|
||||
if (StringUtils.isBlank(projectIds)) {
|
||||
return true;
|
||||
//当前项目信息
|
||||
ProjectInfo projectInfo = ProjectInfo.builder().build();
|
||||
//获取cookie
|
||||
Cookie[] requestCookies = request.getCookies();
|
||||
//获取cookie中的projectIds(父项目及其子项目id),projectId(当前项目id),userId(当前管理员id)
|
||||
if (requestCookies != null) {
|
||||
for (Cookie cookie : requestCookies){
|
||||
//获取cookie中的projectIds
|
||||
if ("projectIds".equals(cookie.getName())) {
|
||||
byte[] decode = Base64.decode(cookie.getValue());
|
||||
//转成List集合
|
||||
String decodedStr = new String(decode);
|
||||
if (StringUtils.isNotBlank(decodedStr)) {
|
||||
JSONArray objects = JSONUtil.parseArray(decodedStr);
|
||||
projectInfo.setProjectIdList(objects.toList(Long.class));
|
||||
}
|
||||
}
|
||||
//获取cookie中的projectId
|
||||
if ("projectId".equals(cookie.getName())) {
|
||||
projectInfo.setProjectId(cookie.getValue());
|
||||
}
|
||||
//获取cookie中的userId
|
||||
if ("userId".equals(cookie.getName())) {
|
||||
projectInfo.setProjectAdminId(cookie.getValue());
|
||||
}
|
||||
|
||||
}
|
||||
byte[] decode = Base64.decode(projectIds);
|
||||
//转成List集合
|
||||
String decodedStr = new String(decode);
|
||||
JSONArray objects = JSONUtil.parseArray(decodedStr);
|
||||
ProjectHolder.setProjectInfo(ProjectInfo.builder()
|
||||
.projectIdList(objects.toList(Long.class))
|
||||
.build());
|
||||
|
||||
}
|
||||
ProjectHolder.setProjectInfo(projectInfo);
|
||||
|
||||
// //获取路径中的查询字符串参数
|
||||
// String projectIds = request.getParameter("projectIds");
|
||||
//
|
||||
// //为空则是超级管理员不做数据隔离
|
||||
// if (StringUtils.isBlank(projectIds)) {
|
||||
// ProjectHolder.setProjectInfo(ProjectInfo.builder().projectId("").build());
|
||||
// return true;
|
||||
// }
|
||||
// byte[] decode = Base64.decode(projectIds);
|
||||
// //转成List集合
|
||||
// String decodedStr = new String(decode);
|
||||
// JSONArray objects = JSONUtil.parseArray(decodedStr);
|
||||
// ProjectHolder.setProjectInfo(ProjectInfo.builder()
|
||||
// .projectIdList(objects.toList(Long.class))
|
||||
// .build());
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
|
Reference in New Issue
Block a user