remove the workaround introduced in 36acf1a00a and update the Dockerfile
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Jannik 2020-06-08 17:49:38 +02:00
parent 36acf1a00a
commit 46c9a61124
Signed by: Seil0
GPG Key ID: E8459F3723C52C24
4 changed files with 12 additions and 80 deletions

View File

@ -1,4 +1,8 @@
FROM openjdk:11 FROM adoptopenjdk/openjdk11:alpine-jre
RUN addgroup -S spring && adduser -S spring -G spring
#RUN groupadd -r spring && useradd -r -g spring spring # for openjdk:xx builds
USER spring:spring
ARG JAR_FILE=build/libs/*.jar ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} thecitadelofricks.jar COPY ${JAR_FILE} thecitadelofricks.jar
ENTRYPOINT ["java","-jar","/thecitadelofricks.jar"] ENTRYPOINT ["java","-Djavax.net.ssl.trustStore=/tcor/cacerts", "-Djavax.net.ssl.trustStorePassword=changeit", "-jar","/thecitadelofricks.jar"]
VOLUME /tcor

View File

@ -26,17 +26,10 @@ import org.jsoup.Jsoup
import org.mosad.thecitadelofricks.Course import org.mosad.thecitadelofricks.Course
import org.slf4j.LoggerFactory import org.slf4j.LoggerFactory
import java.net.SocketTimeoutException import java.net.SocketTimeoutException
import java.security.KeyManagementException
import java.security.cert.CertificateException
import java.security.cert.X509Certificate
import javax.net.ssl.SSLContext
import javax.net.ssl.SSLSocketFactory
import javax.net.ssl.TrustManager
import javax.net.ssl.X509TrustManager
class CourseListParser { class CourseListParser {
private var logger: org.slf4j.Logger = LoggerFactory.getLogger(MensaParser::class.java) private var logger: org.slf4j.Logger = LoggerFactory.getLogger(CourseListParser::class.java)
/** /**
* return a list of all courses at courseListURL * return a list of all courses at courseListURL
@ -46,7 +39,7 @@ class CourseListParser {
fun getCourseLinks(courseListURL: String): HashMap<String, Course>? { fun getCourseLinks(courseListURL: String): HashMap<String, Course>? {
val courseLinkList = HashMap<String, Course>() val courseLinkList = HashMap<String, Course>()
try { try {
val courseHTML = Jsoup.connect(courseListURL).sslSocketFactory(socketFactory()).get() val courseHTML = Jsoup.connect(courseListURL).get()
courseHTML.select("ul.index-group").select("li.Class").select("a[href]").forEachIndexed { _, element -> courseHTML.select("ul.index-group").select("li.Class").select("a[href]").forEachIndexed { _, element ->
courseLinkList[element.text()] = Course( courseLinkList[element.text()] = Course(
@ -54,6 +47,7 @@ class CourseListParser {
element.attr("href").replace("http", "https") element.attr("href").replace("http", "https")
) )
} }
logger.info("successfully retrieved course List")
} catch (ex: SocketTimeoutException) { } catch (ex: SocketTimeoutException) {
logger.warn("timeout from hs-offenburg.de, updating on next attempt!") logger.warn("timeout from hs-offenburg.de, updating on next attempt!")
return null return null
@ -64,34 +58,4 @@ class CourseListParser {
return courseLinkList return courseLinkList
} }
// Hack to ignore ssl errors while reading
private fun socketFactory(): SSLSocketFactory {
val trustAllCerts = arrayOf<TrustManager>(object : X509TrustManager {
@Throws(CertificateException::class)
override fun checkClientTrusted(chain: Array<X509Certificate>, authType: String) {
}
@Throws(CertificateException::class)
override fun checkServerTrusted(chain: Array<X509Certificate>, authType: String) {
}
override fun getAcceptedIssuers(): Array<X509Certificate> {
return arrayOf()
}
})
try {
val sslContext = SSLContext.getInstance("TLS")
sslContext.init(null, trustAllCerts, java.security.SecureRandom())
return sslContext.socketFactory
} catch (e: Exception) {
when (e) {
is RuntimeException, is KeyManagementException -> {
throw RuntimeException("Failed to create a SSL socket factory", e)
}
else -> throw e
}
}
}
} }

View File

@ -27,13 +27,6 @@ import org.jsoup.nodes.Document
import org.mosad.thecitadelofricks.Lesson import org.mosad.thecitadelofricks.Lesson
import org.mosad.thecitadelofricks.TimetableWeek import org.mosad.thecitadelofricks.TimetableWeek
import org.slf4j.LoggerFactory import org.slf4j.LoggerFactory
import java.security.KeyManagementException
import java.security.cert.CertificateException
import java.security.cert.X509Certificate
import javax.net.ssl.SSLContext
import javax.net.ssl.SSLSocketFactory
import javax.net.ssl.TrustManager
import javax.net.ssl.X509TrustManager
class TimetableParser { class TimetableParser {
private var logger: org.slf4j.Logger = LoggerFactory.getLogger(TimetableParser::class.java) private var logger: org.slf4j.Logger = LoggerFactory.getLogger(TimetableParser::class.java)
@ -47,7 +40,7 @@ class TimetableParser {
*/ */
fun getTimeTable(timetableURL: String): TimetableWeek { fun getTimeTable(timetableURL: String): TimetableWeek {
return try { return try {
parseTimeTable(Jsoup.connect(timetableURL).sslSocketFactory(socketFactory()).get()) parseTimeTable(Jsoup.connect(timetableURL).get())
} catch (gex: Exception) { } catch (gex: Exception) {
logger.error("general TimetableParser error", gex) logger.error("general TimetableParser error", gex)
TimetableWeek() TimetableWeek()
@ -129,7 +122,7 @@ class TimetableParser {
*/ */
fun getWeekNumberYear(timetableURL: String): Int { fun getWeekNumberYear(timetableURL: String): Int {
return try { return try {
parseWeekNumberYear(Jsoup.connect(timetableURL).sslSocketFactory(socketFactory()).get()) parseWeekNumberYear(Jsoup.connect(timetableURL).get())
} catch (gex: Exception) { } catch (gex: Exception) {
logger.error("general TimetableParser error", gex) logger.error("general TimetableParser error", gex)
0 0
@ -189,33 +182,4 @@ class TimetableParser {
println(" \n") println(" \n")
} }
// Hack to ignore ssl errors while reading
private fun socketFactory(): SSLSocketFactory {
val trustAllCerts = arrayOf<TrustManager>(object : X509TrustManager {
@Throws(CertificateException::class)
override fun checkClientTrusted(chain: Array<X509Certificate>, authType: String) {
}
@Throws(CertificateException::class)
override fun checkServerTrusted(chain: Array<X509Certificate>, authType: String) {
}
override fun getAcceptedIssuers(): Array<X509Certificate> {
return arrayOf()
}
})
try {
val sslContext = SSLContext.getInstance("TLS")
sslContext.init(null, trustAllCerts, java.security.SecureRandom())
return sslContext.socketFactory
} catch (e: Exception) {
when (e) {
is RuntimeException, is KeyManagementException -> {
throw RuntimeException("Failed to create a SSL socket factory", e)
}
else -> throw e
}
}
}
} }

View File

@ -11,5 +11,5 @@ logging.level.org.springframework.web=INFO
# ---------------------------------------- # ----------------------------------------
# EMBEDDED SERVER CONFIGURATION (ServerProperties) # EMBEDDED SERVER CONFIGURATION (ServerProperties)
server.address=127.0.0.1 server.address=0.0.0.0
server.port=8080 server.port=8080