From 4d11b794f18ec276de03e2b133a2f5cf04100bfe Mon Sep 17 00:00:00 2001 From: Rui_Li <877258667@qq.com> Date: Fri, 16 May 2025 13:26:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A3=80=E6=9F=A5=E5=9F=9F=E6=8E=A7=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7=E6=96=87=E4=BB=B6=E5=A4=B9=E6=9D=83=E9=99=90=20?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E9=80=9A=E8=BF=87apipost=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ifs/controller/TestIfsController.java | 26 +++++++++++++++++ .../com/spring/ifs/data/CheckLdapData.java | 29 +++++++++++++++++++ .../service/impl/CheckLdapDirectoryImpl.java | 10 +++++++ 3 files changed, 65 insertions(+) create mode 100644 src/main/java/com/spring/ifs/data/CheckLdapData.java diff --git a/src/main/java/com/spring/ifs/controller/TestIfsController.java b/src/main/java/com/spring/ifs/controller/TestIfsController.java index 3540bf74..7bd30cbd 100644 --- a/src/main/java/com/spring/ifs/controller/TestIfsController.java +++ b/src/main/java/com/spring/ifs/controller/TestIfsController.java @@ -8,6 +8,7 @@ import com.spring.modules.part.entity.APIEntity.PartIfsInventory; import com.spring.modules.part.entity.APIEntity.RecipeIfsAlternative; import com.spring.modules.part.entity.APIEntity.RecipeIfsHeader; import com.spring.modules.part.entity.APIEntity.RecipeIfsItem; +import com.spring.modules.sys.service.CheckLdapDirectory; import ifs.fnd.ap.APException; import org.springframework.beans.factory.ListableBeanFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -42,6 +43,8 @@ public class TestIfsController { private RecipeServiceBeanTest recipeServiceBean; @Autowired private ListableBeanFactory listableBeanFactory; + @Autowired + private CheckLdapDirectory checkLdapDirectory; /** @@ -2150,4 +2153,27 @@ public class TestIfsController { } + /** + * @description: 检查用户是否有权 + * @author LR + * @date 2025/5/13 09:10 + * @version 1.0 + */ + @PostMapping(value = "/checkUserLdapDirectory") + public Object checkUserLdapDirectory(@RequestBody CheckLdapData inData) { + Map resultMap = new HashMap(); + try { + boolean checkFlag = checkLdapDirectory.checkUserLdapDirectory(inData.getUsername(), inData.getDirectoryPath()); + resultMap.put("checkFlag", checkFlag); + resultMap.put("code", 200); + resultMap.put("msg", "操作成功!"); + } catch (Exception e) { + resultMap.put("code", 400); + resultMap.put("msg", e.getMessage()); + } + return resultMap; + } + + + } \ No newline at end of file diff --git a/src/main/java/com/spring/ifs/data/CheckLdapData.java b/src/main/java/com/spring/ifs/data/CheckLdapData.java new file mode 100644 index 00000000..8407bdd9 --- /dev/null +++ b/src/main/java/com/spring/ifs/data/CheckLdapData.java @@ -0,0 +1,29 @@ +package com.spring.ifs.data; + +/** + * @author LR + * @date 2025年05月13日 09:08 + */ +public class CheckLdapData { + private String username; + private String directoryPath; + + public CheckLdapData() { + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getDirectoryPath() { + return directoryPath; + } + + public void setDirectoryPath(String directoryPath) { + this.directoryPath = directoryPath; + } +} diff --git a/src/main/java/com/spring/modules/sys/service/impl/CheckLdapDirectoryImpl.java b/src/main/java/com/spring/modules/sys/service/impl/CheckLdapDirectoryImpl.java index 8a4e0609..ddcb7873 100644 --- a/src/main/java/com/spring/modules/sys/service/impl/CheckLdapDirectoryImpl.java +++ b/src/main/java/com/spring/modules/sys/service/impl/CheckLdapDirectoryImpl.java @@ -1,6 +1,9 @@ package com.spring.modules.sys.service.impl; +import com.spring.ifs.bean.BaseSearchBean; import com.spring.modules.sys.service.CheckLdapDirectory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -35,12 +38,19 @@ public class CheckLdapDirectoryImpl implements CheckLdapDirectory { @Value("${spring.ldap.password}") private String ldapPassword; + private static final Logger logger = LoggerFactory.getLogger(CheckLdapDirectoryImpl.class); + @Override public boolean checkUserLdapDirectory(String username, String directoryPath) { + logger.info("Checking the folder permission for the user:"+username); + logger.info("Checking the folder permission for the directory:"+directoryPath); //查询文件的域控账号或分组 Map directoryGroupAccount = this.getDirectoryLdapAccount(directoryPath); + logger.info("Folder Group And Account:"+directoryGroupAccount.toString()); //查询用户是否是该文件夹的域控账号或分组 Map ldapAccountGroup = this.getLapAccountGroup(username); + //打印日志 + logger.info("Ldap Group And Account:"+ldapAccountGroup.toString()); for(String strKey : directoryGroupAccount.keySet()) { if (ldapAccountGroup.containsKey(strKey)) { return true;