diff --git a/docker-files/base/Dockerfile b/docker-files/base/Dockerfile index 3a5787d4..c66036b4 100644 --- a/docker-files/base/Dockerfile +++ b/docker-files/base/Dockerfile @@ -4,7 +4,7 @@ FROM ubuntu:18.04 RUN apt-get update && apt-get install -y tzdata language-pack-zh* \ && ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone \ && locale-gen zh_CN.UTF-8 \ - && apt-get install -y git wget tar unzip lzip vim nasm python3.8 python3-pip python3.8-dev perl graphviz openjdk-8-jdk gcc g++ build-essential m4 tcpdump net-tools gdb \ + && apt-get install -y git wget tar unzip lzip vim nasm python3.8 python3-pip python3.8-dev perl graphviz openjdk-8-jdk gcc g++ build-essential m4 tcpdump net-tools gdb libkrb5-dev krb5-user pkg-config default-libmysqlclient-dev\ && rm -f /usr/bin/python && ln -s /usr/bin/python3.8 /usr/bin/python \ && rm -f /usr/bin/python3 && ln -s /usr/bin/python3.8 /usr/bin/python3 \ && ln -s /usr/bin/pip3 /usr/bin/pip diff --git a/docker-files/jupyter/depends/requirements.txt b/docker-files/jupyter/depends/requirements.txt index 50077e98..e96875a8 100644 --- a/docker-files/jupyter/depends/requirements.txt +++ b/docker-files/jupyter/depends/requirements.txt @@ -11,3 +11,4 @@ traitlets>=4.3.2 jupyter_server>=2.2 pyjwt>=2 tornado>=6.4.2 +requests_kerberos>=0.15.0 diff --git a/wedpr-components/meta/project/src/main/java/com/webank/wedpr/components/project/model/JobRequest.java b/wedpr-components/meta/project/src/main/java/com/webank/wedpr/components/project/model/JobRequest.java index c198dfb4..2aaf5905 100644 --- a/wedpr-components/meta/project/src/main/java/com/webank/wedpr/components/project/model/JobRequest.java +++ b/wedpr-components/meta/project/src/main/java/com/webank/wedpr/components/project/model/JobRequest.java @@ -15,10 +15,13 @@ package com.webank.wedpr.components.project.model; +import com.webank.wedpr.common.utils.Common; import com.webank.wedpr.common.utils.PageRequest; import com.webank.wedpr.common.utils.WeDPRException; import com.webank.wedpr.components.meta.resource.follower.dao.FollowerDO; import com.webank.wedpr.components.project.dao.JobDO; +import com.webank.wedpr.components.project.dao.ProjectDO; +import com.webank.wedpr.components.project.dao.ProjectMapper; import java.util.List; import lombok.SneakyThrows; @@ -33,6 +36,23 @@ public JobDO getJob() { return job; } + public void check(ProjectMapper projectMapper, String owner, String ownerAgency) + throws Exception { + if (job == null) { + throw new WeDPRException("Must set the job information!"); + } + Common.requireNonEmpty("projectId", job.getProjectId()); + ProjectDO condition = new ProjectDO(true); + condition.setId(job.getProjectId()); + condition.setOwnerAgency(ownerAgency); + condition.setOwner(owner); + List result = projectMapper.queryProject(true, condition); + if (result == null || result.isEmpty()) { + throw new WeDPRException( + "Invalid job request, " + owner + " not own project " + job.getProjectId()); + } + } + public void setJob(JobDO job) { if (job == null) { return; diff --git a/wedpr-components/meta/project/src/main/java/com/webank/wedpr/components/project/service/impl/ProjectServiceImpl.java b/wedpr-components/meta/project/src/main/java/com/webank/wedpr/components/project/service/impl/ProjectServiceImpl.java index 47071b52..f571e230 100644 --- a/wedpr-components/meta/project/src/main/java/com/webank/wedpr/components/project/service/impl/ProjectServiceImpl.java +++ b/wedpr-components/meta/project/src/main/java/com/webank/wedpr/components/project/service/impl/ProjectServiceImpl.java @@ -269,12 +269,11 @@ public void validateUserPermissionToDatasets( public WeDPRResponse submitJob(String user, JobRequest request) { WeDPRResponse response = new WeDPRResponse(Constant.WEDPR_SUCCESS, Constant.WEDPR_SUCCESS_MSG); - - // String userName = user; String agency = WeDPRCommonConfig.getAgency(); - - List datasetList = request.getDatasetList(); try { + request.check( + projectMapperWrapper.getProjectMapper(), user, WeDPRCommonConfig.getAgency()); + List datasetList = request.getDatasetList(); request.getJob().setOwner(user); request.getJob().setOwnerAgency(agency); request.getJob().setTaskParties(request.getTaskParties());