Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5eff527c48 | ||
|
|
642713e14c | ||
|
|
ff8b205124 | ||
|
|
8c5f925e36 |
@@ -38,6 +38,7 @@ spring-boot-oauth2-resource-server = { module = "org.springframework.boot:spring
|
|||||||
spring-boot-config = { module = "org.springframework.boot:spring-boot-configuration-processor", version.ref = "spring-boot" }
|
spring-boot-config = { module = "org.springframework.boot:spring-boot-configuration-processor", version.ref = "spring-boot" }
|
||||||
spring-cloud = { module = "org.springframework.cloud:spring-cloud-dependencies", version.ref = "spring-cloud" }
|
spring-cloud = { module = "org.springframework.cloud:spring-cloud-dependencies", version.ref = "spring-cloud" }
|
||||||
spring-cloud-starter = { module = "org.springframework.cloud:spring-cloud-starter" }
|
spring-cloud-starter = { module = "org.springframework.cloud:spring-cloud-starter" }
|
||||||
|
spring-cloud-starter-bus-kafka = { module = "org.springframework.cloud:spring-cloud-starter-bus-kafka" }
|
||||||
spring-cloud-starter-config = { module = "org.springframework.cloud:spring-cloud-starter-config" }
|
spring-cloud-starter-config = { module = "org.springframework.cloud:spring-cloud-starter-config" }
|
||||||
spring-cloud-config-server = { module = "org.springframework.cloud:spring-cloud-config-server" }
|
spring-cloud-config-server = { module = "org.springframework.cloud:spring-cloud-config-server" }
|
||||||
spring-boot-starter = { module = "org.springframework.boot:spring-boot-starter" }
|
spring-boot-starter = { module = "org.springframework.boot:spring-boot-starter" }
|
||||||
|
|||||||
@@ -10,4 +10,5 @@ dependencies {
|
|||||||
annotationProcessor(libs.mapstruct.processor)
|
annotationProcessor(libs.mapstruct.processor)
|
||||||
kapt(libs.mapstruct.processor)
|
kapt(libs.mapstruct.processor)
|
||||||
implementation(libs.spring.cloud.starter.config)
|
implementation(libs.spring.cloud.starter.config)
|
||||||
|
implementation(libs.spring.cloud.starter.bus.kafka)
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-2
@@ -1,6 +1,7 @@
|
|||||||
package de.twomartens.wahlrecht.monitoring.actuator
|
package de.twomartens.wahlrecht.monitoring.actuator
|
||||||
|
|
||||||
import de.twomartens.wahlrecht.interceptor.HeaderInterceptorRest
|
import de.twomartens.wahlrecht.interceptor.HeaderInterceptorRest
|
||||||
|
import de.twomartens.wahlrecht.property.ServiceProperties
|
||||||
import org.springframework.boot.actuate.health.Health
|
import org.springframework.boot.actuate.health.Health
|
||||||
import org.springframework.boot.actuate.health.HealthIndicator
|
import org.springframework.boot.actuate.health.HealthIndicator
|
||||||
import org.springframework.boot.actuate.health.Status
|
import org.springframework.boot.actuate.health.Status
|
||||||
@@ -29,7 +30,9 @@ import java.time.Clock
|
|||||||
@Component
|
@Component
|
||||||
class RestHealthIndicator(
|
class RestHealthIndicator(
|
||||||
clock: Clock, interceptor: HeaderInterceptorRest,
|
clock: Clock, interceptor: HeaderInterceptorRest,
|
||||||
serverProperties: ServerProperties, private val restTemplateRestHealthIndicator: RestTemplate
|
serverProperties: ServerProperties,
|
||||||
|
private val restTemplateRestHealthIndicator: RestTemplate,
|
||||||
|
private val serviceProperties: ServiceProperties
|
||||||
) : AbstractHealthIndicator(clock, Preparable { interceptor.markAsHealthCheck() }), HealthIndicator {
|
) : AbstractHealthIndicator(clock, Preparable { interceptor.markAsHealthCheck() }), HealthIndicator {
|
||||||
private val randomizer = SecureRandom()
|
private val randomizer = SecureRandom()
|
||||||
private val urlPrefix: String = (HTTP_PREFIX + HOST + HOST_PORT_SEPARATOR
|
private val urlPrefix: String = (HTTP_PREFIX + HOST + HOST_PORT_SEPARATOR
|
||||||
@@ -43,7 +46,7 @@ class RestHealthIndicator(
|
|||||||
val random = randomizer.nextInt(100000, 999999).toString()
|
val random = randomizer.nextInt(100000, 999999).toString()
|
||||||
val url = "$urlPrefix{random}"
|
val url = "$urlPrefix{random}"
|
||||||
val response = restTemplateRestHealthIndicator.getForEntity(url, String::class.java, random)
|
val response = restTemplateRestHealthIndicator.getForEntity(url, String::class.java, random)
|
||||||
val status = if (response.body == random) Status.UP else Status.DOWN
|
val status = if (response.body == serviceProperties.greeting.format(random)) Status.UP else Status.DOWN
|
||||||
return Health.status(status)
|
return Health.status(status)
|
||||||
.withDetail(DETAIL_ENDPOINT_KEY, url)
|
.withDetail(DETAIL_ENDPOINT_KEY, url)
|
||||||
.build()
|
.build()
|
||||||
|
|||||||
@@ -1,2 +1,9 @@
|
|||||||
server.port: 12000
|
server.port: 12000
|
||||||
management.server.port: 12001
|
management.server.port: 12001
|
||||||
|
|
||||||
|
|
||||||
|
spring:
|
||||||
|
config:
|
||||||
|
import:
|
||||||
|
- "classpath:config/wahlrecht.yaml"
|
||||||
|
- "optional:configserver:http://localhost:8888/config"
|
||||||
|
|||||||
@@ -23,9 +23,9 @@ management:
|
|||||||
http.server.requests: true
|
http.server.requests: true
|
||||||
|
|
||||||
spring:
|
spring:
|
||||||
|
cloud:
|
||||||
config:
|
config:
|
||||||
import:
|
name: wahlrecht
|
||||||
- "classpath:config/wahlrecht.yaml"
|
|
||||||
main:
|
main:
|
||||||
banner-mode: off
|
banner-mode: off
|
||||||
profiles:
|
profiles:
|
||||||
@@ -38,9 +38,6 @@ spring:
|
|||||||
resourceserver:
|
resourceserver:
|
||||||
jwt:
|
jwt:
|
||||||
jwk-set-uri: https://id.2martens.de/realms/2martens/protocol/openid-connect/certs
|
jwk-set-uri: https://id.2martens.de/realms/2martens/protocol/openid-connect/certs
|
||||||
application:
|
|
||||||
name: wahlrecht
|
|
||||||
|
|
||||||
|
|
||||||
springdoc:
|
springdoc:
|
||||||
swagger-ui:
|
swagger-ui:
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
de.twomartens.wahlrecht:
|
de.twomartens.wahlrecht:
|
||||||
greeting: "Moin %s"
|
greeting: "Moin %s, you are great"
|
||||||
|
|||||||
Reference in New Issue
Block a user