Browse Source

fix: client auth

Azure 2 years ago
parent
commit
1db1eaedcc

+ 10 - 0
seecoder-build-server/src/main/java/cn/seecoder/build/server/service/facade/jenkins/JenkinsServerApi.java

@@ -0,0 +1,10 @@
+package cn.seecoder.build.server.service.facade.jenkins;
+
+import com.offbytwo.jenkins.JenkinsServer;
+import com.offbytwo.jenkins.client.JenkinsHttpClient;
+
+public interface JenkinsServerApi {
+    JenkinsHttpClient getJenkinsHttpClient();
+
+    JenkinsServer getJenkinsServer();
+}

+ 6 - 22
seecoder-build-server/src/main/java/cn/seecoder/build/server/service/facade/jenkins/impl/JenkinsApiImpl.java

@@ -5,14 +5,13 @@ import cn.seecoder.build.model.vo.CoverageResult;
 import cn.seecoder.build.model.vo.MutationResult;
 import cn.seecoder.build.model.vo.MutationResult;
 import cn.seecoder.build.server.service.facade.jenkins.JenkinsApi;
 import cn.seecoder.build.server.service.facade.jenkins.JenkinsApi;
 import cn.seecoder.build.server.service.facade.jenkins.JenkinsInternalApi;
 import cn.seecoder.build.server.service.facade.jenkins.JenkinsInternalApi;
+import cn.seecoder.build.server.service.facade.jenkins.JenkinsServerApi;
 import cn.seecoder.build.server.service.model.converter.TestResultConvertor;
 import cn.seecoder.build.server.service.model.converter.TestResultConvertor;
-import cn.seecoder.build.server.util.ApplicationProperties;
 import cn.seecoder.build.server.util.LoggerUtil;
 import cn.seecoder.build.server.util.LoggerUtil;
 import cn.seecoder.build.server.util.ServiceException;
 import cn.seecoder.build.server.util.ServiceException;
 
 
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSON;
 import com.offbytwo.jenkins.JenkinsServer;
 import com.offbytwo.jenkins.JenkinsServer;
-import com.offbytwo.jenkins.client.JenkinsHttpClient;
 import com.offbytwo.jenkins.model.*;
 import com.offbytwo.jenkins.model.*;
 import org.apache.commons.io.output.ByteArrayOutputStream;
 import org.apache.commons.io.output.ByteArrayOutputStream;
 import org.dom4j.*;
 import org.dom4j.*;
@@ -20,10 +19,9 @@ import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
-import javax.annotation.PostConstruct;
+
 import java.io.IOException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStream;
-import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URISyntaxException;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
@@ -32,26 +30,12 @@ import java.util.Map;
 public class JenkinsApiImpl implements JenkinsApi {
 public class JenkinsApiImpl implements JenkinsApi {
 
 
     private static final Logger logger = LoggerUtil.getLogger(JenkinsApiImpl.class);
     private static final Logger logger = LoggerUtil.getLogger(JenkinsApiImpl.class);
-
-    private final ApplicationProperties properties;
-
-    private JenkinsServer server;
-    private JenkinsInternalApi jenkinsInternalApi;
-
+    private final JenkinsServer server;
+    private final JenkinsInternalApi jenkinsInternalApi;
     @Autowired
     @Autowired
-    public JenkinsApiImpl(ApplicationProperties properties, JenkinsInternalApi jenkinsInternalApi) {
-        this.properties = properties;
+    public JenkinsApiImpl(JenkinsInternalApi jenkinsInternalApi, JenkinsServerApi jenkinsServerApi) {
         this.jenkinsInternalApi = jenkinsInternalApi;
         this.jenkinsInternalApi = jenkinsInternalApi;
-    }
-
-    @PostConstruct
-    private void initialize() throws URISyntaxException {
-        ApplicationProperties.Jenkins jenkins = properties.getJenkins();
-        URI internalURI = new URI(jenkins.getInternalHost());
-        String username = jenkins.getUsername();
-        String token = jenkins.getToken();
-        JenkinsHttpClient client = new PoolingJenkinsHttpClient(internalURI, username, token);
-        server = new JenkinsServer(client);
+        this.server=jenkinsServerApi.getJenkinsServer();
     }
     }
 
 
     @Override
     @Override

+ 6 - 12
seecoder-build-server/src/main/java/cn/seecoder/build/server/service/facade/jenkins/impl/JenkinsInternalApiImpl.java

@@ -2,6 +2,7 @@ package cn.seecoder.build.server.service.facade.jenkins.impl;
 
 
 import cn.seecoder.build.model.vo.CoverageResult;
 import cn.seecoder.build.model.vo.CoverageResult;
 import cn.seecoder.build.server.service.facade.jenkins.JenkinsInternalApi;
 import cn.seecoder.build.server.service.facade.jenkins.JenkinsInternalApi;
+import cn.seecoder.build.server.service.facade.jenkins.JenkinsServerApi;
 import cn.seecoder.build.server.service.facade.jenkins.entity.InternalBuild;
 import cn.seecoder.build.server.service.facade.jenkins.entity.InternalBuild;
 import cn.seecoder.build.server.service.facade.jenkins.entity.InternalBuildWithDetails;
 import cn.seecoder.build.server.service.facade.jenkins.entity.InternalBuildWithDetails;
 import cn.seecoder.build.server.service.facade.jenkins.entity.InternalJob;
 import cn.seecoder.build.server.service.facade.jenkins.entity.InternalJob;
@@ -10,14 +11,12 @@ import cn.seecoder.build.server.util.LoggerUtil;
 
 
 import com.offbytwo.jenkins.client.JenkinsHttpClient;
 import com.offbytwo.jenkins.client.JenkinsHttpClient;
 import com.offbytwo.jenkins.model.*;
 import com.offbytwo.jenkins.model.*;
-import lombok.Getter;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
-import javax.annotation.PostConstruct;
 import java.io.IOException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStream;
-import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URISyntaxException;
 import java.util.Map;
 import java.util.Map;
 
 
@@ -29,19 +28,14 @@ public class JenkinsInternalApiImpl implements JenkinsInternalApi {
 
 
     private static final String COVERAGE_PATH = "/cobertura/?depth=2";
     private static final String COVERAGE_PATH = "/cobertura/?depth=2";
 
 
-    private JenkinsHttpClient client;
+    private final JenkinsHttpClient client;
 
 
-    public JenkinsInternalApiImpl(ApplicationProperties properties) {
+    @Autowired
+    public JenkinsInternalApiImpl(ApplicationProperties properties, JenkinsServerApi jenkinsServerApi) {
         this.jenkinsProperties = properties.getJenkins();
         this.jenkinsProperties = properties.getJenkins();
+        this.client=jenkinsServerApi.getJenkinsHttpClient();
     }
     }
 
 
-    @PostConstruct
-    private void initialize() throws URISyntaxException {
-        URI internalURI = new URI(jenkinsProperties.getInternalHost());
-        String username = jenkinsProperties.getUsername();
-        String token = jenkinsProperties.getToken();
-        client = new PoolingJenkinsHttpClient(internalURI, username, token);
-    }
 
 
     @Override
     @Override
     public BuildWithDetails getBuildDetails(Build build) throws IOException {
     public BuildWithDetails getBuildDetails(Build build) throws IOException {

+ 44 - 0
seecoder-build-server/src/main/java/cn/seecoder/build/server/service/facade/jenkins/impl/JenkinsServerImpl.java

@@ -0,0 +1,44 @@
+package cn.seecoder.build.server.service.facade.jenkins.impl;
+
+import cn.seecoder.build.server.service.facade.jenkins.JenkinsServerApi;
+import cn.seecoder.build.server.util.ApplicationProperties;
+import com.offbytwo.jenkins.JenkinsServer;
+import com.offbytwo.jenkins.client.JenkinsHttpClient;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PostConstruct;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+@Service
+public class JenkinsServerImpl implements JenkinsServerApi {
+    private final ApplicationProperties.Jenkins jenkinsProperties;
+    private JenkinsServer server;
+
+    private JenkinsHttpClient client;
+    @Autowired
+    public JenkinsServerImpl(ApplicationProperties properties) {
+        this.jenkinsProperties = properties.getJenkins();
+    }
+    @PostConstruct
+    private void initialize() throws URISyntaxException {
+        URI internalURI = new URI(jenkinsProperties.getInternalHost());
+        String username = jenkinsProperties.getUsername();
+        String token = jenkinsProperties.getToken();
+        client = new PoolingJenkinsHttpClient(internalURI, username, token);
+        server = new JenkinsServer(client);
+    }
+
+
+
+    @Override
+    public JenkinsHttpClient getJenkinsHttpClient() {
+        return client;
+    }
+
+    @Override
+    public JenkinsServer getJenkinsServer() {
+        return server;
+    }
+}