diff --git a/src/main/java/io/jenkins/plugins/localization_zh_cn/UpdateCenterAction.java b/src/main/java/io/jenkins/plugins/localization_zh_cn/UpdateCenterAction.java new file mode 100644 index 0000000000000000000000000000000000000000..776ba0c46e0767a49795ee0e9c867e2ae6811159 --- /dev/null +++ b/src/main/java/io/jenkins/plugins/localization_zh_cn/UpdateCenterAction.java @@ -0,0 +1,69 @@ +package io.jenkins.plugins.localization_zh_cn; + +import hudson.Extension; +import hudson.model.RootAction; +import jenkins.model.Jenkins; +import org.apache.commons.io.IOUtils; +import org.kohsuke.stapler.StaplerResponse; +import org.kohsuke.stapler.interceptor.RequirePOST; + +import javax.annotation.CheckForNull; +import javax.servlet.http.HttpServletResponse; +import java.io.*; + +@Extension +public class UpdateCenterAction implements RootAction { + private final String CRT = "mirror-adapter.crt"; + + @RequirePOST + public void doUse(StaplerResponse response) throws IOException { + if (!Jenkins.get().hasPermission(Jenkins.ADMINISTER)) { + response.sendError(HttpServletResponse.SC_FORBIDDEN); + return; + } + + try (InputStream input = this.getClass().getResourceAsStream("/" + CRT); + OutputStream output = new FileOutputStream(new File(Jenkins.get().getRootDir(), + "/war/WEB-INF/update-center-rootCAs/" + CRT))) { + if (input == null) { + return; + } + + IOUtils.copy(input, output); + } + response.sendRedirect(Jenkins.get().getRootUrl() + "/chinese"); + } + + @RequirePOST + public void doRemove(StaplerResponse response) throws IOException { + if (!Jenkins.get().hasPermission(Jenkins.ADMINISTER)) { + response.sendError(HttpServletResponse.SC_FORBIDDEN); + return; + } + + File crtFile = new File(Jenkins.get().getRootDir(), + "/war/WEB-INF/update-center-rootCAs/" + CRT); + if(crtFile.isFile()) { + crtFile.delete(); + } + response.sendRedirect(Jenkins.get().getRootUrl() + "/chinese"); + } + + @CheckForNull + @Override + public String getIconFileName() { + return null; + } + + @CheckForNull + @Override + public String getDisplayName() { + return "Use mirror of update center"; + } + + @CheckForNull + @Override + public String getUrlName() { + return "/update-center-mirror"; + } +} diff --git a/src/main/resources/io/jenkins/plugins/localization_zh_cn/CommunityPage/index.jelly b/src/main/resources/io/jenkins/plugins/localization_zh_cn/CommunityPage/index.jelly index 4fcbf0300d3a775ed33e516d6eb3ced02660a534..7854a8176a843a73ae56afd0e9a02d94a52f35e1 100644 --- a/src/main/resources/io/jenkins/plugins/localization_zh_cn/CommunityPage/index.jelly +++ b/src/main/resources/io/jenkins/plugins/localization_zh_cn/CommunityPage/index.jelly @@ -15,6 +15,20 @@
  • 版本更新发布
  • Jenkins 微信公众号二维码 + +

    更新中心镜像设置

    + + 修改更新中心的地址为 + https://jenkins-zh.gitee.io/update-center-mirror/tsinghua/update-center.json + + + + + + + + + 设置更新中心地址 \ No newline at end of file diff --git a/src/main/resources/mirror-adapter.crt b/src/main/resources/mirror-adapter.crt new file mode 100644 index 0000000000000000000000000000000000000000..3f0600ec4f3cdbef2e8764ed9d9157f94dffbf6b --- /dev/null +++ b/src/main/resources/mirror-adapter.crt @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICcTCCAdoCCQD/jZ7AgrzJKTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJD +TjELMAkGA1UECAwCR0QxCzAJBgNVBAcMAlNaMQ4wDAYDVQQKDAV2aWhvbzEMMAoG +A1UECwwDZGV2MREwDwYDVQQDDAhkZW1vLmNvbTEjMCEGCSqGSIb3DQEJARYUYWRt +aW5AamVua2lucy16aC5jb20wHhcNMTkxMTA5MTA0MDA5WhcNMjIxMTA4MTA0MDA5 +WjB9MQswCQYDVQQGEwJDTjELMAkGA1UECAwCR0QxCzAJBgNVBAcMAlNaMQ4wDAYD +VQQKDAV2aWhvbzEMMAoGA1UECwwDZGV2MREwDwYDVQQDDAhkZW1vLmNvbTEjMCEG +CSqGSIb3DQEJARYUYWRtaW5AamVua2lucy16aC5jb20wgZ8wDQYJKoZIhvcNAQEB +BQADgY0AMIGJAoGBAN+6jN8rCIjVkQ0Q7ZbJLk4IdcHor2WdskOQMhlbR0gOyb4g +RX+CorjDRjDm6mj2OohqlrtRxLGYxBnXFeQGU7wWjQHyfKDghtP51G/672lXFtzB +KXukHByHjtzrDxAutKTdolyBCuIDDGJmRk+LavIBY3/Lxh6f0ZQSeCSJYiyxAgMB +AAEwDQYJKoZIhvcNAQELBQADgYEAD92l26PoJcbl9GojK2L3pyOQjeeDm/vV9e3R +EgwGmoIQzlubM0mjxpCz1J73nesoAcuplTEps/46L7yoMjptCA3TU9FZAHNQ8dbz +a0vm4CF9841/FIk8tsLtwCT6ivkAi0lXGwhX0FK7FaAyU0nNeo/EPvDwzTim4XDK +9j1WGpE= +-----END CERTIFICATE-----