From dbe6e5f78bb06b44c1007f909ac466ba869424f7 Mon Sep 17 00:00:00 2001 From: Jaroslaw Sikora Date: Wed, 8 Oct 2025 16:34:33 +0200 Subject: [PATCH 1/4] Added .gitignore --- .gitignore | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0bd71c2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +target/ +.gradle + +### IntelliJ IDEA ### +.idea +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store + +logs \ No newline at end of file From 7810e14d0af1f0da2fc5bc7648735b59a36a9b88 Mon Sep 17 00:00:00 2001 From: Jaroslaw Sikora Date: Wed, 8 Oct 2025 16:38:07 +0200 Subject: [PATCH 2/4] OpenApi configuration --- demo-web-app/build.gradle.kts | 5 +- .../java/pl/akmf/ksef/sdk/OpenApiConfig.java | 48 +++++++++++++++++++ .../ksef/sdk/util/ExampleApiProperties.java | 9 ++-- .../src/main/resources/application.yaml | 4 +- 4 files changed, 59 insertions(+), 7 deletions(-) create mode 100644 demo-web-app/src/main/java/pl/akmf/ksef/sdk/OpenApiConfig.java diff --git a/demo-web-app/build.gradle.kts b/demo-web-app/build.gradle.kts index b86c34a..f58e420 100644 --- a/demo-web-app/build.gradle.kts +++ b/demo-web-app/build.gradle.kts @@ -89,8 +89,9 @@ dependencies { integrationTestImplementation("org.testcontainers:testcontainers:${testcontainersVersion}") integrationTestImplementation("org.junit.jupiter:junit-jupiter-api:${junitJupiterVersion}") integrationTestImplementation("org.wiremock:wiremock-standalone:${wiremockStandaloneVersion}") - implementation("org.awaitility:awaitility:${awaitilityVersion}")} - + implementation("org.awaitility:awaitility:${awaitilityVersion}") + implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0") +} sourceSets { create("integrationTest") { diff --git a/demo-web-app/src/main/java/pl/akmf/ksef/sdk/OpenApiConfig.java b/demo-web-app/src/main/java/pl/akmf/ksef/sdk/OpenApiConfig.java new file mode 100644 index 0000000..3f47692 --- /dev/null +++ b/demo-web-app/src/main/java/pl/akmf/ksef/sdk/OpenApiConfig.java @@ -0,0 +1,48 @@ +package pl.akmf.ksef.sdk; + +import io.swagger.v3.oas.models.Components; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.security.SecurityRequirement; +import io.swagger.v3.oas.models.security.SecurityScheme; +import org.springdoc.core.customizers.OpenApiCustomizer; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class OpenApiConfig { + + private static final String SECURITY_SCHEME_NAME = "KSEFAuthToken"; + + @Bean + public OpenAPI customOpenAPI() { + return new OpenAPI() + .info(new Info() + .title("KSEF Demo APP") + .version("2.0.1")) + + .components(new Components() + .addSecuritySchemes(SECURITY_SCHEME_NAME, + new SecurityScheme() + .type(SecurityScheme.Type.APIKEY) + .in(SecurityScheme.In.HEADER) + .name("Authorization"))) + + .addSecurityItem(new SecurityRequirement().addList(SECURITY_SCHEME_NAME)); + } + + @Bean + public OpenApiCustomizer authHeaderCustomizer() { + return openApi -> { + openApi.getPaths().values().forEach(pathItem -> pathItem.readOperations().forEach(operation -> { + if (operation.getParameters() != null) { + operation.getParameters().removeIf(p -> + "Authorization".equalsIgnoreCase(p.getName()) && + "header".equalsIgnoreCase(p.getIn()) && + p.get$ref() == null + ); + } + })); + }; + } +} \ No newline at end of file diff --git a/demo-web-app/src/main/java/pl/akmf/ksef/sdk/util/ExampleApiProperties.java b/demo-web-app/src/main/java/pl/akmf/ksef/sdk/util/ExampleApiProperties.java index bceaa7c..e49d55c 100644 --- a/demo-web-app/src/main/java/pl/akmf/ksef/sdk/util/ExampleApiProperties.java +++ b/demo-web-app/src/main/java/pl/akmf/ksef/sdk/util/ExampleApiProperties.java @@ -1,5 +1,7 @@ package pl.akmf.ksef.sdk.util; +import lombok.Getter; +import org.springframework.beans.factory.annotation.Value; import pl.akmf.ksef.sdk.api.KsefApiProperties; import java.time.Duration; @@ -8,10 +10,9 @@ public class ExampleApiProperties extends KsefApiProperties { - @Override - public String getBaseUri() { - return ""; - } + @Getter + @Value("${ksef.base-uri}") + private String baseUri; @Override public Duration getRequestTimeout() { diff --git a/demo-web-app/src/main/resources/application.yaml b/demo-web-app/src/main/resources/application.yaml index 0884131..9b45a16 100644 --- a/demo-web-app/src/main/resources/application.yaml +++ b/demo-web-app/src/main/resources/application.yaml @@ -1,2 +1,4 @@ server: - port: 8082 \ No newline at end of file + port: 8082 +ksef: + base-uri: "https://ksef-test.mf.gov.pl" \ No newline at end of file From be507d2fdb2c94b497d23b163e6af0971225b666 Mon Sep 17 00:00:00 2001 From: Jaroslaw Sikora Date: Wed, 8 Oct 2025 16:44:20 +0200 Subject: [PATCH 3/4] fixes --- .../src/main/java/pl/akmf/ksef/sdk/OpenApiConfig.java | 2 -- .../ksef/sdk/client/model/xml/TContextIdentifier.java | 8 ++++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/demo-web-app/src/main/java/pl/akmf/ksef/sdk/OpenApiConfig.java b/demo-web-app/src/main/java/pl/akmf/ksef/sdk/OpenApiConfig.java index 3f47692..dbc876c 100644 --- a/demo-web-app/src/main/java/pl/akmf/ksef/sdk/OpenApiConfig.java +++ b/demo-web-app/src/main/java/pl/akmf/ksef/sdk/OpenApiConfig.java @@ -20,14 +20,12 @@ public OpenAPI customOpenAPI() { .info(new Info() .title("KSEF Demo APP") .version("2.0.1")) - .components(new Components() .addSecuritySchemes(SECURITY_SCHEME_NAME, new SecurityScheme() .type(SecurityScheme.Type.APIKEY) .in(SecurityScheme.In.HEADER) .name("Authorization"))) - .addSecurityItem(new SecurityRequirement().addList(SECURITY_SCHEME_NAME)); } diff --git a/ksef-client/src/main/java/pl/akmf/ksef/sdk/client/model/xml/TContextIdentifier.java b/ksef-client/src/main/java/pl/akmf/ksef/sdk/client/model/xml/TContextIdentifier.java index fbb80e6..6e92c8d 100644 --- a/ksef-client/src/main/java/pl/akmf/ksef/sdk/client/model/xml/TContextIdentifier.java +++ b/ksef-client/src/main/java/pl/akmf/ksef/sdk/client/model/xml/TContextIdentifier.java @@ -49,13 +49,13 @@ public class TContextIdentifier { @XmlElement(name = "Nip") protected String nip; /** - * Identyfikator wewnętrzny + * Identyfikator wewnÄ™trzny * */ @XmlElement(name = "InternalId") protected String internalId; /** - * Kontekst złożony, będący połaczniem numeru NIP oraz numeru Vat UE + * Kontekst zĹ‚oĹĽony, bÄ™dÄ…cy poĹ‚aczniem numeru NIP oraz numeru Vat UE * */ @XmlElement(name = "NipVatUe") @@ -87,7 +87,7 @@ public void setNip(String value) { } /** - * Identyfikator wewnętrzny + * Identyfikator wewnÄ™trzny * * @return * possible object is @@ -112,7 +112,7 @@ public void setInternalId(String value) { } /** - * Kontekst złożony, będący połaczniem numeru NIP oraz numeru Vat UE + * Kontekst zĹ‚oĹĽony, bÄ™dÄ…cy poĹ‚aczniem numeru NIP oraz numeru Vat UE * * @return * possible object is From bf665cf9a5de0ea8ba10c18f73a43eb4bcb92cc0 Mon Sep 17 00:00:00 2001 From: Jaroslaw Sikora Date: Thu, 16 Oct 2025 12:48:02 +0200 Subject: [PATCH 4/4] Gradle openapi -version fix --- demo-web-app/build.gradle.kts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/demo-web-app/build.gradle.kts b/demo-web-app/build.gradle.kts index 8c7c7a7..5065cfa 100644 --- a/demo-web-app/build.gradle.kts +++ b/demo-web-app/build.gradle.kts @@ -45,6 +45,7 @@ val junitJupiterVersion = "5.10.3" val awaitilityVersion = "4.2.0" val googleZxingCodeVersion = "3.5.3" val googleZxingJavaseVersion = "3.5.3" +val openApiVersion = "2.3.0" dependencies { implementation(project(":ksef-client")) @@ -80,7 +81,7 @@ dependencies { integrationTestImplementation("org.junit.jupiter:junit-jupiter-api:${junitJupiterVersion}") integrationTestImplementation("org.wiremock:wiremock-standalone:${wiremockStandaloneVersion}") implementation("org.awaitility:awaitility:${awaitilityVersion}") - implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0") + implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:${openApiVersion}") } sourceSets {