Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0082305a5a
|
||
|
|
11345c94a5
|
||
|
|
f5f773a90b | ||
|
|
323337ed64 | ||
|
|
b04d6f4389 |
+7
-23
@@ -118,10 +118,13 @@ steps:
|
|||||||
- ssh-keyscan -H git.2martens.de > $HOME/.ssh/known_hosts 2>/dev/null
|
- ssh-keyscan -H git.2martens.de > $HOME/.ssh/known_hosts 2>/dev/null
|
||||||
- git clone ssh://giteajim@git.2martens.de:22/2martens/cloud-configuration.git .
|
- git clone ssh://giteajim@git.2martens.de:22/2martens/cloud-configuration.git .
|
||||||
- git checkout main
|
- git checkout main
|
||||||
- name: modify deployed image
|
- name: update image version
|
||||||
image: alpine
|
image: alpine
|
||||||
commands:
|
commands:
|
||||||
- sed -i -r "s/(wahlrecht_image_version:).*/\1\ ${DRONE_SEMVER}/" ansible/inventories/host_vars/api-server/public.yaml
|
- mkdir $HOME/bin
|
||||||
|
- wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_arm64 -O $HOME/bin/yq && chmod +x $HOME/bin/yq
|
||||||
|
- sed -i -r "s/(tag:).*/\1\ \"${DRONE_SEMVER}\"/" argocd/wahlrecht/${DRONE_DEPLOY_TO}/overwrite_values.yaml
|
||||||
|
- cd argocd/wahlrecht/${DRONE_DEPLOY_TO} && $HOME/bin/yq '. *= load("overwrite_values.yaml")' default_values.yaml > values.yaml
|
||||||
- name: save modified variable file
|
- name: save modified variable file
|
||||||
image: alpine/git
|
image: alpine/git
|
||||||
environment:
|
environment:
|
||||||
@@ -134,32 +137,13 @@ steps:
|
|||||||
- touch $HOME/.ssh/known_hosts
|
- touch $HOME/.ssh/known_hosts
|
||||||
- chmod 600 $HOME/.ssh/known_hosts
|
- chmod 600 $HOME/.ssh/known_hosts
|
||||||
- ssh-keyscan -H git.2martens.de > $HOME/.ssh/known_hosts 2>/dev/null
|
- ssh-keyscan -H git.2martens.de > $HOME/.ssh/known_hosts 2>/dev/null
|
||||||
- git add ansible/inventories/host_vars/api-server/public.yaml
|
- git add argocd/wahlrecht/${DRONE_DEPLOY_TO}/*
|
||||||
- git diff-index --quiet HEAD || git commit -m "[Drone] Changed wahlrecht_image_version to ${DRONE_SEMVER}"
|
- git diff-index --quiet HEAD || git commit -m "[Drone] Changed wahlrecht_image_version to ${DRONE_SEMVER}"
|
||||||
- git push origin main
|
- git push origin main
|
||||||
- name: deploy image
|
|
||||||
image: plugins/ansible:latest
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
path: /root/.ansible
|
|
||||||
settings:
|
|
||||||
playbook: ansible/deploy_spring.yaml
|
|
||||||
inventory: ansible/inventories/production
|
|
||||||
galaxy: ansible/requirements.yaml
|
|
||||||
galaxy_force: false
|
|
||||||
private_key:
|
|
||||||
from_secret: private_ssh_key
|
|
||||||
vault_password:
|
|
||||||
from_secret: vault_password
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: cache
|
|
||||||
host:
|
|
||||||
path: /var/lib/drone/cache/.ansible
|
|
||||||
|
|
||||||
trigger:
|
trigger:
|
||||||
target:
|
target:
|
||||||
- production
|
- test
|
||||||
event:
|
event:
|
||||||
include:
|
include:
|
||||||
- promote
|
- promote
|
||||||
|
|||||||
@@ -10,5 +10,4 @@ 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)
|
|
||||||
}
|
}
|
||||||
|
|||||||
-20
@@ -1,20 +0,0 @@
|
|||||||
package de.twomartens.wahlrecht.configuration
|
|
||||||
|
|
||||||
import org.apache.kafka.clients.admin.AdminClientConfig
|
|
||||||
import org.springframework.beans.factory.annotation.Value
|
|
||||||
import org.springframework.context.annotation.Bean
|
|
||||||
import org.springframework.context.annotation.Configuration
|
|
||||||
import org.springframework.kafka.core.KafkaAdmin
|
|
||||||
|
|
||||||
@Configuration
|
|
||||||
open class KafkaConfiguration {
|
|
||||||
@Value(value = "\${spring.kafka.bootstrap-servers[0]}")
|
|
||||||
private val bootstrapServers: List<String> = mutableListOf()
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
open fun kafkaAdmin(): KafkaAdmin {
|
|
||||||
val configs: MutableMap<String, Any?> = HashMap()
|
|
||||||
configs[AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG] = bootstrapServers.first()
|
|
||||||
return KafkaAdmin(configs)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+41
-40
@@ -13,53 +13,54 @@ import org.keycloak.representations.idm.authorization.Permission
|
|||||||
class SpringPolicyEnforcer(private val policyEnforcer: PolicyEnforcer,
|
class SpringPolicyEnforcer(private val policyEnforcer: PolicyEnforcer,
|
||||||
private val policyEnforcerConfig: PolicyEnforcerConfig) {
|
private val policyEnforcerConfig: PolicyEnforcerConfig) {
|
||||||
|
|
||||||
fun enforce(request: HttpRequest, response: HttpResponse): AuthorizationContext {
|
fun enforce(request: HttpRequest, response: HttpResponse): AuthorizationContext {
|
||||||
if (log.isDebugEnabled) {
|
if (log.isDebugEnabled) {
|
||||||
log.debug("Policy enforcement is enabled. Enforcing policy decisions for path [{}].", request.uri)
|
log.debug("Policy enforcement is enabled. Enforcing policy decisions for path [{}].", request.uri)
|
||||||
}
|
|
||||||
val context = authorize(request, response)
|
|
||||||
if (log.isDebugEnabled) {
|
|
||||||
log.debug("Policy enforcement result for path [{}] is : {}", request.uri, if (context.isGranted) "GRANTED" else "DENIED")
|
|
||||||
log.debug("Returning authorization context with permissions:")
|
|
||||||
for (permission in context.permissions) {
|
|
||||||
log.debug(permission.toString())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return context
|
|
||||||
}
|
}
|
||||||
|
val context = authorize(request, response)
|
||||||
private fun authorize(request: HttpRequest, response: HttpResponse): AuthorizationContext {
|
if (log.isDebugEnabled) {
|
||||||
val enforcementMode = policyEnforcerConfig.enforcementMode
|
log.debug("Policy enforcement result for path [{}] is : {}", request.uri, if (context.isGranted) "GRANTED" else "DENIED")
|
||||||
return if (EnforcementMode.DISABLED == enforcementMode) {
|
log.debug("Returning authorization context with permissions:")
|
||||||
createAuthorizedContext()
|
for (permission in context.permissions) {
|
||||||
} else policyEnforcer.enforce(request, response)
|
log.debug(permission.toString())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return context
|
||||||
|
}
|
||||||
|
|
||||||
private fun createAuthorizedContext(): AuthorizationContext {
|
private fun authorize(request: HttpRequest, response: HttpResponse): AuthorizationContext {
|
||||||
return object : ClientAuthorizationContext(policyEnforcer.authzClient) {
|
val enforcementMode = policyEnforcerConfig.enforcementMode
|
||||||
override fun hasPermission(resourceName: String, scopeName: String): Boolean {
|
log.debug("Authorize with enforcement mode: [{}]", enforcementMode)
|
||||||
return true
|
return if (EnforcementMode.DISABLED == enforcementMode) {
|
||||||
}
|
createAuthorizedContext()
|
||||||
|
} else policyEnforcer.enforce(request, response)
|
||||||
|
}
|
||||||
|
|
||||||
override fun hasResourcePermission(resourceName: String): Boolean {
|
private fun createAuthorizedContext(): AuthorizationContext {
|
||||||
return true
|
return object : ClientAuthorizationContext(policyEnforcer.authzClient) {
|
||||||
}
|
override fun hasPermission(resourceName: String, scopeName: String): Boolean {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
override fun hasScopePermission(scopeName: String): Boolean {
|
override fun hasResourcePermission(resourceName: String): Boolean {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getPermissions(): List<Permission> {
|
override fun hasScopePermission(scopeName: String): Boolean {
|
||||||
return emptyList()
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun isGranted(): Boolean {
|
override fun getPermissions(): List<Permission> {
|
||||||
return true
|
return emptyList()
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
override fun isGranted(): Boolean {
|
||||||
|
return true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val log = KotlinLogging.logger {}
|
private val log = KotlinLogging.logger {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,3 @@
|
|||||||
server.port: 12000
|
|
||||||
management.server.port: 12001
|
|
||||||
|
|
||||||
|
|
||||||
spring:
|
spring:
|
||||||
config:
|
config:
|
||||||
import:
|
import:
|
||||||
|
|||||||
@@ -2,6 +2,3 @@ spring:
|
|||||||
config:
|
config:
|
||||||
import:
|
import:
|
||||||
- "configserver:${CONFIGSERVER_SCHEME:http}://${CONFIGSERVER_HOST:configserver}:${CONFIGSERVER_PORT:8888}${CONFIGSERVER_PREFIX:/config}"
|
- "configserver:${CONFIGSERVER_SCHEME:http}://${CONFIGSERVER_HOST:configserver}:${CONFIGSERVER_PORT:8888}${CONFIGSERVER_PREFIX:/config}"
|
||||||
kafka:
|
|
||||||
bootstrap-servers:
|
|
||||||
- ${KAFKA_HOST:kafka}:${KAFKA_PORT:9092}
|
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
server:
|
server:
|
||||||
port: 12000
|
port: ${PORT:12000}
|
||||||
shutdown: graceful
|
shutdown: graceful
|
||||||
forward-headers-strategy: framework
|
forward-headers-strategy: framework
|
||||||
|
|
||||||
### technical configurations ###
|
### technical configurations ###
|
||||||
management:
|
management:
|
||||||
# for security, don't use same port as application
|
# for security, don't use same port as application
|
||||||
server.port: 12001
|
server.port: ${ACTUATOR_PORT:12001}
|
||||||
health:
|
health:
|
||||||
livenessState.enabled: true
|
livenessState.enabled: true
|
||||||
readinessState.enabled: true
|
readinessState.enabled: true
|
||||||
|
|||||||
Reference in New Issue
Block a user