CI: gitea / nexus 서버 설정 반영

C:\Windows\System32\drivers\etc\hosts 파일에 doc\hosts 파일 내용 추가
    doc\settings.xml -> maven settings.xml로 반영
main
minuk926 2 years ago
parent d01ead50f9
commit 2e675ec45d

@ -0,0 +1,25 @@
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handled within DNS itself.
127.0.0.1 localhost
::1 localhost
# 개발 repository server
211.119.124.110 xit.xit-git.com
211.119.124.110 xit.xit-nexus.com

@ -0,0 +1,99 @@
<?xml version="1.0"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/SETTINGS/1.0.0">
<localRepository>C:/repo</localRepository>
<servers>
<server>
<id>maven-snapshot</id>
<username>xit-repo-user</username>
<password>xituser!@</password>
</server>
<server>
<id>maven-release</id>
<username>xit-repo-user</username>
<password>xituser!@</password>
</server>
<server>
<id>maven-3rdparty</id>
<username>xit-repo-user</username>
<password>xituser!@</password>
</server>
</servers>
<!--
<proxies>
<proxy>
<active>true</active>
<protocol>http</protocol>
<host>211.119.124.110</host>
<port>8081</port>
</proxy>
</proxies>
-->
<mirrors>
<!--
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://0.0.0.0</url>
<url>http://211.119.124.110:8081/repository/maven-3rdparty/</url>
<blocked>false</blocked>
</mirror>
-->
<!--
<mirror>
<id>maven-3rdparty</id>
<mirrorOf>*</mirrorOf>
<url>http://211.119.124.110:8081/repository/maven-3rdparty/</url>
<blocked>false</blocked>
</mirror>
<mirror>
<id>xit-repo-snapshot</id>
<mirrorOf>*</mirrorOf>
<url>http://211.119.124.110:8081/repository/maven-snapshots/</url>
<blocked>false</blocked>
</mirror>
<mirror>
<id>xit-repo-release</id>
<mirrorOf>*</mirrorOf>
<url>http://211.119.124.110:8081/repository/maven-releases/</url>
<blocked>false</blocked>
</mirror>
-->
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<repositories>
<!--
<repository>
<id>maven-3rdparty</id>
<url>http://211.119.124.110:8081/repository/maven-3rdparty/</url>
<layout>default</layout>
<snapshotPolicy>always</snapshotPolicy>
</repository>
-->
<!--
<repository>
<id>maven-snapshots</id>
<url>http://211.119.124.110:8081/repository/maven-snapshots/</url>
</repository>
<repository>
<id>maven-releases</id>
<url>http://211.119.124.110:8081/repository/maven-releases/</url>
</repository>
-->
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>

@ -5,9 +5,8 @@
<groupId>xit</groupId> <groupId>xit</groupId>
<artifactId>fims</artifactId> <artifactId>fims</artifactId>
<packaging>war</packaging> <packaging>war</packaging>
<version>1.0.0</version> <version>1.0.0-SNAPSHOT</version>
<name>fims</name> <name>fims</name>
<!-- <url>http://www.egovframe.go.kr</url> -->
<url>http://www.xit.co.kr</url> <url>http://www.xit.co.kr</url>
<licenses> <licenses>
@ -55,85 +54,16 @@
<enabled>false</enabled> <enabled>false</enabled>
</snapshots> </snapshots>
</repository> </repository>
<repository> <repository>
<id>local-repository</id> <id>maven-3rdparty</id>
<url>file://${project.basedir}/repo</url> <url>http://xit.xit-nexus.com:8081/repository/maven-3rdparty/</url>
</repository>
<!--
<repository>
<id>in-project-jenkins</id>
<name>custom jars-jenkins</name>
<url>file://${JENKINS_HOME}/jobs/${JOB_NAME}/workspace/lib</url>
</repository> </repository>
-->
</repositories> </repositories>
<dependencies> <dependencies>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>3.0.15.RELEASE</version>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
<version>3.0.15.RELEASE</version>
</dependency>
<dependency>
<groupId>nz.net.ultraq.thymeleaf</groupId>
<artifactId>thymeleaf-layout-dialect</artifactId>
<version>3.1.0</version>
</dependency>
<!--
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.23</version>
</dependency>
-->
<!--
<dependency>
<groupId>com.github.spullara.mustache.java</groupId>
<artifactId>compiler</artifactId>
<version>0.9.4</version>
</dependency>
<dependency>
<groupId>com.samskivert</groupId>
<artifactId>jmustache</artifactId>
<version>1.15</version>
</dependency>
-->
<!--
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mustache</artifactId>
<version>2.1.18.RELEASE</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
-->
<dependency> <dependency>
<groupId>egovframework.rte</groupId> <groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.logging</artifactId> <artifactId>egovframework.rte.fdl.logging</artifactId>
@ -278,6 +208,22 @@
</exclusions> </exclusions>
</dependency> </dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>3.0.15.RELEASE</version>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
<version>3.0.15.RELEASE</version>
</dependency>
<dependency>
<groupId>nz.net.ultraq.thymeleaf</groupId>
<artifactId>thymeleaf-layout-dialect</artifactId>
<version>3.1.0</version>
</dependency>
<dependency> <dependency>
<groupId>javax.servlet</groupId> <groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId> <artifactId>servlet-api</artifactId>
@ -735,7 +681,6 @@
</dependency> </dependency>
<!-- apache.cxf --> <!-- apache.cxf -->
<!--
<dependency> <dependency>
<groupId>org.apache.cxf</groupId> <groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId> <artifactId>cxf-rt-frontend-jaxrs</artifactId>
@ -751,7 +696,7 @@
<artifactId>wsdl4j</artifactId> <artifactId>wsdl4j</artifactId>
<version>1.6.2</version> <version>1.6.2</version>
</dependency> </dependency>
-->
<!-- <!--
<dependency> <dependency>
<groupId>com.sun.xml.bind</groupId> <groupId>com.sun.xml.bind</groupId>
@ -883,11 +828,8 @@
</plugin> </plugin>
</plugins> </plugins>
</pluginManagement> </pluginManagement>
<plugins>
<plugins>
<!-- EMMA --> <!-- EMMA -->
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
@ -1000,71 +942,30 @@
</plugins> </plugins>
</build> </build>
<reporting>
<outputDirectory>${basedir}/target/site</outputDirectory> <!-- Nexus deploy -->
<plugins> <distributionManagement>
<plugin> <snapshotRepository>
<groupId>org.apache.maven.plugins</groupId> <id>maven-snapshot</id>
<artifactId>maven-project-info-reports-plugin</artifactId> <!-- <url>https://xit.xit-nexus.com:8443/repository/maven-snapshots/</url>-->
<version>2.7</version> <url>http://xit.xit-nexus.com:8081/repository/maven-snapshots/</url>
<reportSets> <snapshots>
<reportSet> <enabled>true</enabled>
<id>sunlink</id> <updatePolicy>always</updatePolicy>
<reports> </snapshots>
<report>javadoc</report> <releases>
</reports> <enabled>false</enabled>
<inherited>true</inherited> </releases>
<configuration> </snapshotRepository>
<links>
<link>http://docs.oracle.com/javase/6/docs/api/</link> <repository>
</links> <id>maven-release</id>
</configuration> <url>http://xit.xit-nexus.com:8081/repository/maven-releases/</url>
</reportSet> <!-- <url>https://xit.xit-nexus.com:8443/repository/maven-releases/</url>-->
</reportSets> </repository>
</plugin>
<!-- JUnit Test Results & EMMA Coverage Reporting --> </distributionManagement>
<plugin> <!-- Nexus deploy -->
<groupId>org.codehaus.mojo</groupId>
<artifactId>emma-maven-plugin</artifactId>
<inherited>true</inherited>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>surefire-report-maven-plugin</artifactId>
<inherited>true</inherited>
<reportSets>
<reportSet>
<reports>
<report>report-only</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<!-- Generating JavaDoc Report -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<minmemory>128m</minmemory>
<maxmemory>512m</maxmemory>
<encoding>${encoding}</encoding>
<docencoding>${encoding}</docencoding>
<charset>${encoding}</charset>
</configuration>
</plugin>
<!-- Generating Java Source in HTML -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<configuration>
<inputEncoding>${encoding}</inputEncoding>
<outputEncoding>${encoding}</outputEncoding>
<linkJavadoc>true</linkJavadoc>
<javadocDir>apidocs</javadocDir>
</configuration>
</plugin>
</plugins>
</reporting>
<profiles> <profiles>
<!-- default : local configuration --> <!-- default : local configuration -->
@ -1099,6 +1000,7 @@
<activeByDefault>false</activeByDefault> <activeByDefault>false</activeByDefault>
</activation> </activation>
</profile> </profile>
</profiles> </profiles>
</project> </project>

@ -0,0 +1,216 @@
package kr.xit.framework.support.cert;/*
* Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of Sun Microsystems nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/**
* check out this {@link https://www.lesstif.com/pages/viewpage.action?pageId=12451848}
*
* Usage:
*
* 1. download source
* curl -O https://gist.githubusercontent.com/lesstif/cd26f57b7cfd2cd55241b20e05b5cd93/raw/InstallCert.java
*
* 2. compiling
* javac InstallCert.java
*
* 3. Run
* java -cp . InstallCert https://google.com:443
*
* 4. save peer's ssl cert to keystore(name is jssecacerts)
*
* 5. extract cert from saved keystore
* keytool -exportcert -keystore jssecacerts -storepass changeit -file output.cert -alias letsencrypt
*
* 6. import cert into JDK's keystore
* keytool -importcert -keystore ${JAVA_HOME}/jre/lib/security/cacerts -storepass changeit -file output.cert -alias letsencrypt
*
*/
/**
* http://blogs.sun.com/andreas/resource/InstallCert.java
* Use:
* java InstallCert hostname
* Example:
*% java InstallCert ecc.fedora.redhat.com
*/
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.security.KeyStore;
import java.security.MessageDigest;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLException;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
import javax.net.ssl.X509TrustManager;
/**
* Class used to add the server's certificate to the KeyStore
* with your trusted certificates.
*/
public class InstallCert {
public static void main(String[] args) throws Exception {
String host;
int port;
char[] passphrase;
if ((args.length == 1) || (args.length == 2)) {
String[] c = args[0].split(":");
host = c[0];
port = (c.length == 1) ? 443 : Integer.parseInt(c[1]);
String p = (args.length == 1) ? "changeit" : args[1];
passphrase = p.toCharArray();
} else {
System.out.println("Usage: java InstallCert <host>[:port] [passphrase]");
return;
}
File file = new File("jssecacerts");
if (file.isFile() == false) {
char SEP = File.separatorChar;
File dir = new File(System.getProperty("java.home") + SEP
+ "lib" + SEP + "security");
file = new File(dir, "jssecacerts");
if (file.isFile() == false) {
file = new File(dir, "cacerts");
}
}
System.out.println("Loading KeyStore " + file + "...");
InputStream in = new FileInputStream(file);
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(in, passphrase);
in.close();
SSLContext context = SSLContext.getInstance("TLS");
TrustManagerFactory tmf =
TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(ks);
X509TrustManager defaultTrustManager = (X509TrustManager) tmf.getTrustManagers()[0];
SavingTrustManager tm = new SavingTrustManager(defaultTrustManager);
context.init(null, new TrustManager[]{tm}, null);
SSLSocketFactory factory = context.getSocketFactory();
System.out.println("Opening connection to " + host + ":" + port + "...");
SSLSocket socket = (SSLSocket) factory.createSocket(host, port);
socket.setSoTimeout(10000);
try {
System.out.println("Starting SSL handshake...");
socket.startHandshake();
socket.close();
System.out.println();
System.out.println("No errors, certificate is already trusted");
} catch (SSLException e) {
System.out.println();
e.printStackTrace(System.out);
}
X509Certificate[] chain = tm.chain;
if (chain == null) {
System.out.println("Could not obtain server certificate chain");
return;
}
BufferedReader reader =
new BufferedReader(new InputStreamReader(System.in));
System.out.println();
System.out.println("Server sent " + chain.length + " certificate(s):");
System.out.println();
MessageDigest sha1 = MessageDigest.getInstance("SHA1");
MessageDigest md5 = MessageDigest.getInstance("MD5");
for (int i = 0; i < chain.length; i++) {
X509Certificate cert = chain[i];
System.out.println
(" " + (i + 1) + " Subject " + cert.getSubjectDN());
System.out.println(" Issuer " + cert.getIssuerDN());
sha1.update(cert.getEncoded());
System.out.println(" sha1 " + toHexString(sha1.digest()));
md5.update(cert.getEncoded());
System.out.println(" md5 " + toHexString(md5.digest()));
System.out.println();
}
System.out.println("Enter certificate to add to trusted keystore or 'q' to quit: [1]");
String line = reader.readLine().trim();
int k;
try {
k = (line.length() == 0) ? 0 : Integer.parseInt(line) - 1;
} catch (NumberFormatException e) {
System.out.println("KeyStore not changed");
return;
}
X509Certificate cert = chain[k];
String alias = host + "-" + (k + 1);
ks.setCertificateEntry(alias, cert);
OutputStream out = new FileOutputStream("jssecacerts");
ks.store(out, passphrase);
out.close();
System.out.println();
System.out.println(cert);
System.out.println();
System.out.println
("Added certificate to keystore 'jssecacerts' using alias '"
+ alias + "'");
}
private static final char[] HEXDIGITS = "0123456789abcdef".toCharArray();
private static String toHexString(byte[] bytes) {
StringBuilder sb = new StringBuilder(bytes.length * 3);
for (int b : bytes) {
b &= 0xff;
sb.append(HEXDIGITS[b >> 4]);
sb.append(HEXDIGITS[b & 15]);
sb.append(' ');
}
return sb.toString();
}
private static class SavingTrustManager implements X509TrustManager {
private final X509TrustManager tm;
private X509Certificate[] chain;
SavingTrustManager(X509TrustManager tm) {
this.tm = tm;
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
public void checkClientTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
throw new UnsupportedOperationException();
}
public void checkServerTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
this.chain = chain;
tm.checkServerTrusted(chain, authType);
}
}
}
Loading…
Cancel
Save