Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
64faaa3c4a
|
||
|
|
32581e9cc8
|
||
|
|
93016dabfa
|
||
|
|
6fb144ef43
|
||
|
|
04bec53671
|
||
|
|
40ed9b8fba
|
||
|
|
a8d2aaef09
|
+15
-14
@@ -1,21 +1,22 @@
|
||||
[versions]
|
||||
spring-boot = "3.2.3"
|
||||
spring-doc = "2.3.0"
|
||||
spring-cloud = "2023.0.0"
|
||||
spring-boot = "3.5.4"
|
||||
spring-doc = "2.8.9"
|
||||
spring-cloud = "2025.0.0"
|
||||
spring-grpc = "2.14.0.RELEASE"
|
||||
grpc = "1.57.0"
|
||||
tomcat-annotations = "6.0.53"
|
||||
httpclient = "5.3.1"
|
||||
slf4j = "2.0.12"
|
||||
log4j = "2.23.0"
|
||||
log4j-ecs = "1.6.0"
|
||||
mapstruct = "1.5.5.Final"
|
||||
junit = "5.10.2"
|
||||
assertj = "3.25.3"
|
||||
mockito = "5.11.0"
|
||||
keycloak = "24.0.1"
|
||||
httpclient = "5.5"
|
||||
slf4j = "2.0.17"
|
||||
log4j = "2.25.1"
|
||||
log4j-ecs = "1.7.0"
|
||||
mapstruct = "1.6.3"
|
||||
junit = "5.13.4"
|
||||
assertj = "3.27.3"
|
||||
mockito = "5.18.0"
|
||||
keycloak = "26.3.2"
|
||||
keycloak-policy-enforcer = "26.0.6"
|
||||
kotlin-logging = "3.0.5"
|
||||
kotlin-reflect = "1.9.22"
|
||||
kotlin-reflect = "2.2.0"
|
||||
kotlin-lombok = "1.9.0"
|
||||
plugin-nebula-release = "17.2.2"
|
||||
plugin-lombok = "8.0.1"
|
||||
@@ -47,7 +48,7 @@ spring-ui = { module = "org.springdoc:springdoc-openapi-starter-webmvc-ui", vers
|
||||
spring-sec = { module = "org.springdoc:springdoc-openapi-starter-common", version.ref = "spring-doc" }
|
||||
spring-openapi = { module = "org.springdoc:springdoc-openapi-starter-webmvc-api", version.ref = "spring-doc" }
|
||||
keycloak-core = { module = "org.keycloak:keycloak-core", version.ref = "keycloak" }
|
||||
keycloak-policy-enforcer = { module = "org.keycloak:keycloak-policy-enforcer", version.ref = "keycloak" }
|
||||
keycloak-policy-enforcer = { module = "org.keycloak:keycloak-policy-enforcer", version.ref = "keycloak-policy-enforcer" }
|
||||
grpc-api = { module = "io.grpc:grpc-api", version.ref = "grpc" }
|
||||
grpc-context = { module = "io.grpc:grpc-context", version.ref = "grpc" }
|
||||
grpc-core = { module = "io.grpc:grpc-core", version.ref = "grpc" }
|
||||
|
||||
@@ -9,6 +9,4 @@ dependencies {
|
||||
implementation(libs.bundles.spring.boot.security)
|
||||
annotationProcessor(libs.mapstruct.processor)
|
||||
kapt(libs.mapstruct.processor)
|
||||
implementation(libs.spring.cloud.starter.config)
|
||||
implementation(libs.spring.cloud.starter.bus.kafka)
|
||||
}
|
||||
|
||||
+3
-3
@@ -15,9 +15,9 @@ import org.springframework.context.annotation.Configuration
|
||||
name = "oauth2",
|
||||
type = SecuritySchemeType.OAUTH2,
|
||||
flows = OAuthFlows(
|
||||
implicit = OAuthFlow(
|
||||
authorizationUrl = "https://id.2martens.de/realms/2martens/protocol/openid-connect/auth",
|
||||
tokenUrl = "https://id.2martens.de/realms/2martens/protocol/openid-connect/token"
|
||||
authorizationCode = OAuthFlow(
|
||||
authorizationUrl = "https://id.2martens.de/realms/twomartens/protocol/openid-connect/auth",
|
||||
tokenUrl = "https://id.2martens.de/realms/twomartens/protocol/openid-connect/token"
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
-5
@@ -11,13 +11,10 @@ import org.springframework.beans.factory.annotation.Value
|
||||
import org.springframework.context.annotation.Bean
|
||||
import org.springframework.context.annotation.Configuration
|
||||
import org.springframework.http.HttpMethod
|
||||
import org.springframework.security.config.Customizer
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity
|
||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity
|
||||
import org.springframework.security.config.annotation.web.configurers.oauth2.server.resource.OAuth2ResourceServerConfigurer
|
||||
import org.springframework.security.oauth2.jwt.JwtDecoder
|
||||
import org.springframework.security.oauth2.jwt.NimbusJwtDecoder
|
||||
import org.springframework.security.oauth2.server.resource.web.authentication.BearerTokenAuthenticationFilter
|
||||
import org.springframework.security.web.SecurityFilterChain
|
||||
import java.io.IOException
|
||||
|
||||
@@ -38,8 +35,6 @@ open class WebSecurityConfiguration {
|
||||
.authorizeHttpRequests { it.requestMatchers(*PERMITTED_PATHS.toTypedArray<String>()).permitAll() }
|
||||
.authorizeHttpRequests { it.requestMatchers(HttpMethod.OPTIONS).permitAll() }
|
||||
.authorizeHttpRequests { it.anyRequest().authenticated() }
|
||||
.oauth2ResourceServer { obj: OAuth2ResourceServerConfigurer<HttpSecurity?> -> obj.jwt(Customizer.withDefaults()) }
|
||||
.addFilterAfter(createPolicyEnforcerFilter(), BearerTokenAuthenticationFilter::class.java)
|
||||
return http.build()
|
||||
}
|
||||
|
||||
|
||||
@@ -2,13 +2,12 @@ package de.twomartens.wahlrecht.property
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties
|
||||
import org.springframework.cloud.context.config.annotation.RefreshScope
|
||||
import org.springframework.boot.context.properties.bind.ConstructorBinding
|
||||
import java.time.ZoneId
|
||||
|
||||
@RefreshScope
|
||||
@ConfigurationProperties(prefix = "de.twomartens.wahlrecht")
|
||||
@Schema(description = "Properties, to configure this Application")
|
||||
class ServiceProperties {
|
||||
lateinit var defaultTimeZone: ZoneId
|
||||
lateinit var greeting: String
|
||||
}
|
||||
data class ServiceProperties @ConstructorBinding constructor(
|
||||
val defaultTimeZone: ZoneId,
|
||||
val greeting: String
|
||||
)
|
||||
-2
@@ -4,11 +4,9 @@ import io.swagger.v3.oas.annotations.media.Schema
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties
|
||||
import org.springframework.boot.context.properties.bind.ConstructorBinding
|
||||
import org.springframework.boot.convert.DurationUnit
|
||||
import org.springframework.cloud.context.config.annotation.RefreshScope
|
||||
import java.time.Duration
|
||||
import java.time.temporal.ChronoUnit
|
||||
|
||||
@RefreshScope
|
||||
@ConfigurationProperties(prefix = "de.twomartens.wahlrecht.statusprobe")
|
||||
@Schema(description = "Properties, to configure this Application")
|
||||
data class StatusProbeProperties @ConstructorBinding constructor(
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
spring:
|
||||
config:
|
||||
import:
|
||||
- "classpath:config/wahlrecht.yaml"
|
||||
- "optional:configserver:${CONFIGSERVER_SCHEME:http}://${CONFIGSERVER_HOST:configserver}:${CONFIGSERVER_PORT:8888}${CONFIGSERVER_PREFIX:/config}"
|
||||
@@ -1,7 +0,0 @@
|
||||
spring:
|
||||
config:
|
||||
import:
|
||||
- "configserver:${CONFIGSERVER_SCHEME:http}://${CONFIGSERVER_HOST:configserver}:${CONFIGSERVER_PORT:8888}${CONFIGSERVER_PREFIX:/config}"
|
||||
kafka:
|
||||
bootstrap-servers:
|
||||
- "${KAFKA_HOST:kafka}:${KAFKA_PORT:9092}"
|
||||
@@ -24,9 +24,6 @@ management:
|
||||
http.server.requests: true
|
||||
|
||||
spring:
|
||||
cloud:
|
||||
config:
|
||||
name: wahlrecht
|
||||
main:
|
||||
banner-mode: off
|
||||
profiles:
|
||||
@@ -38,7 +35,7 @@ spring:
|
||||
oauth2:
|
||||
resourceserver:
|
||||
jwt:
|
||||
jwk-set-uri: ${KEYCLOAK_URL:https://id.2martens.de}/realms/${KEYCLOAK_REALM:2martens}/protocol/openid-connect/certs
|
||||
jwk-set-uri: ${KEYCLOAK_URL:https://id.2martens.de}/realms/${KEYCLOAK_REALM:twomartens}/protocol/openid-connect/certs
|
||||
application:
|
||||
name: wahlrecht
|
||||
|
||||
@@ -86,4 +83,13 @@ resttemplate:
|
||||
readTimeoutRestHealthIndicatorInMillis: 5000
|
||||
connectionRestHealthIndicatorTimeoutInMillis: 5000
|
||||
readTimeoutRestTemplateInMillis: 5000
|
||||
connectionRestTemplateTimeoutInMillis: 5000
|
||||
connectionRestTemplateTimeoutInMillis: 5000
|
||||
|
||||
de.twomartens.wahlrecht:
|
||||
defaultTimeZone: Europe/Berlin
|
||||
greeting: "Hello %s, on millenium"
|
||||
statusprobe:
|
||||
scheduleDuration: 60
|
||||
maxKafkaFailureDuration: 5
|
||||
maxBlobFailureCount: 5
|
||||
maxFailurePercent: 50
|
||||
@@ -1,2 +0,0 @@
|
||||
de.twomartens.wahlrecht:
|
||||
greeting: "Moin %s, you are test"
|
||||
@@ -1,8 +0,0 @@
|
||||
de.twomartens.wahlrecht:
|
||||
defaultTimeZone: Europe/Berlin
|
||||
greeting: "Hello %s, on millenium"
|
||||
statusprobe:
|
||||
scheduleDuration: 60
|
||||
maxKafkaFailureDuration: 5
|
||||
maxBlobFailureCount: 5
|
||||
maxFailurePercent: 50
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"realm": "2martens",
|
||||
"realm": "twomartens",
|
||||
"auth-server-url": "https://id.2martens.de",
|
||||
"resource": "wahlrecht",
|
||||
"http-method-as-scope": true
|
||||
|
||||
Reference in New Issue
Block a user