Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
08a9ac3584
|
||
|
|
64faaa3c4a
|
||
|
|
32581e9cc8
|
||
|
|
93016dabfa
|
||
|
|
6fb144ef43
|
@@ -0,0 +1,28 @@
|
||||
name: Build image
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*'
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
- name: Set up Docker
|
||||
uses: docker/setup-docker-action@v4
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: 17
|
||||
- name: Setup Gradle
|
||||
uses: gradle/actions/setup-gradle@v4
|
||||
- name: Build and push container
|
||||
run: ./gradlew -Prelease.useLastTag=true final jib
|
||||
env:
|
||||
USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
@@ -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")
|
||||
open 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:
|
||||
@@ -87,3 +84,12 @@ resttemplate:
|
||||
connectionRestHealthIndicatorTimeoutInMillis: 5000
|
||||
readTimeoutRestTemplateInMillis: 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