You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@linkis.apache.org by pe...@apache.org on 2022/04/02 12:35:33 UTC
[incubator-linkis] branch dev-1.1.2 updated: add auth check for some udf apis (#1893)
This is an automated email from the ASF dual-hosted git repository.
peacewong pushed a commit to branch dev-1.1.2
in repository https://gitbox.apache.org/repos/asf/incubator-linkis.git
The following commit(s) were added to refs/heads/dev-1.1.2 by this push:
new 658cb1f add auth check for some udf apis (#1893)
658cb1f is described below
commit 658cb1fb1d1ce821e2a34d9dc9276e5435522e15
Author: legendtkl <ta...@gmail.com>
AuthorDate: Sat Apr 2 20:35:29 2022 +0800
add auth check for some udf apis (#1893)
---
.../main/java/org/apache/linkis/udf/dao/UDFTreeDao.java | 2 ++
.../java/org/apache/linkis/udf/dao/impl/UDFTreeDao.xml | 9 ++++++++-
.../linkis/udf/service/impl/UDFTreeServiceImpl.java | 16 +++++++++++++++-
3 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/UDFTreeDao.java b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/UDFTreeDao.java
index 5f0209d..c8070fb 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/UDFTreeDao.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/UDFTreeDao.java
@@ -34,6 +34,8 @@ public interface UDFTreeDao {
UDFTree getTreeByIdAndCategory(Long id, String category);
+ UDFTree getTreeByIdAndCategoryAndUserName(Long id, String category, String userName);
+
UDFTree getTreeById(@Param("id") Long id);
List<UDFTree> getTreesByParentId(Map<String, Object> params);
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/impl/UDFTreeDao.xml b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/impl/UDFTreeDao.xml
index 2c37121..37aa1c2 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/impl/UDFTreeDao.xml
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/impl/UDFTreeDao.xml
@@ -51,7 +51,7 @@
user_name = #{userName,jdbcType=VARCHAR},
description=#{description,jdbcType=VARCHAR},
update_time=#{updateTime,jdbcType=TIMESTAMP}
- WHERE id = #{id,jdbcType=BIGINT}
+ WHERE id = #{id,jdbcType=BIGINT} and user_name = #{userName,jdbcType=VARCHAR}
</update>
<delete id="deleteTree">
@@ -66,6 +66,13 @@
where id = #{arg0} and category = #{arg1}
</select>
+ <select id="getTreeByIdAndCategoryAndUserName" resultMap="UDFTreeResultMap">
+ select
+ <include refid="udf_Tree_List"/>
+ from linkis_ps_udf_tree
+ where id = #{arg0} and category = #{arg1} and user_name=#{arg2}
+ </select>
+
<select id="getTreesByParentId" resultMap="UDFTreeResultMap" parameterType="java.util.Map">
select
<include refid="udf_Tree_List"/>
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/impl/UDFTreeServiceImpl.java b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/impl/UDFTreeServiceImpl.java
index 8c22910..2ec631b 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/impl/UDFTreeServiceImpl.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/impl/UDFTreeServiceImpl.java
@@ -22,6 +22,7 @@ import org.apache.linkis.udf.entity.UDFTree;
import org.apache.linkis.udf.excepiton.UDFException;
import org.apache.linkis.udf.service.UDFService;
import org.apache.linkis.udf.service.UDFTreeService;
+import org.apache.linkis.udf.utils.ConstantVar;
import org.apache.linkis.udf.vo.UDFInfoVo;
import org.apache.commons.collections.map.HashedMap;
@@ -122,6 +123,14 @@ public class UDFTreeServiceImpl implements UDFTreeService {
public UDFTree addTree(UDFTree udfTree, String userName) throws UDFException {
if (userName.equals(udfTree.getUserName())) {
try {
+ UDFTree parentTree = udfTreeDao.getTreeById(udfTree.getParent());
+ if (parentTree != null && !parentTree.getUserName().equals(userName)) {
+ throw new UDFException(
+ "user(用户) "
+ + userName
+ + ", the parent directory is not yours(父目录不是你的)");
+ }
+
logger.info(userName + " to add directory");
udfTreeDao.addTree(udfTree);
} catch (Throwable e) {
@@ -186,7 +195,12 @@ public class UDFTreeServiceImpl implements UDFTreeService {
if (id == null || id < 0) {
udfTree = initTree(userName, category);
} else {
- udfTree = udfTreeDao.getTreeByIdAndCategory(id, category);
+ if (Arrays.asList(ConstantVar.specialTypes).contains(type)) {
+ udfTree = udfTreeDao.getTreeByIdAndCategory(id, category);
+ } else {
+ udfTree = udfTreeDao.getTreeByIdAndCategoryAndUserName(id, category, userName);
+ }
+
if (udfTree == null) {
return udfTree;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@linkis.apache.org
For additional commands, e-mail: commits-help@linkis.apache.org