Skip to content

Commit

Permalink
Merge pull request #117 from ccims/next
Browse files Browse the repository at this point in the history
Move login service to own repository
  • Loading branch information
nk-coding authored Jul 27, 2024
2 parents 573f496 + cd99dca commit 9f9b185
Show file tree
Hide file tree
Showing 138 changed files with 64 additions and 59,363 deletions.
54 changes: 4 additions & 50 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,50 +1,4 @@
.gradle
**/build/
!src/**/build/
bin/

# Ignore Gradle GUI config
gradle-app.setting

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

# Cache of project
.gradletasknamecache
.idea
!.idea/codeStyles
.vscode

# Dependencies
node_modules

login-service/dist/

# Generated files
.docusaurus
.cache-loader

# Misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*

# generated api documentation
docs/api/
docs/login-service-api/

# generated schema
schemas/

# generated graphql documentation
docs/graphql/api-public/
docs/graphql/api-internal/

# generated rest documentation
rest-docs/login-service/
.gradle/
.kotlin/
build/
**/build/
78 changes: 0 additions & 78 deletions .github/workflows/deploy.yml

This file was deleted.

22 changes: 22 additions & 0 deletions .github/workflows/test-build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Test Build

on:
push:
branches:
- main
pull_request:

jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
- name: Execute Gradle build
run: ./gradlew build
67 changes: 0 additions & 67 deletions .github/workflows/test-deploy.yml

This file was deleted.

61 changes: 0 additions & 61 deletions .github/workflows/validate-generated-code.yml

This file was deleted.

11 changes: 11 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
FROM gradle:jdk17
WORKDIR /home/gradle/gropius-backend
ADD . .
ARG module
RUN gradle clean ${module}:build

FROM eclipse-temurin:17
ARG module
WORKDIR /home/java
COPY --from=0 /home/gradle/gropius-backend/${module}/build/libs/*.jar app.jar
CMD java -jar ./app.jar
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Gropius Backend

For more documentation, have a look at our documentation website: https://ccims.github.io/gropius-backend-docs
For more documentation, have a look at our documentation website: https://ccims.github.io/gropius-docs

## About

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties
* Configuration properties for the public API
*
* @param debugNoAuthentication if `true`, all queries and most mutations don't require authentication to be present
* @param jwtSecret secret used for JWT validation
* @param jwtPublicKey base64 encoded public key used for JWT validation
*/
@ConfigurationProperties("gropius.api.public")
data class GropiusPublicApiConfigurationProperties(val debugNoAuthentication: Boolean = false, val jwtSecret: String)
data class GropiusPublicApiConfigurationProperties(val debugNoAuthentication: Boolean = false, val jwtPublicKey: String)
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ import org.springframework.http.HttpStatus
import org.springframework.stereotype.Component
import org.springframework.web.reactive.function.server.ServerRequest
import org.springframework.web.server.ResponseStatusException
import java.security.KeyFactory
import java.security.PublicKey
import java.security.spec.X509EncodedKeySpec
import kotlin.io.encoding.Base64
import kotlin.io.encoding.ExperimentalEncodingApi

/**
* String that the audience claim of a JWT must contain for it to be accepted
Expand All @@ -41,9 +46,22 @@ class GropiusGraphQLContextFactory(
* Jwt parser based on the secret defined by [gropiusPublicApiConfigurationProperties]
*/
private val jwtParser = Jwts.parser()
.verifyWith(Keys.hmacShaKeyFor(Decoders.BASE64.decode(gropiusPublicApiConfigurationProperties.jwtSecret)))
.verifyWith(publicKey)
.build()

/**
* Public key used to verify JWTs
*/
@OptIn(ExperimentalEncodingApi::class)
private val publicKey: PublicKey get() {
val publicKeyPem = String(Base64.decode(gropiusPublicApiConfigurationProperties.jwtPublicKey))
.replace("-----BEGIN PUBLIC KEY-----", "")
.replace("\n", "")
.replace("-----END PUBLIC KEY-----", "")
val encoded = Base64.decode(publicKeyPem)
return KeyFactory.getInstance("RSA").generatePublic(X509EncodedKeySpec(encoded))
}

override suspend fun generateContext(request: ServerRequest): GraphQLContext {
val token = request.headers().firstHeader("Authorization")
val additionalContextEntries = if (token == null) {
Expand Down
1 change: 0 additions & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,3 @@ kotlinxSerializationVersion=1.7.0
# plugins
kotlinVersion=2.0.0
dokkaVersion=1.9.20
nodeGradleVersion=7.0.2
3 changes: 3 additions & 0 deletions jira/src/main/kotlin/gropius/sync/jira/config/IMSConfig.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package gropius.sync.jira.config

import com.lectra.koson.arr
import com.lectra.koson.obj
import gropius.model.architecture.IMS
import gropius.model.template.IMSTemplate
Expand Down Expand Up @@ -60,6 +61,8 @@ data class IMSConfig(
"metadata" to obj {
"format" to "uri"
}
}.toString(), "jira-edition" to obj {
"enum" to arr["CLOUD", "DATA_CENTER"]
}.toString(), "default-type" to obj {
"nullable" to true
"type" to "string"
Expand Down
2 changes: 0 additions & 2 deletions login-service/.dockerignore

This file was deleted.

Loading

0 comments on commit 9f9b185

Please sign in to comment.