major: Rename legalconsenthub to gremiumhub
All checks were successful
CI/CD Pipeline / frontend (push) Successful in 5m52s
CI/CD Pipeline / backend (push) Successful in 7m58s
CI/CD Pipeline / deploy (push) Successful in 1s

This commit is contained in:
2026-03-16 10:28:32 +01:00
parent 52fe6b6392
commit afec157b35
326 changed files with 566 additions and 1004 deletions

View File

@@ -1,37 +0,0 @@
import type { H3Event } from 'h3'
import { joinURL } from 'ufo'
import { jwtDecode } from 'jwt-decode'
import { createLogger } from '~~/shared/utils/logger'
export default defineEventHandler(async (event: H3Event) => {
const { serverApiBaseUrl, clientProxyBasePath } = useRuntimeConfig().public
const logger = createLogger({
level: useRuntimeConfig().public.logLevel,
tag: '🔀 proxy'
})
const escapedClientProxyBasePath = clientProxyBasePath.replace(/^\//, '\\/')
// Use the escaped value in the regex
const path = event.path.replace(new RegExp(`^${escapedClientProxyBasePath}`), '')
const target = joinURL(serverApiBaseUrl, path)
const session = await getUserSession(event)
const accessToken = session?.jwt?.accessToken
if (!accessToken && event.path !== '/api/actuator/health') {
throw createError({
statusCode: 401,
statusMessage: 'Not authenticated'
})
}
if (accessToken) {
logger.debug('Expiration:', new Date(jwtDecode(accessToken).exp! * 1000).toISOString())
}
logger.debug('Proxying request to:', target)
return proxyRequest(event, target, {
headers: {
Authorization: `Bearer ${accessToken}`
}
})
})

View File

@@ -1,43 +0,0 @@
import type { OAuthTokenResponse } from '~~/types/oAuth'
export default eventHandler(async (event) => {
const config = useRuntimeConfig()
const session = await getUserSession(event)
if (!session.jwt?.accessToken && !session.jwt?.refreshToken) {
throw createError({
statusCode: 401,
message: 'Unauthorized'
})
}
try {
const { access_token, refresh_token } = await $fetch<OAuthTokenResponse>(config.public.keycloakTokenUrl, {
method: 'POST',
headers: { 'content-type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({
grant_type: 'refresh_token',
client_id: config.oauth.keycloak.clientId,
client_secret: config.oauth.keycloak.clientSecret,
refresh_token: session.jwt.refreshToken
}).toString()
})
await setUserSession(event, {
jwt: {
accessToken: access_token,
refreshToken: refresh_token || session.jwt.refreshToken
},
loggedInAt: Date.now()
})
return {
accessToken: access_token,
refreshToken: refresh_token || session.jwt.refreshToken
}
} catch {
throw createError({
statusCode: 401,
message: 'refresh token is invalid'
})
}
})