diff --git a/backend/src/main/java/io/dataease/auth/config/ShiroConfig.java b/backend/src/main/java/io/dataease/auth/config/ShiroConfig.java index a3d6e190de..764aefb3f3 100644 --- a/backend/src/main/java/io/dataease/auth/config/ShiroConfig.java +++ b/backend/src/main/java/io/dataease/auth/config/ShiroConfig.java @@ -51,6 +51,7 @@ public class ShiroConfig { filterMap.put("jwt", new JWTFilter()); filterMap.put("logout", new F2CLogoutFilter()); filterMap.put("link", new F2CLinkFilter()); + filterMap.put("doc", new F2CDocFilter()); factoryBean.setSecurityManager(securityManager); factoryBean.setLoginUrl("/login"); factoryBean.setUnauthorizedUrl("/login"); diff --git a/backend/src/main/java/io/dataease/auth/filter/F2CDocFilter.java b/backend/src/main/java/io/dataease/auth/filter/F2CDocFilter.java new file mode 100644 index 0000000000..022180c4b3 --- /dev/null +++ b/backend/src/main/java/io/dataease/auth/filter/F2CDocFilter.java @@ -0,0 +1,26 @@ +package io.dataease.auth.filter; + +import org.apache.shiro.web.filter.authc.AnonymousFilter; + +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; + +public class F2CDocFilter extends AnonymousFilter { + + @Override + protected boolean onPreHandle(ServletRequest request, ServletResponse response, Object mappedValue) { + HttpServletRequest req = (HttpServletRequest) request; + String path = "/deApi"; + try { + req.getRequestDispatcher(path).forward(req, response); + } catch (ServletException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return true; + } +} diff --git a/backend/src/main/java/io/dataease/auth/service/impl/ExtAuthServiceImpl.java b/backend/src/main/java/io/dataease/auth/service/impl/ExtAuthServiceImpl.java index 07eccc92c1..e141cc1b62 100644 --- a/backend/src/main/java/io/dataease/auth/service/impl/ExtAuthServiceImpl.java +++ b/backend/src/main/java/io/dataease/auth/service/impl/ExtAuthServiceImpl.java @@ -43,9 +43,11 @@ public class ExtAuthServiceImpl implements ExtAuthService { @Override public AuthURD resourceTarget(String resourceId) { AuthURD authURD = new AuthURD(); - SysAuthExample example = new SysAuthExample(); + /*SysAuthExample example = new SysAuthExample(); example.createCriteria().andAuthSourceEqualTo(resourceId); - List sysAuths = sysAuthMapper.selectByExample(example); + List sysAuths = sysAuthMapper.selectByExample(example);*/ + List sysAuths = extAuthMapper.queryByResource(resourceId); + Map> authMap = sysAuths.stream().collect(Collectors.groupingBy(SysAuth::getAuthTargetType)); if (!CollectionUtils.isEmpty(authMap.get("user"))) { authURD.setUserIds(authMap.get("user").stream().map(item -> Long.parseLong(item.getAuthTarget())).collect(Collectors.toList())); diff --git a/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java b/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java index a6cdf4ec83..c12a511e21 100644 --- a/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java +++ b/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java @@ -20,7 +20,8 @@ public class ShiroServiceImpl implements ShiroService { // 配置过滤:不会被拦截的链接 -> 放行 start ---------------------------------------------------------- // 放行Swagger2页面,需要放行这些 - filterChainDefinitionMap.put("/doc.html",ANON); + filterChainDefinitionMap.put("/doc.html**","doc"); + filterChainDefinitionMap.put("/deApi**",ANON); filterChainDefinitionMap.put("/swagger-ui.html",ANON); filterChainDefinitionMap.put("/swagger-ui/**",ANON); filterChainDefinitionMap.put("/swagger/**",ANON); diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtAuthMapper.java b/backend/src/main/java/io/dataease/base/mapper/ext/ExtAuthMapper.java index fe7d57a75b..9e987aa586 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtAuthMapper.java +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtAuthMapper.java @@ -1,6 +1,7 @@ package io.dataease.base.mapper.ext; +import io.dataease.base.domain.SysAuth; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -12,6 +13,6 @@ public interface ExtAuthMapper { List queryUserIdWithDeptIds(@Param("deptIds") List deptIds); - + List queryByResource(@Param("resourceId") String resourceId); // Set queryUserIdWithRD(@Param("roleIds") List roleIds, @Param("deptIds") List deptIds); } diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtAuthMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/ExtAuthMapper.xml index 991709ff3b..8e961576f2 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtAuthMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtAuthMapper.xml @@ -23,5 +23,12 @@ + + + diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysUserMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysUserMapper.xml index 2c1798644d..b7af624db4 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysUserMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysUserMapper.xml @@ -34,9 +34,16 @@