Compare commits

..
5 Commits
Author SHA1 Message Date
2martens 64faaa3c4a fix: Remove policy checker
continuous-integration/drone/tag Build is passing
2025-07-26 14:25:15 +02:00
2martens 32581e9cc8 fix: Make sure application starts up again
continuous-integration/drone/tag Build is passing
2025-07-26 14:14:06 +02:00
2martens 93016dabfa fix: Align ServiceProperties with rest of properties 2025-07-26 13:37:52 +02:00
2martens 6fb144ef43 fix: Remove config server and kafka
continuous-integration/drone/tag Build is passing
2025-07-26 13:31:34 +02:00
2martens 04bec53671 fix: Change ServiceProperties to open class
continuous-integration/drone/tag Build is passing
2025-07-26 13:24:13 +02:00
11 changed files with 19 additions and 45 deletions
-2
View File
@@ -9,6 +9,4 @@ dependencies {
implementation(libs.bundles.spring.boot.security) implementation(libs.bundles.spring.boot.security)
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.bus.kafka)
} }
@@ -15,9 +15,9 @@ import org.springframework.context.annotation.Configuration
name = "oauth2", name = "oauth2",
type = SecuritySchemeType.OAUTH2, type = SecuritySchemeType.OAUTH2,
flows = OAuthFlows( flows = OAuthFlows(
implicit = OAuthFlow( authorizationCode = OAuthFlow(
authorizationUrl = "https://id.2martens.de/realms/2martens/protocol/openid-connect/auth", authorizationUrl = "https://id.2martens.de/realms/twomartens/protocol/openid-connect/auth",
tokenUrl = "https://id.2martens.de/realms/2martens/protocol/openid-connect/token" tokenUrl = "https://id.2martens.de/realms/twomartens/protocol/openid-connect/token"
) )
) )
) )
@@ -11,13 +11,10 @@ import org.springframework.beans.factory.annotation.Value
import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration import org.springframework.context.annotation.Configuration
import org.springframework.http.HttpMethod 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.builders.HttpSecurity
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity 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.JwtDecoder
import org.springframework.security.oauth2.jwt.NimbusJwtDecoder import org.springframework.security.oauth2.jwt.NimbusJwtDecoder
import org.springframework.security.oauth2.server.resource.web.authentication.BearerTokenAuthenticationFilter
import org.springframework.security.web.SecurityFilterChain import org.springframework.security.web.SecurityFilterChain
import java.io.IOException import java.io.IOException
@@ -38,8 +35,6 @@ open class WebSecurityConfiguration {
.authorizeHttpRequests { it.requestMatchers(*PERMITTED_PATHS.toTypedArray<String>()).permitAll() } .authorizeHttpRequests { it.requestMatchers(*PERMITTED_PATHS.toTypedArray<String>()).permitAll() }
.authorizeHttpRequests { it.requestMatchers(HttpMethod.OPTIONS).permitAll() } .authorizeHttpRequests { it.requestMatchers(HttpMethod.OPTIONS).permitAll() }
.authorizeHttpRequests { it.anyRequest().authenticated() } .authorizeHttpRequests { it.anyRequest().authenticated() }
.oauth2ResourceServer { obj: OAuth2ResourceServerConfigurer<HttpSecurity?> -> obj.jwt(Customizer.withDefaults()) }
.addFilterAfter(createPolicyEnforcerFilter(), BearerTokenAuthenticationFilter::class.java)
return http.build() return http.build()
} }
@@ -2,13 +2,12 @@ package de.twomartens.wahlrecht.property
import io.swagger.v3.oas.annotations.media.Schema import io.swagger.v3.oas.annotations.media.Schema
import org.springframework.boot.context.properties.ConfigurationProperties 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 import java.time.ZoneId
@RefreshScope
@ConfigurationProperties(prefix = "de.twomartens.wahlrecht") @ConfigurationProperties(prefix = "de.twomartens.wahlrecht")
@Schema(description = "Properties, to configure this Application") @Schema(description = "Properties, to configure this Application")
class ServiceProperties { data class ServiceProperties @ConstructorBinding constructor(
lateinit var defaultTimeZone: ZoneId val defaultTimeZone: ZoneId,
lateinit var greeting: String val greeting: String
} )
@@ -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.ConfigurationProperties
import org.springframework.boot.context.properties.bind.ConstructorBinding import org.springframework.boot.context.properties.bind.ConstructorBinding
import org.springframework.boot.convert.DurationUnit import org.springframework.boot.convert.DurationUnit
import org.springframework.cloud.context.config.annotation.RefreshScope
import java.time.Duration import java.time.Duration
import java.time.temporal.ChronoUnit import java.time.temporal.ChronoUnit
@RefreshScope
@ConfigurationProperties(prefix = "de.twomartens.wahlrecht.statusprobe") @ConfigurationProperties(prefix = "de.twomartens.wahlrecht.statusprobe")
@Schema(description = "Properties, to configure this Application") @Schema(description = "Properties, to configure this Application")
data class StatusProbeProperties @ConstructorBinding constructor( 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 http.server.requests: true
spring: spring:
cloud:
config:
name: wahlrecht
main: main:
banner-mode: off banner-mode: off
profiles: profiles:
@@ -87,3 +84,12 @@ resttemplate:
connectionRestHealthIndicatorTimeoutInMillis: 5000 connectionRestHealthIndicatorTimeoutInMillis: 5000
readTimeoutRestTemplateInMillis: 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", "auth-server-url": "https://id.2martens.de",
"resource": "wahlrecht", "resource": "wahlrecht",
"http-method-as-scope": true "http-method-as-scope": true