diff options
| author | Jakob Heher <jakob.heher@iaik.tugraz.at> | 2026-04-15 13:49:22 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-04-15 13:49:22 +0200 |
| commit | 77dd3fcc4d85088b15ab859c4438521d9cd6ed10 (patch) | |
| tree | aefedc8d2ef77e6819b46a948459d6016dfe5b62 | |
| parent | 88930540361a88ff56e07fed31004b583f2e729f (diff) | |
| download | pdf-as-4-77dd3fcc4d85088b15ab859c4438521d9cd6ed10.tar.gz pdf-as-4-77dd3fcc4d85088b15ab859c4438521d9cd6ed10.tar.bz2 pdf-as-4-77dd3fcc4d85088b15ab859c4438521d9cd6ed10.zip | |
pdf-as-5 (#82)
- JDK 17
- PDFBox 3
- PDF-AS Web moved to Spring Boot
- MOA Integration tests w/ new error code
---------
Co-authored-by: Gerald Palfinger <gerald.palfinger@a-sit.at>
Co-authored-by: kathrin.resek <kathrin.resek@a-sit.at>
663 files changed, 10207 insertions, 14152 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..147cad55 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,204 @@ +name: Build + +on: + push: + branches: + - '**' + tags: + - 'v*' + pull_request: + branches: + - '**' + workflow_dispatch: + +permissions: + contents: read + checks: write + pull-requests: write + +env: + LC_ALL: "en_US.UTF-8" + LANG: "en_US.UTF-8" + LANGUAGE: "en_US" + LIB_NAME: "PDF-AS 4" + PROJECT_PATH: '.' + PROJECT_NAME: 'pdf-as-4' + +jobs: + security-checks: + name: Security Scans (Dependency/SAST/Secrets) + runs-on: [self-hosted, linux] + env: + REPO_PATH: repo-${{ github.run_id }}-${{ github.job }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + path: ${{ env.REPO_PATH }} + fetch-depth: 2 + + - name: Install jq (local) + run: | + command -v jq >/dev/null || { + mkdir -p "$HOME/.local/bin" + curl -fsSL -o "$HOME/.local/bin/jq" https://github.com/jqlang/jq/releases/download/jq-1.7.1/jq-linux-amd64 + chmod +x "$HOME/.local/bin/jq" + echo "$HOME/.local/bin" >> "$GITHUB_PATH" + export PATH="$HOME/.local/bin:$PATH" + } + jq --version + + - name: Dependency Scanning (OWASP Dependency-Check) + uses: dependency-check/Dependency-Check_Action@main + with: + project: ${{ env.PROJECT_NAME }} + path: ${{ env.REPO_PATH }} + format: ALL + args: --noupdate + + - name: SAST (Semgrep) + uses: returntocorp/semgrep-action@v1 + continue-on-error: true + with: + config: >- + p/security-audit + p/java + + - name: Secret Detection (TruffleHog) + uses: trufflesecurity/trufflehog@v3.94.3 + with: + path: ${{ env.REPO_PATH }} + + build-and-analyse: + name: Build & Quality Checks + runs-on: [self-hosted, linux] + if: ${{ !startsWith(github.ref, 'refs/tags/') }} + needs: [security-checks] + env: + REPO_PATH: repo-${{ github.run_id }}-${{ github.job }} + + defaults: + run: + working-directory: ${{ env.REPO_PATH }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + path: ${{ env.REPO_PATH }} + clean: false + fetch-depth: 2 + submodules: recursive + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 17 + cache: gradle + + - name: Compile & Test + run: ./gradlew --warning-mode all clean build + + - name: Upload Analysis Reports + uses: actions/upload-artifact@v4 + if: failure() + with: + name: analysis-reports + path: | + ${{ env.REPO_PATH }}/**/build/reports/pmd/*.xml + ${{ env.REPO_PATH }}/**/build/reports/spotbugs/*.xml + ${{ env.REPO_PATH }}/**/build/reports/checkstyle/*.xml + ${{ env.REPO_PATH }}/**/build/reports/jacoco/**/jacocoTestReport.xml + ${{ env.REPO_PATH }}/**/build/test-results/test/TEST-*.xml + if-no-files-found: warn + retention-days: 1 + + - name: Extract Pull Request Number + uses: jwalton/gh-find-current-pr@v1 + if: always() + id: pr + + - name: Detect Test Reports + id: tests + if: always() + run: | + shopt -s globstar nullglob + reports=(**/build/test-results/test/TEST-*.xml) + if [ ${#reports[@]} -gt 0 ]; then + echo "has_tests=true" >> "$GITHUB_OUTPUT" + else + echo "has_tests=false" >> "$GITHUB_OUTPUT" + fi + + - name: Prepare Quality Monitor config + id: qm + if: always() + shell: bash + run: | + if [ "${{ steps.tests.outputs.has_tests }}" = "true" ]; then + echo "name=Run Quality Monitor (with coverage)" >> "$GITHUB_OUTPUT" + echo 'config={"tests":{"tools":[{"id":"junit","name":"Unittests","pattern":"**/build/test-results/test/TEST-*.xml"}]},"analysis":[{"name":"Style","id":"style","tools":[{"id":"checkstyle","pattern":"**/build/reports/checkstyle/*.xml"}]},{"name":"Code Analyzer","id":"pmd","tools":[{"id":"pmd","pattern":"**/build/reports/pmd/*.xml"}]},{"name":"Bugs","id":"bugs","tools":[{"id":"spotbugs","pattern":"**/build/reports/spotbugs/*.xml"}]}],"coverage":[{"name":"JaCoCo","tools":[{"id":"jacoco","metric":"line","pattern":"**/build/reports/jacoco/**/jacocoTestReport.xml"},{"id":"jacoco","metric":"branch","pattern":"**/build/reports/jacoco/**/jacocoTestReport.xml"}]}]}' >> "$GITHUB_OUTPUT" + echo 'gates={"qualityGates":[{"metric":"line","threshold":75.0,"criticality":"UNSTABLE"},{"metric":"branch","threshold":75.0,"criticality":"UNSTABLE"},{"metric":"checkstyle","threshold":70.0,"criticality":"UNSTABLE"},{"metric":"pmd","threshold":70.0,"criticality":"UNSTABLE"},{"metric":"spotbugs","threshold":10.0,"criticality":"UNSTABLE"}]}' >> "$GITHUB_OUTPUT" + else + echo "name=Run Quality Monitor (without coverage)" >> "$GITHUB_OUTPUT" + echo 'config={"tests":{"tools":[{"id":"junit","name":"Unittests","pattern":"**/build/test-results/test/TEST-*.xml"}]},"analysis":[{"name":"Style","id":"style","tools":[{"id":"checkstyle","pattern":"**/build/reports/checkstyle/*.xml"}]},{"name":"Code Analyzer","id":"pmd","tools":[{"id":"pmd","pattern":"**/build/reports/pmd/*.xml"}]},{"name":"Bugs","id":"bugs","tools":[{"id":"spotbugs","pattern":"**/build/reports/spotbugs/*.xml"}]}]}' >> "$GITHUB_OUTPUT" + echo 'gates={"qualityGates":[{"metric":"checkstyle","threshold":70.0,"criticality":"UNSTABLE"},{"metric":"pmd","threshold":70.0,"criticality":"UNSTABLE"},{"metric":"spotbugs","threshold":10.0,"criticality":"UNSTABLE"}]}' >> "$GITHUB_OUTPUT" + fi + + - name: ${{ steps.qm.outputs.name }} + if: always() + uses: uhafner/quality-monitor@v4.2.0 + continue-on-error: true + with: + pr-number: ${{ steps.pr.outputs.number }} + checks-name: Quality Monitor + config: ${{ steps.qm.outputs.config }} + quality-gates: ${{ steps.qm.outputs.gates }} + + publishToEGIZMaven: + name: Assemble Release Package & Publish + runs-on: [self-hosted, linux] + needs: build-and-analyse + if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} + environment: release + env: + REPO_PATH: repo-${{ github.run_id }}-${{ github.job }} + + defaults: + run: + working-directory: ${{ env.REPO_PATH }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + path: ${{ env.REPO_PATH }} + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 17 + + - name: Set SHORT_SHA + run: echo "SHORT_SHA=${GITHUB_SHA:0:8}" >> "$GITHUB_ENV" + + - name: Setup SSH known_hosts + env: + DEPLOY_EGIZ: ${{ secrets.DEPLOY_EGIZ }} + run: | + mkdir -p ~/.ssh + echo $DEPLOY_EGIZ | base64 --decode > ~/.ssh/known_hosts + chmod 644 ~/.ssh/known_hosts + + - name: Assemble & Upload Archives + run: ./gradlew --stacktrace -x test assemble uploadArchives + + - name: Upload variables.env + uses: actions/upload-artifact@v4 + if: always() + with: + name: ${{ github.event.repository.name }}-${{ env.SHORT_SHA }} + path: ${{ env.REPO_PATH }}/variables.env
\ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..3e946a44 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,48 @@ +name: Release + +on: + workflow_dispatch: + +env: + LC_ALL: "en_US.UTF-8" + LANG: "en_US.UTF-8" + LANGUAGE: "en_US" + LIB_NAME: "PDF-AS 4" + PROJECT_PATH: '.' + PROJECT_NAME: 'pdf-as-4' + +jobs: + release: + name: Release + environment: release + runs-on: [self-hosted, linux] + if: ${{ github.ref == 'refs/heads/master' && github.event_name == 'workflow_dispatch' }} + + steps: + + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 17 + cache: gradle + + - name: Set VERSION and SHORT_SHA + run: | + echo "SHORT_SHA=${GITHUB_SHA:0:8}" >> "$GITHUB_ENV" + VERSION=$(./gradlew -q properties --console=plain | grep "^version:" | awk '{print $2}') + echo "VERSION=${VERSION}" >> "$GITHUB_ENV" + + - name: Build Release Package + run: | + echo "Releasing version ${{ env.VERSION }} of ${{ env.LIB_NAME }}" + echo "Publishing version ${{ env.VERSION }} to public EGIZ maven" + ./gradlew release + + - name: Upload Release Artifacts + uses: actions/upload-artifact@v4 + with: + name: ${{ env.PROJECT_NAME }}-${{ env.SHORT_SHA }}-release + path: | + release/${VERSION}/pdf-as-lib-${VERSION}.zip + release/${VERSION}/pdf-as-web-${VERSION}.war
\ No newline at end of file @@ -16,6 +16,7 @@ pdf-as-tests/src/test/test-suites/* pdf-as-tests/src/test/test-suites/*/ !pdf-as-tests/src/test/test-suites/public_pdfbox1/ !pdf-as-tests/src/test/test-suites/public_pdfbox2/ +!pdf-as-tests/src/test/test-suites/public_pdfbox3/ pdf-as-tests/src/test/test-suites/**/index.html pdf-as-tests/src/test/test-suites/**/test_result.html pdf-as-tests/src/test/test-suites/**/out diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index dafafa86..6b431215 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -image: gradle:6.8.3-jdk11 +image: gradle:9.0.0-jdk17 variables: LC_ALL: "en_US.UTF-8" @@ -17,12 +17,12 @@ include: dependency_scanning: variables: MAVEN_CLI_OPTS: "-DskipTests --settings ${CI_PROJECT_DIR}/.cisettings.xml" - DS_JAVA_VERSION: 11 + DS_JAVA_VERSION: 17 spotbugs-sast: variables: MAVEN_CLI_OPTS: "-DskipTests --settings ${CI_PROJECT_DIR}/.cisettings.xml" - SAST_JAVA_VERSION: 11 + SAST_JAVA_VERSION: 17 default: tags: diff --git a/build.gradle b/build.gradle index 765f6407..54621112 100644 --- a/build.gradle +++ b/build.gradle @@ -1,34 +1,132 @@ -buildscript { - repositories { - gradlePluginPortal() - mavenCentral() - } - - dependencies { - classpath "com.github.ben-manes:gradle-versions-plugin:0.28.0" - classpath "org.owasp:dependency-check-gradle:6.5.0.1" - } +plugins { + id "com.github.ben-manes.versions" version "0.51.0" apply false + id "com.github.spotbugs" version "6.0.0" } allprojects { apply plugin: "com.github.ben-manes.versions" + + tasks.withType(JavaCompile).configureEach { + options.compilerArgs += ['-Xlint:deprecation'] + } + + dependencyUpdates { + gradleReleaseChannel = "current" + outputFormatter = "json" + } + repositories { mavenCentral() maven { - url "https://repo.spring.io/milestone/" + url = "https://repo.spring.io/milestone/" } } - version = '4.4.4-SNAPSHOT' + version = '5.0.0-SNAPSHOT' + + project.ext{ + releaseRepoUrl = "file://${project(':').projectDir}/../mvn-repo/releases" + snapshotRepoUrl = "file://${project(':').projectDir}/../mvn-repo/snapshots" + version = version + pdfasversion = version + revision = getCheckedOutGitCommitHash() + //tomcatVersion = '7.0.54'; + //tomcatVersion = '8.0.36'; + //tomcatVersion = '9.0.115'; + tomcatVersion = '10.1.54'; + slf4jVersion = '2.0.16' + cxfVersion = '4.2.0' + bouncyCastleVersion = '1.82' + commonsCollectionsVersion = '4.5.0' + commonsLang3Version = '3.20.0' + commonsIoVersion = '2.21.0' + commonsCodecVersion = '1.21.0' + commonsTextVersion = '1.14.0' + commonsCliVersion = '1.11.0' + jettyVersion = '11.0.24' + logbackVersion = '1.5.25' + gsonVersion = '2.13.2' + zxingVersion = '3.5.0' + ognlVersion = '3.3.5' + jsonVersion = '20250517' + micrometerVersion = '1.15.4' + springBootVersion = '3.5.13' + junitVersion = '4.13.2' + jakartaActivationVersion = '2.1.4' + jakartaJwsVersion = '3.0.0' + jakartaXmlWsVersion = '4.0.3' + jakartaServletVersion = '6.1.0' + jaxbApiVersion = '4.0.4' + jaxbRuntimeVersion = '4.0.7' + pdfboxVersion = '3.0.6' + ztZipVersion = '1.17' + lombokVersion = '1.18.38' + } } subprojects { apply plugin: 'java-library' apply plugin: 'eclipse' apply plugin: 'maven-publish' - apply plugin: 'maven' - apply plugin: 'org.owasp.dependencycheck' + apply plugin: 'checkstyle' + apply plugin: 'pmd' + apply plugin: 'jacoco' + apply plugin: 'com.github.spotbugs' group = 'at.gv.egiz.pdfas' + pmd { + ignoreFailures = System.getenv("CI") == "true" + } + + def checkstyleConfig = rootProject.file("config/checkstyle/egiz_checks.xml") + def isCi = (System.getenv("CI") ?: "false").toBoolean() + + checkstyle { + toolVersion = "8.26" + configFile = checkstyleConfig + ignoreFailures = isCi + } + + tasks.withType(Checkstyle).configureEach { task -> + task.ignoreFailures = isCi + task.onlyIf { checkstyleConfig.exists() } + task.reports { + xml.required = true + html.required = false + } + } + + spotbugs { + ignoreFailures = System.getenv("CI") == "true" + effort = "max" + reportLevel = "medium" + } + + tasks.withType(com.github.spotbugs.snom.SpotBugsTask).configureEach { task -> + task.ignoreFailures = (System.getenv("CI") == "true") + task.reports { + xml.required = true + html.required = false + } + } + + jacoco { + toolVersion = "0.8.12" + } + + tasks.withType(Test).configureEach { + finalizedBy jacocoTestReport + } + + jacocoTestReport { + dependsOn test + reports { + xml.required = true + html.required = true + csv.required = false + } + } + + configurations { deployerJars } @@ -38,25 +136,25 @@ subprojects { mavenLocal() maven { - url "https://repo.spring.io/milestone/" + url = "https://repo.spring.io/milestone/" mavenContent { releasesOnly() } } maven { - url "https://apps.egiz.gv.at/maven/" + url = "https://apps.egiz.gv.at/maven/" mavenContent { releasesOnly() } } maven { - url "https://apps.egiz.gv.at/maven-internal/" + url = "https://apps.egiz.gv.at/maven-internal/" mavenContent { releasesOnly() } } maven { - url "https://apps.egiz.gv.at/maven-snapshot/" + url = "https://apps.egiz.gv.at/maven-snapshot/" mavenContent { snapshotsOnly() } @@ -64,14 +162,14 @@ subprojects { } dependencies { - implementation "org.projectlombok:lombok:1.18.28" - annotationProcessor "org.projectlombok:lombok:1.18.28" - testAnnotationProcessor "org.projectlombok:lombok:1.18.28" - testImplementation 'junit:junit:4.13.2' + implementation group: 'org.projectlombok', name: 'lombok', version: lombokVersion + annotationProcessor group: 'org.projectlombok', name: 'lombok', version: lombokVersion + testAnnotationProcessor group: 'org.projectlombok', name: 'lombok', version: lombokVersion + testImplementation group: 'junit', name: 'junit', version: junitVersion } task sourcesJar(type: Jar, dependsOn: classes) { - classifier = 'sources' + archiveClassifier.set('sources') from sourceSets.main.allSource } @@ -79,29 +177,22 @@ subprojects { archives sourcesJar } - sourceCompatibility = 1.8 + java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } compileJava.options.encoding = "UTF-8" compileTestJava.options.encoding = "UTF-8" - project.ext{ - releaseRepoUrl = "file://${project(':').projectDir}/../mvn-repo/releases" - snapshotRepoUrl = "file://${project(':').projectDir}/../mvn-repo/snapshots" - version = version - pdfasversion = version - revision = getCheckedOutGitCommitHash() - tomcatVersion = '9.0.115'; - slf4jVersion = '1.7.36' - cxfVersion = '3.5.11' - } jar { manifest.attributes provider: 'EGIZ', 'Specification-Version': getCheckedOutGitCommitHash(), 'Implementation-Version': project.version } task copyDeps(type: Copy) { - from configurations.runtime + from configurations.runtimeClasspath into (new File(rootDir, 'build/alldependencies')).toString() } task copyDepsLocal(type: Copy) { - from configurations.runtime + from configurations.runtimeClasspath into 'build/alldependencies' } @@ -120,24 +211,8 @@ subprojects { } } - dependencies { - deployerJars "org.apache.maven.wagon:wagon-ssh:3.4.3" - - } - - uploadArchives { - repositories.mavenDeployer { - configuration = configurations.deployerJars - repository(url: "sftp://apps.egiz.gv.at/maven") { - authentication(userName: System.getenv("EGIZ_MAVEN_USER"), password: System.getenv("EGIZ_MAVEN_PASSWORD")) - - } - snapshotRepository(url: "sftp://apps.egiz.gv.at/maven-snapshot") { - authentication(userName: System.getenv("EGIZ_MAVEN_USER"), password: System.getenv("EGIZ_MAVEN_PASSWORD")) - - } - } - } + // Legacy uploadArchives replaced with modern Maven publishing + // Configure remote repositories in publishing block above task(internalRelease) { @@ -162,17 +237,18 @@ subprojects { } task(doFullRelease) { + def projectVer = version doLast { - println "done building all distribution stuff for " + project.version + println "done building all distribution stuff for " + projectVer } } task copyLicenses { doLast { mkdir("releases/"+ version +"/licenses"); - def target = project.projectDir.toString() + "/releases/" + version + "/licenses" - subprojects{ - def src=project.projectDir.toString() + "/licenses" + def target = rootProject.projectDir.toString() + "/releases/" + version + "/licenses" + subprojects{ subproject -> + def src = subproject.projectDir.toString() + "/licenses" copy{ from src into target @@ -193,8 +269,13 @@ task releases(type: Copy) { def getCheckedOutGitCommitHash() { def takeFromHash = 40 - 'git rev-parse --verify HEAD'.execute().text.trim().take takeFromHash - + try { + return providers.exec { + commandLine('git', 'rev-parse', '--verify', 'HEAD') + }.standardOutput.asText.get().trim().take(takeFromHash) + } catch (Exception e) { + return "unknown" + } } /* task docs(type: Javadoc) { diff --git a/dependency-check-suppressions.xml b/dependency-check-suppressions.xml new file mode 100644 index 00000000..0cb6b363 --- /dev/null +++ b/dependency-check-suppressions.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<suppressions xmlns="https://jeremylong.github.io/DependencyCheck/dependency-suppression.1.3.xsd"> + <!-- + This file contains suppressions for false positives in dependency vulnerability scanning. + Add suppressions here for known false positives or accepted risks. + + Example suppression: + <suppress> + <notes><![CDATA[ + This vulnerability does not apply to our usage of the library. + ]]></notes> + <packageUrl regex="true">^pkg:maven/org\.example/.*@.*$</packageUrl> + <cve>CVE-2021-12345</cve> + </suppress> + --> + + <!-- Common false positives for PDF processing libraries --> + <suppress> + <notes><![CDATA[ + Suppress vulnerabilities in test dependencies that don't affect production + ]]></notes> + <packageUrl regex="true">^pkg:maven/junit/junit@.*$</packageUrl> + <vulnerabilityName regex="true">.*</vulnerabilityName> + </suppress> +</suppressions>
\ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 00000000..672acb7c --- /dev/null +++ b/gradle.properties @@ -0,0 +1,14 @@ +# Gradle properties for PDF-AS project +# Enable Gradle build cache for better performance +org.gradle.caching=true + +# Enable parallel builds +org.gradle.parallel=true + +# Configure JVM arguments for Gradle daemon +org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError + +# Enable configuration cache (Gradle 6.6+) +org.gradle.configuration-cache=true + +org.gradle.warning.mode=all
\ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar Binary files differindex 94336fca..8bdaf60c 100644 --- a/gradle/wrapper/gradle-wrapper.jar +++ b/gradle/wrapper/gradle-wrapper.jar diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 442d9132..2a84e188 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists @@ -1,78 +1,129 @@ -#!/usr/bin/env sh +#!/bin/sh + +# +# Copyright © 2015 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # Attempt to set APP_HOME + # Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -81,92 +132,120 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=$((i+1)) + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=$(save "$@") - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" fi +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index e95643d6..5eed7ee8 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,4 +1,22 @@ -@if "%DEBUG%" == "" @echo off
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+@rem SPDX-License-Identifier: Apache-2.0
+@rem
+
+@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@@ -9,25 +27,29 @@ if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
+if "%DIRNAME%"=="" set DIRNAME=.
+@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
+if %ERRORLEVEL% equ 0 goto execute
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
+echo. 1>&2
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
goto fail
@@ -35,48 +57,36 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-if exist "%JAVA_EXE%" goto init
+if exist "%JAVA_EXE%" goto execute
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
+echo. 1>&2
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
goto fail
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
:execute
@rem Setup the command line
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+set CLASSPATH=
+
@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
:end
@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
+if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal
diff --git a/pdf-as-cli/build.gradle b/pdf-as-cli/build.gradle index f10d4d7d..2eb4a01f 100644 --- a/pdf-as-cli/build.gradle +++ b/pdf-as-cli/build.gradle @@ -2,7 +2,9 @@ apply plugin: 'java-library' apply plugin: 'eclipse' apply plugin: 'application' -mainClassName = "at.gv.egiz.pdfas.cli.Main" +application { + mainClass = "at.gv.egiz.pdfas.cli.Main" +} repositories { mavenLocal() @@ -16,13 +18,13 @@ task releases(type: Copy) { } configurations { - pdfBox2Compile + pdfBox3Compile } sourceSets{ - pdfBox2{ - compileClasspath = configurations.pdfBox2Compile - runtimeClasspath = configurations.pdfBox2Compile + main.runtimeClasspath + pdfBox3{ + compileClasspath = configurations.pdfBox3Compile + runtimeClasspath = configurations.pdfBox3Compile + main.runtimeClasspath } } @@ -31,22 +33,22 @@ dependencies { implementation project (':signature-standards:sigs-pkcs7detached') implementation project (':signature-standards:sigs-pades') implementation project (':pdf-as-moa') - implementation project (':pdf-as-pdfbox-2') - implementation group: 'commons-collections', name: 'commons-collections', version: '3.2.2' - implementation group: 'commons-cli', name: 'commons-cli', version: '1.2' - implementation group: 'javax.activation', name: 'activation', version: '1.1.1' - implementation 'ch.qos.logback:logback-classic:1.2.13' - testImplementation group: 'junit', name: 'junit', version: '4.+' + implementation project (':pdf-as-pdfbox-3') + implementation group: 'org.apache.commons', name: 'commons-collections4', version: commonsCollectionsVersion + implementation group: 'commons-cli', name: 'commons-cli', version: commonsCliVersion + implementation group: 'jakarta.activation', name: 'jakarta.activation-api', version: jakartaActivationVersion + implementation group: 'ch.qos.logback', name: 'logback-classic', version: logbackVersion + testImplementation group: 'junit', name: 'junit', version: junitVersion } startScripts{ - classpath+=sourceSets.pdfBox2.compileClasspath + classpath+=sourceSets.pdfBox3.compileClasspath } compileJava{ classpath=sourceSets.main.compileClasspath - classpath+=sourceSets.pdfBox2.compileClasspath + classpath+=sourceSets.pdfBox3.compileClasspath } diff --git a/pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/Main.java b/pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/Main.java index 86769c49..ac26cd18 100644 --- a/pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/Main.java +++ b/pdf-as-cli/src/main/java/at/gv/egiz/pdfas/cli/Main.java @@ -33,7 +33,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.UUID; -import javax.activation.DataSource; +import jakarta.activation.DataSource; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; @@ -600,7 +600,7 @@ public class Main { File outputPdfFile = new File(outputFile); FileOutputStream fos = new FileOutputStream(outputPdfFile, false); - fos.write(verifyResult.getSignatureData()); + fos.write(verifyResult.getSignatureData().getBaseData()); fos.close(); System.out.println("\tSigned PDF: " + outputFile); } diff --git a/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/CorruptPDF.java b/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/CorruptPDF.java index b107474f..fc051e38 100644 --- a/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/CorruptPDF.java +++ b/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/CorruptPDF.java @@ -4,8 +4,8 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; -import javax.activation.DataSource; -import javax.activation.FileDataSource; +import jakarta.activation.DataSource; +import jakarta.activation.FileDataSource; import at.gv.egiz.pdfas.common.exceptions.PDFASError; import at.gv.egiz.pdfas.common.settings.ISettings; diff --git a/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/RotatedPDFTest.java b/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/RotatedPDFTest.java index fcf766b1..17c5d62c 100644 --- a/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/RotatedPDFTest.java +++ b/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/RotatedPDFTest.java @@ -7,7 +7,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.security.KeyStore; -import javax.activation.DataSource; +import jakarta.activation.DataSource; import junit.framework.Assert; diff --git a/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/SignaturProfileTest.java b/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/SignaturProfileTest.java index cb42fe3b..2d633925 100644 --- a/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/SignaturProfileTest.java +++ b/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/SignaturProfileTest.java @@ -30,7 +30,7 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import javax.activation.DataSource; +import jakarta.activation.DataSource; import org.apache.commons.io.IOUtils; diff --git a/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/SignatureBlockParameterTest.java b/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/SignatureBlockParameterTest.java index 186eb5a9..a53cecb3 100644 --- a/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/SignatureBlockParameterTest.java +++ b/pdf-as-cli/src/test/java/at/gv/egiz/pdfas/cli/test/SignatureBlockParameterTest.java @@ -34,6 +34,7 @@ import at.gv.egiz.pdfas.lib.api.sign.SignParameter; import at.gv.egiz.pdfas.lib.api.sign.SignResult; import at.gv.egiz.pdfas.sigs.pades.PAdESSignerKeystore; import org.apache.commons.io.IOUtils; +import org.apache.pdfbox.Loader; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature; import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm; @@ -42,7 +43,7 @@ import org.apache.pdfbox.pdmodel.interactive.form.PDSignatureField; import org.junit.Assert; import org.junit.Test; -import javax.activation.DataSource; +import jakarta.activation.DataSource; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -129,7 +130,7 @@ public class SignatureBlockParameterTest { SignResult result = pdfas.sign(signParameter); fos.close(); - String name = getName(outFile, "PDF-AS Signatur1"); + String name = getName(outFile, "PDF-AS Signatur 1"); Assert.assertEquals("TEST123 test bar 123 c TEST123 Andreas Fitzek ECC", name); @@ -147,7 +148,7 @@ public class SignatureBlockParameterTest { result = pdfas.sign(signParameter); fos.close(); - name = getName(outFile, "PDF-AS Signatur1"); + name = getName(outFile, "PDF-AS Signatur 1"); Assert.assertEquals("TEST123 test null 123 c TEST123 Andreas Fitzek ECC", name); outFile = getPath("out") + "/" + profile + "-2.pdf"; @@ -161,7 +162,7 @@ public class SignatureBlockParameterTest { signParameter.setSignatureProfileId(profile); result = pdfas.sign(signParameter); fos.close(); - name = getName(outFile, "PDF-AS Signatur1"); + name = getName(outFile, "PDF-AS Signatur 1"); Assert.assertEquals("null test bar 123 c null Andreas Fitzek ECC", name); outFile = getPath("out") + "/" + profile + "-3.pdf"; @@ -173,7 +174,7 @@ public class SignatureBlockParameterTest { signParameter.setSignatureProfileId(profile); result = pdfas.sign(signParameter); fos.close(); - name = getName(outFile, "PDF-AS Signatur1"); + name = getName(outFile, "PDF-AS Signatur 1"); Assert.assertEquals("null test null 123 c null Andreas Fitzek ECC", name); // Assert.assertEquals("{sbp.subject} test {sbp.foo} 123 {subject.T != null ? (subject.T + \" a \"+sbp.subject) : " + // "\"c \"+sbp.subject+\" \"}Andreas Fitzek ECC", name); @@ -190,7 +191,7 @@ public class SignatureBlockParameterTest { signParameter.setSignatureProfileId(profile); result = pdfas.sign(signParameter); fos.close(); - name = getName(outFile, "PDF-AS Signatur1"); + name = getName(outFile, "PDF-AS Signatur 1"); Assert.assertEquals("null test null 123 c null Andreas Fitzek ECC", name); @@ -226,7 +227,7 @@ public class SignatureBlockParameterTest { SignResult result = pdfas.sign(signParameter); fos.close(); - String name = getName(outFile, "PDF-AS Signatur1"); + String name = getName(outFile, "PDF-AS Signatur 1"); Assert.assertEquals("TEST123 test baräöÜ 123 c TEST123 Andreas Fitzek ECC", name); //expected:<TEST123 test bar[] 123 c TEST123 Andre...> but was:<TEST123 test bar[äöÜ] 123 c TEST123 Andre...> } @@ -262,31 +263,32 @@ public class SignatureBlockParameterTest { SignResult result = pdfas.sign(signParameter); fos.close(); - String name = getName(outFile, "PDF-AS Signatur1"); + String name = getName(outFile, "PDF-AS Signatur 1"); Assert.assertEquals("Andreas Fitzek ECC text after variable", name); //expected:<TEST123 test bar[] 123 c TEST123 Andre...> but was:<TEST123 test bar[äöÜ] 123 c TEST123 Andre...> } private String getName(String fileName, String sigFieldName) throws IOException { - PDDocument pdDoc = PDDocument.load(new File(fileName)); - PDSignature signature = null; - PDSignatureField signatureField; - PDAcroForm acroForm = pdDoc.getDocumentCatalog().getAcroForm(); - if (acroForm != null) { - List<PDField> aa = acroForm.getFields(); - signatureField = (PDSignatureField) acroForm.getField(sigFieldName); - if (signatureField != null) { - // retrieve signature dictionary - signature = signatureField.getSignature(); - if (signature != null) { - String name = signature.getName(); - return name; + try (PDDocument pdDoc = Loader.loadPDF(new File(fileName))) { + PDSignature signature = null; + PDSignatureField signatureField; + PDAcroForm acroForm = pdDoc.getDocumentCatalog().getAcroForm(); + if (acroForm != null) { + List<PDField> aa = acroForm.getFields(); + signatureField = (PDSignatureField) acroForm.getField(sigFieldName); + if (signatureField != null) { + // retrieve signature dictionary + signature = signatureField.getSignature(); + if (signature != null) { + String name = signature.getName(); + return name; + + } } - } + return null; } - return null; } } diff --git a/pdf-as-common/build.gradle b/pdf-as-common/build.gradle index 7dfaf71d..394280ee 100644 --- a/pdf-as-common/build.gradle +++ b/pdf-as-common/build.gradle @@ -21,14 +21,14 @@ releases.dependsOn sourcesJar dependencies { api group: 'org.slf4j', name: 'slf4j-api', version: slf4jVersion - api group: 'commons-collections', name: 'commons-collections', version: '3.2.2' - api group: 'commons-io', name: 'commons-io', version: '2.21.0' - api group: 'ognl', name: 'ognl', version: '3.3.5' - api group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1' - api 'commons-codec:commons-codec:1.17.1' - api group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '2.3.3' - api group: 'javax.jws', name: 'javax.jws-api', version: '1.1' - testImplementation group: 'junit', name: 'junit', version: '4.+' + api group: 'org.apache.commons', name: 'commons-collections4', version: commonsCollectionsVersion + api group: 'commons-io', name: 'commons-io', version: commonsIoVersion + api group: 'ognl', name: 'ognl', version: ognlVersion + api group: 'jakarta.xml.bind', name: 'jakarta.xml.bind-api', version: jaxbApiVersion + api group: 'commons-codec', name: 'commons-codec', version: commonsCodecVersion + api group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: jaxbRuntimeVersion + api group: 'jakarta.jws', name: 'jakarta.jws-api', version: jakartaJwsVersion + testImplementation group: 'junit', name: 'junit', version: junitVersion } test { diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASBulkSignRequest.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASBulkSignRequest.java index 9756d33b..da20f86a 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASBulkSignRequest.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASBulkSignRequest.java @@ -26,8 +26,8 @@ package at.gv.egiz.pdfas.api.ws; import java.io.Serializable; import java.util.List; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; @XmlType(name="BulkSignRequest") public class PDFASBulkSignRequest implements Serializable { diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASBulkSignResponse.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASBulkSignResponse.java index 7499bff6..ac9ffb52 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASBulkSignResponse.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASBulkSignResponse.java @@ -26,8 +26,8 @@ package at.gv.egiz.pdfas.api.ws; import java.io.Serializable; import java.util.List; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; @XmlType(name="BulkSignResponse") public class PDFASBulkSignResponse implements Serializable { diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASPropertyEntry.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASPropertyEntry.java index 0b9b21af..6cb5f3fb 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASPropertyEntry.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASPropertyEntry.java @@ -2,8 +2,8 @@ package at.gv.egiz.pdfas.api.ws; import java.io.Serializable; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; @XmlType(name="PropertyEntry") public class PDFASPropertyEntry implements Serializable { diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASPropertyMap.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASPropertyMap.java index c3949849..418ba948 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASPropertyMap.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASPropertyMap.java @@ -7,9 +7,9 @@ import java.util.Iterator; import java.util.List; import java.util.Map; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlTransient; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlTransient; +import jakarta.xml.bind.annotation.XmlType; @XmlType(name="PropertyMap") public class PDFASPropertyMap implements Serializable { diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASSignParameters.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASSignParameters.java index a70b8f56..f72804ec 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASSignParameters.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASSignParameters.java @@ -26,9 +26,9 @@ package at.gv.egiz.pdfas.api.ws; import java.io.Serializable; import java.util.Arrays; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlEnumValue; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlEnumValue; +import jakarta.xml.bind.annotation.XmlType; @XmlType(name="SignParameters") public class PDFASSignParameters implements Serializable { diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASSignRequest.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASSignRequest.java index 39a384b2..1cb5b5b1 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASSignRequest.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASSignRequest.java @@ -27,8 +27,8 @@ import java.io.Serializable; import java.util.HashMap; import java.util.Map; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; @XmlType(name="SignRequest") public class PDFASSignRequest implements Serializable { diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASSignResponse.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASSignResponse.java index 3e8a360b..880b6c0b 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASSignResponse.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASSignResponse.java @@ -25,8 +25,8 @@ package at.gv.egiz.pdfas.api.ws; import java.io.Serializable; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; @XmlType(name="SignResponse") public class PDFASSignResponse implements Serializable { @@ -37,6 +37,7 @@ public class PDFASSignResponse implements Serializable { private static final long serialVersionUID = -6369697640117556071L; String requestID; + Long errorCode; String error; byte[] signedPDF; PDFASVerificationResponse verificationResponse; @@ -65,7 +66,10 @@ public class PDFASSignResponse implements Serializable { public void setVerificationResponse(PDFASVerificationResponse verificationResponse) { this.verificationResponse = verificationResponse; } - + + @XmlElement(required = false, name="errorCode") + public Long getErrorCode() { return errorCode; } + public void setErrorCode(Long errorCode) { this.errorCode = errorCode; } @XmlElement(required = false, name="error") public String getError() { return error; diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASSigning.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASSigning.java index beeff937..4ed13688 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASSigning.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASSigning.java @@ -23,12 +23,12 @@ ******************************************************************************/ package at.gv.egiz.pdfas.api.ws; -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebResult; -import javax.jws.WebService; -import javax.jws.soap.SOAPBinding; -import javax.jws.soap.SOAPBinding.Style; +import jakarta.jws.WebMethod; +import jakarta.jws.WebParam; +import jakarta.jws.WebResult; +import jakarta.jws.WebService; +import jakarta.jws.soap.SOAPBinding; +import jakarta.jws.soap.SOAPBinding.Style; @WebService @SOAPBinding(style = Style.RPC) diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASVerification.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASVerification.java index edc6f22e..3a3a2eab 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASVerification.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASVerification.java @@ -1,11 +1,11 @@ package at.gv.egiz.pdfas.api.ws; -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebResult; -import javax.jws.WebService; -import javax.jws.soap.SOAPBinding; -import javax.jws.soap.SOAPBinding.Style; +import jakarta.jws.WebMethod; +import jakarta.jws.WebParam; +import jakarta.jws.WebResult; +import jakarta.jws.WebService; +import jakarta.jws.soap.SOAPBinding; +import jakarta.jws.soap.SOAPBinding.Style; @WebService @SOAPBinding(style = Style.RPC) diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASVerificationResponse.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASVerificationResponse.java index 720b4438..45853710 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASVerificationResponse.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASVerificationResponse.java @@ -2,8 +2,8 @@ package at.gv.egiz.pdfas.api.ws; import java.io.Serializable; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; @XmlType(name="VerificationResponse") public class PDFASVerificationResponse implements Serializable { diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASVerifyRequest.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASVerifyRequest.java index 2afa1f08..0eed75b4 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASVerifyRequest.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASVerifyRequest.java @@ -4,8 +4,8 @@ import java.io.Serializable; import java.util.HashMap; import java.util.Map; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; @XmlType(name="VerifyRequest") public class PDFASVerifyRequest implements Serializable { diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASVerifyResponse.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASVerifyResponse.java index defb05f5..534ffe9f 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASVerifyResponse.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASVerifyResponse.java @@ -3,8 +3,8 @@ package at.gv.egiz.pdfas.api.ws; import java.io.Serializable; import java.util.List; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; @XmlType(name="VerifyResponse") public class PDFASVerifyResponse implements Serializable { diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASVerifyResult.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASVerifyResult.java index 6744af4a..0d5fd40d 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASVerifyResult.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PDFASVerifyResult.java @@ -2,8 +2,8 @@ package at.gv.egiz.pdfas.api.ws; import java.io.Serializable; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; @XmlType(name="VerifyResult") public class PDFASVerifyResult implements Serializable { diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PdfasGetMultipleRequest.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PdfasGetMultipleRequest.java index 5f4f3a27..6c5700bc 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PdfasGetMultipleRequest.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PdfasGetMultipleRequest.java @@ -2,10 +2,10 @@ package at.gv.egiz.pdfas.api.ws; import java.io.Serializable; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; import lombok.Getter; import lombok.Setter; diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PdfasSignDocument.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PdfasSignDocument.java index e065ef5e..158aed56 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PdfasSignDocument.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PdfasSignDocument.java @@ -2,10 +2,10 @@ package at.gv.egiz.pdfas.api.ws; import java.io.Serializable; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; import lombok.Getter; import lombok.Setter; diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PdfasSignMultipleRequest.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PdfasSignMultipleRequest.java index 8d172bfb..e96ba5fc 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PdfasSignMultipleRequest.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PdfasSignMultipleRequest.java @@ -4,10 +4,10 @@ import java.io.Serializable; import java.util.List; import java.util.Map; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; import at.gv.egiz.pdfas.api.ws.PDFASSignParameters.Connector; import lombok.Getter; diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PdfasSignMultipleResponse.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PdfasSignMultipleResponse.java index a2391d11..64e8987d 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PdfasSignMultipleResponse.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PdfasSignMultipleResponse.java @@ -3,10 +3,10 @@ package at.gv.egiz.pdfas.api.ws; import java.io.Serializable; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; import lombok.Getter; import lombok.Setter; diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PdfasSignedDocument.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PdfasSignedDocument.java index 7ac13e1d..7ae0a380 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PdfasSignedDocument.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/PdfasSignedDocument.java @@ -2,10 +2,10 @@ package at.gv.egiz.pdfas.api.ws; import java.io.Serializable; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; import lombok.Getter; import lombok.Setter; diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/VerificationLevel.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/VerificationLevel.java index 6410d269..e4f144ed 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/VerificationLevel.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/api/ws/VerificationLevel.java @@ -1,7 +1,7 @@ package at.gv.egiz.pdfas.api.ws; -import javax.xml.bind.annotation.XmlEnumValue; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlEnumValue; +import jakarta.xml.bind.annotation.XmlType; @XmlType(name = "VerificationLevel") public enum VerificationLevel { diff --git a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/ErrorConstants.java b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/ErrorConstants.java index d99299a9..64a650c3 100644 --- a/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/ErrorConstants.java +++ b/pdf-as-common/src/main/java/at/gv/egiz/pdfas/common/exceptions/ErrorConstants.java @@ -19,6 +19,12 @@ public interface ErrorConstants { public static final long ERROR_SIG_INVALID_PROFILE = 11009; public static final long ERROR_SIG_CERTIFICATE_MISSMATCH = 11019; + + public static final long ERROR_PDF_PROCESSING_FAILED = 11020; + + public static final long ERROR_SIGNER_CERT_TIMEFRAME_INVALID = 11021; + + public static final long ERROR_SIG_CONNECT_ERROR = 11022; // Verification Errors diff --git a/pdf-as-common/src/main/resources/resources/messages/error.properties b/pdf-as-common/src/main/resources/resources/messages/error.properties index dd873f1e..89a10d99 100644 --- a/pdf-as-common/src/main/resources/resources/messages/error.properties +++ b/pdf-as-common/src/main/resources/resources/messages/error.properties @@ -21,9 +21,12 @@ 11017=Failed to retrieve certificate 11018=Given Alias contains no private key 11019=Signature was created for wrong certificate -11020=Failed to process PDF document. Reason: {0} -11021=Signer certificate is not valid, because notBefore or notAfter does not match +11020=Failed to process PDF document. Reason: {0} +11021=Signer certificate is not valid, because notBefore or notAfter does not match +11022=Connection to the signature service failed 13001=Invalid Configuration Objects 13002=Given certificate is invalid -13003=Configured placeholder mode is invalid
\ No newline at end of file +13003=Configured placeholder mode is invalid + +14001=There is no configuration validator backend
\ No newline at end of file diff --git a/pdf-as-legacy/.gitignore b/pdf-as-legacy/.gitignore deleted file mode 100644 index 5e56e040..00000000 --- a/pdf-as-legacy/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/bin diff --git a/pdf-as-legacy/build.gradle b/pdf-as-legacy/build.gradle deleted file mode 100644 index de310b1c..00000000 --- a/pdf-as-legacy/build.gradle +++ /dev/null @@ -1,60 +0,0 @@ -apply plugin: 'java-library' -apply plugin: 'eclipse' -apply plugin: 'java-library-distribution' - -jar { - manifest { - attributes 'Implementation-Title': 'PDF-AS-4 Legacy Library' - } -} - -repositories { - mavenLocal() - mavenCentral() - maven { url "http://nexus.iaik.tugraz.at/nexus/content/groups/internal" } -} - -dependencies { - implementation project (':pdf-as-lib') - implementation project (':pdf-as-moa') - implementation project (':signature-standards:sigs-pkcs7detached') - implementation project (':signature-standards:sigs-pades') - implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.20.0' - implementation group: 'commons-codec', name: 'commons-codec', version: '1.21.0' -} - -task releases(type: Copy) { - from jar.outputs - into rootDir.toString() + "/releases/" + version -} - -releases.dependsOn jar -releases.dependsOn sourcesJar - -/*javadoc { - appName = 'PDF-AS-4 Legacy Library' - exclude = '/**' - include = 'at/gv/egiz/pdfas/**' - project.configure(options) { - memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED - charSet = "ISO-8859-1" - docTitle = "$appName" - windowTitle = "$appName" - header = "<b>$appName</b>" - use = "true" - links("http://java.sun.com/j2ee/1.4/docs/api", "http://java.sun.com/j2se/1.5.0/docs/api") - } -}*/ - -test { systemProperties 'property': 'value' } - -distributions { - main { - contents { - from { '../docs' } - from('../doc/') { - include '*.pdf' - } - } - } -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/PdfAsFactory.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/PdfAsFactory.java deleted file mode 100644 index 431e5db2..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/PdfAsFactory.java +++ /dev/null @@ -1,154 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas; - -import java.io.File; - -import at.gv.egiz.pdfas.api.PdfAs; -import at.gv.egiz.pdfas.api.exceptions.PdfAsException; -import at.gv.egiz.pdfas.wrapper.PdfAsObject; - -/** - * Main factory for creating a PDF-AS API Instance (PdfAs Interface). - * - * @see PdfAs - * - * @author wprinz - */ -@Deprecated -public class PdfAsFactory -{ - /** - * Creates a PDF-AS API instance for the given work directory. - * - * @param workDirectory - * The work directory. If <code>null</code> the configuration is assumed to be located - * within the user's home directory. Note: IAIK JCE and IAIK ECC security provders are - * automatically registered. - * - * @return Returns an instance of the PDF-AS API. - * @throws IllegalArgumentException - * Thrown, if the workDirectory doesn't exist. - * @throws PdfAsException - * Thrown, if the work directory does not meet its requirements, or - * if the config file is invalid. - * @see PdfAS#USERHOME_CONFIG_FOLDER - */ - @Deprecated - public static PdfAs createPdfAs(File workDirectory) throws PdfAsException - { - return new PdfAsObject(workDirectory); - } - - /** - * Creates a PDF-AS API instance for the given work directory. - * - * WARNING registerProvider is IGNORED as ov Version 4.0 - * - * @param workDirectory - * The work directory. If <code>null</code> the configuration is assumed to be located - * within the user's home directory. - * - * @param registerProvider <code>true</code>: automatically registers IAIK JCE and ECC Provider; - * <code>false</code>: providers will NOT be automatically registered, providers - * needed have to be registered by the API user - * @return Returns an instance of the PDF-AS API. - * @throws IllegalArgumentException - * Thrown, if the workDirectory doesn't exist. - * @throws PdfAsException - * Thrown, if the work directory does not meet its requirements, or - * if the config file is invalid. - * @see PdfAS#USERHOME_CONFIG_FOLDER - */ - @Deprecated - public static PdfAs createPdfAs(File workDirectory, boolean registerProvider) throws PdfAsException - { - return new PdfAsObject(workDirectory); - } - - /** - * Creates a PDF-AS API instance assuming that the configuration is located within the user's - * home directory. Note: IAIK JCE and IAIK ECC security providers are automatically registered. - * - * @return Returns an instance of the PDF-AS API. - * @throws IllegalArgumentException - * Thrown, if the work directory doesn't exist within the user's home directory. - * @throws PdfAsException - * Thrown, if the work directory does not meet its requirements, or - * if the config file is invalid. - * @see PdfAS#USERHOME_CONFIG_FOLDER - */ - @Deprecated - public static PdfAs createPdfAs() throws PdfAsException - { - return createPdfAs(new File(System.getProperty("user.home") + "/.pdfas/")); - } - - /** - * Creates a PDF-AS API instance assuming that the configuration is located within the user's - * home directory. - * - * WARNING registerProvider is IGNORED as ov Version 4.0 - * - * @return Returns an instance of the PDF-AS API. - * @param registerProvider <code>true</code>: automatically registers IAIK JCE and ECC Provider; - * <code>false</code>: providers will NOT be automatically registered, providers - * needed have to be registered by the API user - * @throws IllegalArgumentException - * Thrown, if the work directory doesn't exist within the user's home directory. - * @throws PdfAsException - * Thrown, if the work directory does not meet its requirements, or - * if the config file is invalid. - * @see PdfAS#USERHOME_CONFIG_FOLDER - */ - @Deprecated - public static PdfAs createPdfAs(boolean registerProvider) throws PdfAsException - { - return createPdfAs(null, registerProvider); - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/PdfAs.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/PdfAs.java deleted file mode 100644 index f876a80a..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/PdfAs.java +++ /dev/null @@ -1,325 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api; - -import java.util.List; - -import at.gv.egiz.pdfas.api.analyze.AnalyzeParameters; -import at.gv.egiz.pdfas.api.analyze.AnalyzeResult; -import at.gv.egiz.pdfas.api.commons.DynamicSignatureLifetimeEnum; -import at.gv.egiz.pdfas.api.commons.DynamicSignatureProfile; -import at.gv.egiz.pdfas.api.commons.SignatureProfile; -import at.gv.egiz.pdfas.api.exceptions.PdfAsException; -import at.gv.egiz.pdfas.api.sign.SignParameters; -import at.gv.egiz.pdfas.api.sign.SignResult; -import at.gv.egiz.pdfas.api.sign.SignatureDetailInformation; -import at.gv.egiz.pdfas.api.verify.VerifyAfterAnalysisParameters; -import at.gv.egiz.pdfas.api.verify.VerifyAfterReconstructXMLDsigParameters; -import at.gv.egiz.pdfas.api.verify.VerifyParameters; -import at.gv.egiz.pdfas.api.verify.VerifyResult; -import at.gv.egiz.pdfas.api.verify.VerifyResults; -import at.gv.egiz.pdfas.api.xmldsig.ReconstructXMLDsigAfterAnalysisParameters; -import at.gv.egiz.pdfas.api.xmldsig.ReconstructXMLDsigParameters; -import at.gv.egiz.pdfas.api.xmldsig.ReconstructXMLDsigResult; - -/** - * The PDF-AS API main interface. - * - * <p> - * Create an Object implementing this interface using the proper factory. - * </p> - * - * @author wprinz - * @author exthex - */ -@Deprecated -public interface PdfAs -{ -// 23.11.2010 changed by exthex - added: -// reconstructXMLDSIG(ReconstructXMLDsigParameters reconstructXMLDsigParameters) -// reconstructXMLDSIG(ReconstructXMLDsigAfterAnalysisParameters reconstructXMLDsigParameters) -// verify(VerifyAfterReconstructXMLDsigParameters verifyAfterReconstructXMLDsigParameters) - -// 16.12.2010 changed by exthex - added: -// prepareSign(SignParameters signParameters) -// sign(SignParameters signParameters, SignatureDetailInformation signatureDetailInformation) -// finishSign(SignParameters signParameters, SignatureDetailInformation signatureDetailInformation) - - /** - * Signs a PDF document using PDF-AS. - * - * @param signParameters - * The sign parameters. - * @return Returns the signed document plus additional information. - * @throws PdfAsException - * Thrown, if an error occurs. - * - * @see SignParameters - * @see SignResult - */ - @Deprecated - public SignResult sign(SignParameters signParameters) throws PdfAsException; - - /** - * Signs a PDF document using PDF-AS.<br/> - * This uses the {@link SignatorInformation} which was obtained by a call to {@link PdfAs#prepareSign(SignParameters)} - * - * @param signParameters - * The sign parameters. - * @param signatureDetailInformation - * The signature information which was previously obtained by a call to {@link PdfAs#prepareSign(SignParameters)} - * @return Returns the signed document plus additional information. - * @throws PdfAsException - * Thrown, if an error occurs. - * - * @see SignParameters - * @see SignResult - */ - @Deprecated - public SignResult sign(SignParameters signParameters, SignatureDetailInformation signatureDetailInformation) throws PdfAsException; - - /** - * Verifies a document with (potentially multiple) PDF-AS signatures. - * - * @param verifyParameters - * The verify parameters. - * @return Returns the verification results. - * @throws PdfAsException - * Thrown, if an error occurs. - * - * @see VerifyParameters - * @see VerifyResults - * @see VerifyResult - */ - @Deprecated - public VerifyResults verify(VerifyParameters verifyParameters) throws PdfAsException; - - /** - * Analyzes a document for signatures and returns a verify-able list of such. - * - * @param analyzeParameters - * The analyzation parameters. - * @return Returns a list of verify-able signatures that were found in the - * document. - * @throws PdfAsException - * Thrown on error. - * - * @see AnalyzeParameters - * @see AnalyzeResult - * @see {@link #verify(AnalyzeResult)} - */ - @Deprecated - public AnalyzeResult analyze(AnalyzeParameters analyzeParameters) throws PdfAsException; - - /** - * Reconstruct the <xmldsig:Signature> from the given parameters. - * - * @param reconstructXMLDsigParameters - * The data from which to reconstruct the xmldsig - * @return a list of xmldsigs, one for each signature in the document - * @throws PdfAsException if the reconstruction fails - */ - @Deprecated - public ReconstructXMLDsigResult reconstructXMLDSIG(ReconstructXMLDsigParameters reconstructXMLDsigParameters) throws PdfAsException; - - /** - * Reconstruct the <xmldsig:Signature> from the given parameters. - * - * @param reconstructXMLDsigParameters - * The data from which to reconstruct the xmldsigs - * @return a list of xmldsigs, one for each signature in the document - * @throws PdfAsException - */ - @Deprecated - public ReconstructXMLDsigResult reconstructXMLDSIG(ReconstructXMLDsigAfterAnalysisParameters reconstructXMLDsigParameters) throws PdfAsException; - - /** - * Verifies a list of signatures that have been analyzed previously. - * - * @param verifyAfterAnalysisParameters The parameters. - * - * @return Returns the verification results. - * @throws PdfAsException - * Thrown on error. - * - * @see AnalyzeResult - * @see VerifyAfterAnalysisParameters - * @see VerifyResults - * @see VerifyResult - * @see {@link #analyze(AnalyzeParameters)} - */ - @Deprecated - public VerifyResults verify(VerifyAfterAnalysisParameters verifyAfterAnalysisParameters) throws PdfAsException; - - /** - * Verifies a list of signatures that have been analyzed previously and the xmldsigs have been reconstructed. - * - * @param verifyAfterReconstructXMLDsigParameters - * The parameters. - * @return the verification results. - * @throws PdfAsException - * Thrown on error. - */ - @Deprecated - public VerifyResults verify(VerifyAfterReconstructXMLDsigParameters verifyAfterReconstructXMLDsigParameters) throws PdfAsException; - - /** - * Reloads the configuration from the work directory. - * - * @throws PdfAsException - * Thrown, if an error occurs. - */ - @Deprecated - public void reloadConfig() throws PdfAsException; - - /** - * Returns the list of information objects about activated profiles available in the - * configuration. - * - * <p> - * Note: Currently the profile information consists of the profile Id and the - * MOA Key Id only. - * </p> - * <p> - * Note: In near future the profile management will be moved out of the config - * file into an API class representation of the profiles which may render this - * (and related) methods obsolete. - * </p> - * - * @return Returns the list of {@link SignatureProfile} objects with - * information about active profiles available in the configuration. - * @throws PdfAsException - * Thrown on error. - * - * @see SignatureProfile - */ - @Deprecated - public List getProfileInformation() throws PdfAsException; - - /** - * Create a signature profile dynamically. You have do apply() it for usage. See {@link SignatureProfile}. - * @param parentProfile a parent profile id to inherit all properties - * @param mode lifetime mode - * @return the created signature profile to work with. - */ - @Deprecated - public DynamicSignatureProfile createDynamicSignatureProfile(String parentProfile, DynamicSignatureLifetimeEnum mode); - - /** - * Create a signature profile dynamically. You have to provide a unique name and have do apply() it for usage. See {@link SignatureProfile}. - * It is recommended to use {@link #createDynamicSignatureProfile(String, DynamicSignatureLifetimeEnum)} that generates - * a unique name on its own. - * @see DynamicSignatureProfile - * @param parentProfile a parent profile id to inherit all properties - * @param myUniqueName a unique name for the profile - * @param mode lifetime mode - * @return the created signature profile to work with. - */ - @Deprecated - public DynamicSignatureProfile createDynamicSignatureProfile(String myUniqueName, String parentProfile, DynamicSignatureLifetimeEnum mode); - - /** - * Create a signature profile dynamically. You have fill it with properties and apply() it for usage. See {@link SignatureProfile}. - * <br> - * It is recommended to use {@link #createDynamicSignatureProfile(String, DynamicSignatureLifetimeEnum)} that inherits from an - * existing profile saving you a lot of work. - * @param mode lifetime mode - * @return the created signature profile to work with. - * @see DynamicSignatureProfile - */ - @Deprecated - public DynamicSignatureProfile createEmptyDynamicSignatureProfile(DynamicSignatureLifetimeEnum mode); - - /** - * Create a signature profile dynamically. You have fill it with properties and apply() it for usage. See {@link SignatureProfile}. - * <br> - * It is recommended to use {@link #createDynamicSignatureProfile(String, DynamicSignatureLifetimeEnum)} that inherits from an - * existing profile saving you a lot of work. - * @param myUniqueName a unique name for the profile - * @param mode lifetime mode - * @return the created signature profile to work with. - */ - @Deprecated - public DynamicSignatureProfile createEmptyDynamicSignatureProfile(String myUniqueName, DynamicSignatureLifetimeEnum mode); - - /** - * Loads an existing dynamic signature profile by its name. Profiles are saved when they are applied - * and it has {@link DynamicSignatureLifetimeEnum#MANUAL} - * @param profileName - * @return the signature profile or <code>null</code> if not found. - * @see DynamicSignatureProfile - */ - @Deprecated - public DynamicSignatureProfile loadDynamicSignatureProfile(String profileName); - - /** - * Prepares the signature of the given PDF document. The table for the signature data is placed but not filled.<br/> - * Usually used for preview. - * - * @param signParameters - * The sign parameters. - * @return Only the {@link SignatureDetailInformation#getSignaturePosition()}, {@link SignatureDetailInformation#getNonTextualObjects()}, {@link SignatureDetailInformation#getSignatureData()} are filled. - * @throws PdfAsException if something goes wrong during the process - */ - @Deprecated - public SignatureDetailInformation prepareSign(SignParameters signParameters) throws PdfAsException; - - /** - * Finish the signature process. The PDF is filled with the signature data.<br/> - * Usually used if some steps like the actual signing are to be performed externally. - * - * @param signParameters - * The sign parameters. - * @param signatureDetailInformation - * The signature detail information. - * @return - * @throws PdfAsException - */ - @Deprecated - public SignResult finishSign(SignParameters signParameters, SignatureDetailInformation signatureDetailInformation) throws PdfAsException; - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/analyze/AnalyzeParameters.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/analyze/AnalyzeParameters.java deleted file mode 100644 index ca782f81..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/analyze/AnalyzeParameters.java +++ /dev/null @@ -1,131 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.analyze; - -import at.gv.egiz.pdfas.api.commons.Constants; -import at.gv.egiz.pdfas.api.io.DataSource; - -/** - * Parameter object that holds the analyze parameters. - * - * @author wprinz - */ -@Deprecated -public class AnalyzeParameters -{ - - /** - * The document to be analyzed. - */ - protected DataSource document = null; - - /** - * The mode of operation how the document is analyzed. - * - * <p> - * May be {@link Constants#VERIFY_MODE_BINARY_ONLY} to check the document for - * binary signatures only (very fast). Or may be - * {@link Constants#VERIFY_MODE_SEMI_CONSERVATIVE} to perform a semi - * conservative (optimized) text and binary verification (slow). Or may be - * {@link Constants#VERIFY_MODE_FULL_CONSERVATIVE} to perform a full - * conservative text and binary verification (very slow). - * </p> - */ - protected String verifyMode = Constants.VERIFY_MODE_FULL_CONSERVATIVE; - - protected boolean returnNonTextualObjects = false; - - protected boolean hasBeenCorrected = false; - - /** - * @return the document - */ - public DataSource getDocument() - { - return this.document; - } - - /** - * @param document the document to set - */ - public void setDocument(DataSource document) - { - this.document = document; - } - - /** - * @return the verifyMode - */ - public String getVerifyMode() - { - return this.verifyMode; - } - - /** - * @param verifyMode the verifyMode to set - */ - public void setVerifyMode(String verifyMode) - { - this.verifyMode = verifyMode; - } - - public boolean isReturnNonTextualObjects() { - return this.returnNonTextualObjects; - } - - /** - * Tells if non text object of the signed pdf should be extracted and returned. - * One should show this to the user, especially in case of textual signature. - * Defaults to <tt>false</tt> - * - * @param returnNonTextualObjects - */ - public void setReturnNonTextualObjects(boolean returnNonTextualObjects) { - this.returnNonTextualObjects = returnNonTextualObjects; - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/analyze/AnalyzeResult.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/analyze/AnalyzeResult.java deleted file mode 100644 index a371c21b..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/analyze/AnalyzeResult.java +++ /dev/null @@ -1,87 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.analyze; - -import java.util.List; - -import at.gv.egiz.pdfas.api.commons.SignatureInformation; -import at.gv.egiz.pdfas.api.exceptions.PdfAsException; - -/** - * The result of an analyze operation, which is a list of verifyable signatures. - * - * @author wprinz - * - */ -@Deprecated -public interface AnalyzeResult -{ - /** - * Returns the list of found signatures. - * - * @return Returns a list of {@link SignatureInformation} objects representing all - * found signatures. - * @throws PdfAsException - * Thrown on error. - * - * @see SignatureInformation - */ - public List getSignatures() throws PdfAsException; - - public List getNoSignatures(); - - /** - * Tells if the document has been corrected before verification. The correction maybe done - * after a first failing parse to repair a document (if enabled in the configuration - * <code>correct_document_on_verify_if_necessary</code>). The correction can only work for textual - * signatures. Binary signatures are lost anyhow. - * @return - */ - public boolean hasBeenCorrected(); - - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/analyze/NonTextObjectInfo.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/analyze/NonTextObjectInfo.java deleted file mode 100644 index fdc5880b..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/analyze/NonTextObjectInfo.java +++ /dev/null @@ -1,123 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.analyze; - -/** - * Encapsulates information about non textual objects in a pdf document. - * - * @author dferbas - * - */ -@Deprecated -public class NonTextObjectInfo { - public static final String TYPE_IMAGE = "image"; - public static final String TYPE_ANNOTATION = "annotation"; - - private String objectType; - private String subType; - private String name; - private int pageNr; - private double width; - private double height; - - public String getObjectType() { - return this.objectType; - } - - public void setObjectType(String objectType) { - this.objectType = objectType; - } - - public String getName() { - return this.name; - } - - public void setName(String name) { - this.name = name; - } - - public int getPageNr() { - return this.pageNr; - } - - public void setPageNr(int pageNr) { - this.pageNr = pageNr; - } - - public double getWidth() { - return this.width; - } - - public void setWidth(double width) { - this.width = width; - } - - public double getHeight() { - return this.height; - } - - public void setHeight(double height) { - this.height = height; - } - - public String getSubType() { - return this.subType; - } - - public void setSubType(String subType) { - this.subType = subType; - } - - - - public String toString() { - return "NonTextObjectInfo [height=" + this.height + ", name=" + this.name + ", objectType=" - + this.objectType + ", pageNr=" + this.pageNr + ", subType=" + this.subType - + ", width=" + this.width + "]"; - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/commons/Constants.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/commons/Constants.java deleted file mode 100644 index 136e0d70..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/commons/Constants.java +++ /dev/null @@ -1,213 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.commons; - - -/** - * Contains commonly used constants. - * - * @author wprinz - */ -@Deprecated -public final class Constants -{ - - /** - * Hidden default constructor. - */ - private Constants() - { - // empty - } - - /** - * A binary signature. - * This value should not be modified due to external dependencies! - */ - public static final String SIGNATURE_TYPE_BINARY = "binary"; - - /** - * A textual signature. - * This value should not be modified due to external dependencies! - */ - public static final String SIGNATURE_TYPE_TEXTUAL = "textual"; - - /** - * The default signature type (one of "textual", "binary", "detachedtextual"). - */ - public static final String DEFAULT_SIGNATURE_TYPE = SIGNATURE_TYPE_BINARY; - - /** - * A "detached" textual signature. - * - * <p> - * The document text is signed, but instead of returning the pdf with the signature block, - * the sign result XML of the connector is returned. - * </p> - */ - public static final String SIGNATURE_TYPE_DETACHEDTEXTUAL = "detachedtextual"; - - /** - * The signature device moa. - * This value should not be modified due to external dependencies! - */ - public static final String SIGNATURE_DEVICE_MOA = "moa"; - - /** - * The signature device bku. - * This value should not be modified due to external dependencies! - */ - public static final String SIGNATURE_DEVICE_BKU = "bku"; - - /** - * The signature device a1. - * This value should not be modified due to external dependencies! - */ - public static final String SIGNATURE_DEVICE_A1 = "a1"; - - /** - * The signature device MOCCA (online bku). - * This value should not be modified due to external dependencies! - */ - public static final String SIGNATURE_DEVICE_MOC = "moc"; - - /** - * Added by rpiazzi - * The signature device MOBILE. - * This value should not be modified due to external dependencies! - */ - public static final String SIGNATURE_DEVICE_MOBILE = "mobile"; - - /** - * Added by rpiazzi - * The signature device MOBILETEST for the test version of the MOBILE CCS. - * This value should not be modified due to external dependencies! - */ - public static final String SIGNATURE_DEVICE_MOBILETEST = "mobiletest"; - - /** - * Only binary signatures are verified. - */ - public static final String VERIFY_MODE_BINARY_ONLY = "binaryOnly"; - - /** - * Binary and textual signatures are verified with time optimization. - * - * <p> - * This mode of operation tries to minimize the numbers of text extractions, - * which are very time intensive, at the cost of some rare cases, in which some - * signatures may not be found. - * </p> - */ - public static final String VERIFY_MODE_SEMI_CONSERVATIVE = "semiConservative"; - - /** - * Binary and textual signatures are verified. - */ - public static final String VERIFY_MODE_FULL_CONSERVATIVE = "fullConservative"; - - /** - * All signatures are verified. - */ - public static final int VERIFY_ALL = -1; - - /** - * The system property that may be used to declare the pdf-as configuration folder. - */ - public static final String CONFIG_DIR_SYSTEM_PROPERTY = "pdf-as.work-dir"; - - /** - * The zip file containing the default configuration. - */ - public static final String DEFAULT_CONFIGURATION_ZIP_RESOURCE = "DefaultConfiguration.zip"; - - /** - * The configuration folder for pdf-as within the user's home folder. - */ - public static final String USERHOME_CONFIG_FOLDER = "PDF-AS"; - - /** - * The name of the directory, where temporary files are stored. - */ - public static final String TEMP_DIR_NAME = "pdfastmp"; - - public static final String BKU_HEADER_SIGNATURE_LAYOUT = "SignatureLayout"; - - public static final String ADOBE_SIG_FILTER = "Adobe.PDF-AS"; - - /** - * Strict matching mode for placeholder extraction.<br/> - * If the placeholder with the given id is not found in the document, an exception will be thrown. - */ - public static final int PLACEHOLDER_MATCH_MODE_STRICT = 0; - - /** - * A moderate matching mode for placeholder extraction.<br/> - * If the placeholder with the given id is not found in the document, the first placeholder without an id will be taken.<br/> - * If there is no such placeholder, the signature will be placed as usual, according to the pos parameter of the signature profile used. - */ - public static final int PLACEHOLDER_MATCH_MODE_MODERATE = 1; - - /** - * A more lenient matching mode for placeholder extraction.<br/> - * If the placeholder with the given id is not found in the document, the first found placeholder will be taken, regardless if it has an id set, or not.<br/> - * If there is no placeholder at all, the signature will be placed as usual, according to the pos parameter of the signature profile used. - */ - public static final int PLACEHOLDER_MATCH_MODE_LENIENT = 2; - - /** - * Identifier for QR based placeholders. - */ - public static final String QR_PLACEHOLDER_IDENTIFIER = "PDF-AS-POS"; - - /** - * The name of a logger used for statistical logging. - */ - public static final String STATISTIC_LOGGER_NAME = "statistic"; - -} - diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/commons/DynamicSignatureLifetimeEnum.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/commons/DynamicSignatureLifetimeEnum.java deleted file mode 100644 index ff967077..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/commons/DynamicSignatureLifetimeEnum.java +++ /dev/null @@ -1,96 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.commons; - -import java.io.Serializable; - -/** - * Pseudo enum defining lifetime models for {@link DynamicSignatureProfile}s. - * - * @author exthex - * - */ -@Deprecated -public final class DynamicSignatureLifetimeEnum implements Serializable { - private static final long serialVersionUID = 1L; - - private int value; - - /** - * Automatic lifetime bound to one sign process - */ - public static final DynamicSignatureLifetimeEnum AUTO = new DynamicSignatureLifetimeEnum(1); - - /** - * Manual lifetime making YOU responsible for calling {@link DynamicSignatureProfile#dispose()}. - */ - public static final DynamicSignatureLifetimeEnum MANUAL = new DynamicSignatureLifetimeEnum(2); - - private DynamicSignatureLifetimeEnum(int val) { - this.value = val; - } - - public int hashCode() { - return value; - } - - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - DynamicSignatureLifetimeEnum other = (DynamicSignatureLifetimeEnum) obj; - if (value != other.value) - return false; - return true; - } - - - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/commons/DynamicSignatureProfile.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/commons/DynamicSignatureProfile.java deleted file mode 100644 index 535ea18c..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/commons/DynamicSignatureProfile.java +++ /dev/null @@ -1,149 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.commons; - -import at.gv.egiz.pdfas.api.PdfAs; -import at.gv.egiz.pdfas.api.sign.SignParameters; - -/** - * A dynamic signature profile. It is used to define a signature profile like the ones from pdf-as/config.properties at runtime. - * After creation via {@link PdfAs} you can set properties via {@link #setPropertyRaw(String, String)} - * or {@link #setFieldValue(String, String)}.<br> - * You have to call {@link #apply()} to use the profile. The identifying name (e.g. for {@link SignParameters#setSignatureProfileId(String)} - * can be obtained via {@link #getName()}.<br> - * Depending on the {@link DynamicSignatureLifetimeEnum} the profile can be alive and usable till you {@link #dispose()} it manually. - * <p> - * Sample usage:<br> - * <pre> - SignParameters sp = new SignParameters(); - . . . - sp.setSignatureType(Constants.SIGNATURE_TYPE_TEXTUAL); - sp.setSignatureDevice(Constants.SIGNATURE_DEVICE_MOA); - - // create a new dynamic profile based on SIGNATURBLOCK_DE (every property is copied) with manual lifetime - DynamicSignatureProfile dsp = pdfAs.createDynamicSignatureProfile("myUniqueName", "SIGNATURBLOCK_DE", - DynamicSignatureLifetimeEnum.MANUAL); - - // set something - dsp.setPropertyRaw("key.SIG_META", "Statement"); - dsp.setPropertyRaw("value.SIG_META", "respect to the man in the icecream van ${subject.EMAIL}"); - dsp.setPropertyRaw("value.SIG_LABEL", "./images/signatur-logo_en.png"); - dsp.setPropertyRaw("table.main.Style.halign", "right"); - - // mandatory: apply the profile, you have to apply again after changes (overriding your previous setting) - dsp.apply(); - sp.setSignatureProfileId(dsp.getName()); - - // execute PDF-AS - pdfAs.sign(sp); - - . . . - - // your profile is saved and you can obtain it again anytime later: - dsp = pdfAs.loadDynamicSignatureProfile("myUniqueName"); - // use it for another sign. - // dont forget to dispose() sometimes because it was manual lifetime - System.out.println(dsp.getName()); - * </pre> - * </p> - * - * @author exthex - * - */ -@Deprecated -public interface DynamicSignatureProfile { - - /** - * Get the name of the dynamic signature profile. Equals the <b>SignatureProfileId</b> - * @return - */ - public abstract String getName(); - - /** - * Set a field value for the profile. Use {@link #setPropertyRaw(String, String)} for setting any property.<br> - * For example to set <code>sig_obj.MEIN_DYN_SIGNATURBLOCK.value.SIG_META</code> just use <code>SIG_META</code> as fieldName. - * @param fieldName the name of the field - * @param value the value to set - */ - public abstract void setFieldValue(String fieldName, String value); - - /** - * Get a field value from the profile. See {@link #setFieldValue(String, String)} - * @param fieldName - * @return - */ - public abstract String getFieldValue(String fieldName); - - /** - * Set any property for the signature profile. - * Uses the same keys as the property file without the "prefix" for the profile. - * For example to set <code>sig_obj.MEIN_DYN_SIGNATURBLOCK.key.SIG_META</code> use <code>key.SIG_META</code> - * @param key property key - * @param val property value - */ - public void setPropertyRaw(String key, String val); - - /** - * Get any property from the signature profile. See {@link #setPropertyRaw(String, String)} for details. - * @param key - * @return - */ - public String getPropertyRaw(String key); - - /** - * Apply the signature profile. Call this after all properties are set and you want to use the profile. It is then added - * to the globally available signature profiles. Depending on the lifetime model {@link DynamicSignatureLifetimeEnum} you - * have to {@link #dispose()} it manually when not needed anymore. - */ - public abstract void apply(); - - /** - * Disposes the signature profile from the global store. Call this for {@link DynamicSignatureLifetimeEnum#MANUAL} only. - */ - public abstract void dispose(); - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/commons/DynamicSignatureProfileImpl.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/commons/DynamicSignatureProfileImpl.java deleted file mode 100644 index ce36fb9f..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/commons/DynamicSignatureProfileImpl.java +++ /dev/null @@ -1,238 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.commons; - -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.Properties; - -import at.gv.egiz.pdfas.api.PdfAs; -import at.gv.egiz.pdfas.common.settings.ISettings; -import at.gv.egiz.pdfas.lib.api.Configuration; -import at.knowcenter.wag.egov.egiz.sig.SignatureTypes; - -/** - * Implementation class of the {@link DynamicSignatureProfile}. Don't use this class directly. Use {@link PdfAs} to create and the - * {@link DynamicSignatureProfile} interface for manipulation. - * @author exthex - * - */ -@Deprecated -public class DynamicSignatureProfileImpl implements DynamicSignatureProfile { - private String name; - private Properties newProps = new Properties(); - private int dynamicTypeCounter = 0; - private static Map<String, DynamicSignatureProfile> profiles = - new HashMap<String, DynamicSignatureProfile>(); - private static ThreadLocal<DynamicSignatureProfile> localProfiles = new ThreadLocal<DynamicSignatureProfile>(); - private DynamicSignatureLifetimeEnum lifeMode; - private Configuration configuration; - - private DynamicSignatureProfileImpl(DynamicSignatureLifetimeEnum mode, String name, - Configuration configuration) { - if (name != null) { - this.name = name; - } else { - this.name = createDynamicTypeName(); - } - this.configuration = configuration; - this.lifeMode = mode; - } - - public static DynamicSignatureProfileImpl createFromParent(String myUniqueName, String parentProfile, - DynamicSignatureLifetimeEnum mode, Configuration configuration) { - DynamicSignatureProfileImpl res = new DynamicSignatureProfileImpl(mode, myUniqueName, configuration); - res.initFromParent(parentProfile); - return res; - } - - private void store() { - if (lifeMode.equals(DynamicSignatureLifetimeEnum.MANUAL)) { - profiles.put(this.getName(), this); - } else if (lifeMode.equals(DynamicSignatureLifetimeEnum.AUTO)) { - localProfiles.set(this); - } - } - - private void remove() { - if (lifeMode.equals(DynamicSignatureLifetimeEnum.MANUAL)) { - profiles.remove(this); - } else if (lifeMode.equals(DynamicSignatureLifetimeEnum.AUTO)) { - localProfiles.set(null); - } - } - - public static void disposeLocalProfile() { - DynamicSignatureProfileImpl profile = (DynamicSignatureProfileImpl) localProfiles.get(); - if (profile != null) { - profile.dispose(); - } - } - - public static DynamicSignatureProfileImpl createEmptyProfile(String myUniqueName, DynamicSignatureLifetimeEnum mode, - Configuration configuration) { - return new DynamicSignatureProfileImpl(mode, myUniqueName, configuration); - } - - public static DynamicSignatureProfileImpl loadProfile(String name) { - return (DynamicSignatureProfileImpl) profiles.get(name); - } - - private synchronized String createDynamicTypeName() { - return "dynprofile__#" + this.dynamicTypeCounter++; - } - - /* (non-Javadoc) - * @see at.gv.egiz.pdfas.api.commons.DynamicSignatureProfile#getName() - */ - public String getName() { - return name; - } - - /* (non-Javadoc) - * @see at.gv.egiz.pdfas.api.commons.DynamicSignatureProfile#setName(String) - */ - public void setName(String uniqueName) { - this.name = uniqueName; - } - - public void setPropertyRaw(String key, String val) { - this.newProps.setProperty(localPropName(key), val); - } - - public String getPropertyRaw(String key) { - return this.newProps.getProperty(localPropName(key)); - } - - private void assertPropExists(String key) { - if (!this.newProps.containsKey(localPropName(key))) { - throw new RuntimeException("property '" + key + "'not existing, cannot add one"); - } - } - - private String localPropName(String key) { - return "sig_obj." + this.name + "." + key; - } - - /* (non-Javadoc) - * @see at.gv.egiz.pdfas.api.commons.DynamicSignatureProfile#setFieldValue(java.lang.String, java.lang.String) - */ - public void setFieldValue(String fieldName, String value) { - if (SignatureTypes.isRequredSigTypeKey(fieldName)) { - throw new RuntimeException("cannot set value for pre defined signature field names"); - } - - String key = "value." +fieldName; - assertPropExists(key); - setPropertyRaw(key, value); - } - - /* (non-Javadoc) - * @see at.gv.egiz.pdfas.api.commons.DynamicSignatureProfile#getFieldValue(java.lang.String) - */ - public String getFieldValue(String fieldName) { - return getPropertyRaw("value."+fieldName); - } - - private void initFromParent(String parentProfile) { - try { - ISettings cfg = null; - - cfg = (ISettings)configuration; - String parentKey = "sig_obj." + parentProfile + "."; - Map<String, String> properties = cfg.getValuesPrefix(parentKey); - Iterator<String> keyIt = properties.keySet().iterator(); - - while(keyIt.hasNext()) { - String oldKey = keyIt.next(); - String newKey = oldKey.replaceAll(parentProfile, name); - String val = properties.get(oldKey); - this.newProps.put(newKey, val); - } - - this.newProps.put("sig_obj.types." + name, "on"); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - /* (non-Javadoc) - * @see at.gv.egiz.pdfas.api.commons.DynamicSignatureProfile#register() - */ - public synchronized void apply() { - try { - Configuration cfg = this.configuration; - for (Enumeration<Object> e = newProps.keys(); e.hasMoreElements();) { - String key = (String) e.nextElement(); - cfg.setValue(key, newProps.getProperty(key)); - } - - store(); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - /* (non-Javadoc) - * @see at.gv.egiz.pdfas.api.commons.DynamicSignatureProfile#dispose() - */ - public synchronized void dispose() { - try { - Configuration cfg = this.configuration; - for (Enumeration<Object> e = newProps.keys(); e.hasMoreElements();) { - String key = (String) e.nextElement(); - cfg.setValue(key, null); - } - remove(); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/commons/SignatureInformation.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/commons/SignatureInformation.java deleted file mode 100644 index 413be0ad..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/commons/SignatureInformation.java +++ /dev/null @@ -1,153 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - * - * $Id: SignatureHolder.java,v 1.3 2006/10/11 07:57:58 wprinz Exp $ - */ -package at.gv.egiz.pdfas.api.commons; - -import java.security.cert.X509Certificate; -import java.util.Date; -import java.util.List; - -import at.gv.egiz.pdfas.api.analyze.NonTextObjectInfo; -import at.gv.egiz.pdfas.api.io.DataSource; - -/** - * Holds the information of one found signature block, which is the signed data - * and the corresponding signature information. - * - * @author wprinz - */ -@Deprecated -public interface SignatureInformation -{ - /** - * Returns the type of this signature (binary/textual). - * - * <p> - * May be {@link Constants#SIGNATURE_TYPE_BINARY} or - * {@link Constants#SIGNATURE_TYPE_TEXTUAL}. - * </p> - * - * @return Returns the type of this signature (binary/textual). - */ - public String getSignatureType(); - - /** - * Returns the DataSource providing the data that was signed. - * - * <p> - * Note that this is the signed data as sent to the verification device by - * PDF-AS. The verification device (e.g. MOA) may perform several other - * transformations on the data before feeding it to the signature hash - * function. To get the actual hashed data use the ReturnHashInputData mechanism (which is very slow). - * </p> - * - * @return Returns the DataSource providing the data that was signed. - * - * @see at.gv.egiz.pdfas.api.verify.VerifyParameters#setReturnHashInputData(boolean) - * @see at.gv.egiz.pdfas.api.verify.VerifyResult#getHashInputData() - * - */ - public DataSource getSignedData(); - - /** - * Returns the certificate of the signer. - * - * <p> - * Information like subject name, issuer name or serial number can be - * retrieved form this certificate. - * </p> - * - * @return Returns the certificate of the signer. - */ - public X509Certificate getSignerCertificate(); - - /** - * Returns the signing time, which is the time when the signature was created. - * - * @return Returns the signing time, which is the time when the signature was - * created. - */ - public Date getSigningTime(); - - /** - * Returns additional, internal information about the found signature. - * - * <p> - * Note that this provides a way for developers to gather core information - * about the signature. What information is returned strongly depends on the - * core implementation. - * </p> - * - * @return Returns additional, internal information about the signature. Null - * means that no additional information is available. - */ - public Object getInternalSignatureInformation(); - - /** - * Returns the embedded /TimeStamp value (b64 encoded) from the signature if available. - * @return - */ - public String getTimeStampValue(); - - /** - * Returns a list<{@link NonTextObjectInfo}> of non textual objects in the pdf document. - * Only available for textual signatures. Show this to the user who signed the textual content only! - * @return List<{@link NonTextObjectInfo} or <tt>null</tt> of not available (binary signature) - */ - public List getNonTextualObjects(); - - public void setNonTextualObjects(List nonTextualObjects); - - /** - * Returns <code>true</code> if non textual objects have been found, <code>false</code> if not. - * @return <code>true</code> if non textual objects have been found, <code>false</code> if not. - */ - public boolean hasNonTextualObjects(); - - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/commons/SignatureProfile.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/commons/SignatureProfile.java deleted file mode 100644 index f23ce5a0..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/commons/SignatureProfile.java +++ /dev/null @@ -1,111 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.commons; - -import java.util.Properties; - -import at.knowcenter.wag.egov.egiz.sig.SignatureTypes.State; - -/** - * Definition of a signature profile. - * - * @author wprinz - */ -@Deprecated -public interface SignatureProfile { - - // TODO: implement full profile support - - /** - * Returns the profile id. - * - * @return Returns the profile id. - */ - public String getProfileId(); - - /** - * Returns the MOA KeyIdentifier. - * - * @return Returns the MOA KeyIdentifier. - */ - public String getMOAKeyIdentifier(); - - /** - * Returns the entries relevant to the search algorithm for signature blocks.<br/> - * e.g. properties starting with <code>sig_obj.PROFILE.key.</code> and - * properties of the form <code>sig_obj.PROFILE.table.TABLENAME.NUMBER</code> - * where <code>PROFILE</code> is the name of the current profile, - * <code>TABLENAME</code> is the name of a table and <code>NUMBER</code> - * is the number of the specific row within the table <code>TABLENAME</code>. - * - * @return The entries relevant to the signature block search algorithm as - * Java properties. - */ - public Properties getSignatureBlockEntries(); - - /** - * Returns the profile description. - * - * @return The profile description. - */ - public String getProfileDescription(); - - /** - * True only if this is the default profile according to config. - * @return - */ - public boolean isDefault(); - - /** - * Returns the state of the signature profile. Signature profiles may be restricted to signature ( - * {@link State#SIGN_ONLY}) or to verification ({@link State#VERIFY_ONLY}). - * - * @return The state of the profile. - */ - public State getState(); - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/exceptions/ConfigUtilsException.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/exceptions/ConfigUtilsException.java deleted file mode 100644 index d130c354..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/exceptions/ConfigUtilsException.java +++ /dev/null @@ -1,146 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.exceptions; - -/** - * @author <a href="mailto:thomas.knall@egiz.gv.at">Thomas Knall</a> - */ -@Deprecated -public class ConfigUtilsException extends Exception { - - /** - * Marker for serialization. - */ - private static final long serialVersionUID = 1L; - - /** - * The underlying exception. - */ - private Exception wrappedException; - - /** - * Returns the underlying exception. - * - * @return The underlying exception. - */ - public Exception getException() { - return this.wrappedException; - } - - /** - * Returns the message of the wrapped exception. - * - * @return The message of the wrapped exception. - */ - public String getMessage() { - String message = super.getMessage(); - if (message == null && this.wrappedException != null) { - return this.wrappedException.getMessage(); - } else { - return message; - } - } - - /** - * Instantiation of a new exception based on a message and another (wrapped) - * exception. - * - * @param message - * The exception message. - * @param exception - * Another exception. - */ - public ConfigUtilsException(final String message, final Exception exception) { - super(message); - this.wrappedException = exception; - } - - /** - * Instantiated a new exception based on a message. - * - * @param message - * The message of the new exception. - */ - public ConfigUtilsException(final String message) { - super(message); - this.wrappedException = null; - } - - /** - * Instantiates a new exception based on another (wrapped) exception. - * - * @param exception - * The wrapped exception. - */ - public ConfigUtilsException(final Exception exception) { - super(); - this.wrappedException = exception; - } - - /** - * Instantiates a new (unspecified) exception. - */ - public ConfigUtilsException() { - super(); - this.wrappedException = null; - - } - - /** - * Returns the text representation of this instance. - * - * @return The text representation of this instance. - */ - public String toString() { - if (this.wrappedException != null) { - return this.wrappedException.toString(); - } else { - return super.toString(); - } - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/exceptions/ErrorCode.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/exceptions/ErrorCode.java deleted file mode 100644 index 557b33dc..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/exceptions/ErrorCode.java +++ /dev/null @@ -1,139 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.exceptions; - -/** - * Contains constants for the error codes. - * - * <p> - * In Java 1.5 this would be an enum. - * </p> - * - * @author wprinz - */ -@Deprecated -public final class ErrorCode -{ - public static final int EXTERNAL_ERROR = 0; - public static final int UNKNOWN_ERROR = 6; - public static final int OUT_OF_MEMORY_ERROR = 7; - - public static final int SETTING_NOT_FOUND = 100; - public static final int SETTINGS_EXCEPTION = 101; - public static final int KZ_SETTING_NOT_FOUND = 102; - public static final int NO_EMBEDABLE_TTF_CONFIGURED_FOR_PDFA = 103; - public static final int INVALID_SIGNATURE_LAYOUT_IMPL_CONFIGURED = 104; - public static final int MISSING_HEADER_SERVER_USER_AGENT = 105; - public static final int CIRCULAR_INCLUDE_INSTRUCTION_DETECTED = 106; - public static final int UNABLE_TO_LOAD_DEFAULT_CONFIG = 107; - - public static final int DOCUMENT_CANNOT_BE_READ = 201; - public static final int TEXT_EXTRACTION_EXCEPTION = 202; - public static final int CANNOT_WRITE_PDF = 205; - public static final int DOCUMENT_NOT_SIGNED = 206; - public static final int SIGNATURE_TYPES_EXCEPTION = 223; - public static final int FONT_NOT_FOUND = 230; - public static final int DOCUMENT_IS_PROTECTED = 231; - public static final int INVALID_SIGNATURE_DICTIONARY = 232; -//23.11.2010 changed by exthex - added error code for failed extraction - public static final int SIGNATURE_PLACEHOLDER_EXTRACTION_FAILED = 233; - - /** - * Error code for {@code SignatureException}s occurring when trying to sign with a certain signature profile that - * is not allowed to be used for signature, e.g. because ist has been set to - * <p/> - * {@code sig_obj.types.<PROFILE_ID> = verify_only} - * @author Datentechnik Innovation GmbH - */ - public static final int SIGNATURE_PROFILE_IS_NOT_ALLOWED_FOR_SIGNATURE = 234; - - public static final int INVALID_SIGNATURE_POSITION = 224; - public static final int NO_TEXTUAL_CONTENT = 251; - - public static final int SIGNATURE_COULDNT_BE_CREATED = 300; - public static final int SIGNED_TEXT_EMPTY = 301; - public static final int PROFILE_NOT_DEFINED = 302; - public static final int SERIAL_NUMBER_INVALID = 303; - public static final int SIG_CERTIFICATE_CANNOT_BE_READ = 304; - public static final int PROFILE_NOT_USABLE_FOR_TEXT = 305; - - public static final int COULDNT_VERIFY = 310; - - public static final int CERTIFICATE_NOT_FOUND = 313; - public static final int NOT_SEMANTICALLY_EQUAL = 314; - - public static final int MODIFIED_AFTER_SIGNATION = 316; - public static final int NON_BINARY_SIGNATURES_PRESENT = 317; - - public static final int UNSUPPORTED_REPLACES_NAME = 318; - public static final int UNSUPPORTED_SIGNATURE = 319; - - public static final int DETACHED_SIGNATURE_NOT_SUPPORTED = 370; - - public static final int SIGNATURE_VERIFICATION_NOT_SUPPORTED = 371; - public static final int INVALID_SIGNING_TIME = 372; - - public static final int BKU_NOT_SUPPORTED = 373; - - public static final int WEB_EXCEPTION = 330; - public static final int UNABLE_TO_RECEIVE_SUITABLE_RESPONSE = 340; - - - public static final int NORMALIZER_EXCEPTION = 400; - - public static final int SESSION_EXPIRED = 600; - - public static final int PLACEHOLDER_EXCEPTION = 700; - public static final int CAPTION_NOT_FOUND_EXCEPTION = 701; - - public static final int UNABLE_TO_PARSE_ID = 800; - public static final int CORRECTOR_EXCEPTION = 801; - public static final int EXTERNAL_CORRECTOR_TIMEOUT_REACHED = 802; - - public static final int WRAPPED_ERROR_CODE = 998; - public static final int FUNCTION_NOT_AVAILABLE = 999; -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/exceptions/PdfAsException.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/exceptions/PdfAsException.java deleted file mode 100644 index e20301e5..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/exceptions/PdfAsException.java +++ /dev/null @@ -1,122 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.exceptions; - -/** - * This exception is the base for all PDF-AS exceptions. - * - * <p> - * Every PDF-AS Exception has an error code. - * </p> - * - * @author wprinz - */ -@Deprecated -public class PdfAsException extends Exception -{ - /** - * The error code. - */ - protected int errorCode = -1; - - /** - * Constructor. - * - * @param errorCode - * The error code. - * @param message - * The detail message. - */ - public PdfAsException(int errorCode, String message) - { - super(message); - - this.errorCode = errorCode; - } - - /** - * Constructor. - * - * @param errorCode - * The error code. - * @param message - * The detail message. - * @param cause - * The cause. - */ - public PdfAsException(int errorCode, String message, Throwable cause) - { - super(message, cause); - - this.errorCode = errorCode; - } - - /** - * Constructor. - * - * @param errorCode - * The error code. - * @param cause - * The cause. - */ - public PdfAsException(int errorCode, Throwable cause) - { - super(cause); - - this.errorCode = errorCode; - } - - /** - * Returns the error code of this exception. - * - * @return Returns the error code of this exception. - */ - public int getErrorCode() - { - return this.errorCode; - } -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/exceptions/PdfAsWrappedException.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/exceptions/PdfAsWrappedException.java deleted file mode 100644 index d8ea2825..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/exceptions/PdfAsWrappedException.java +++ /dev/null @@ -1,38 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -package at.gv.egiz.pdfas.api.exceptions; - -@Deprecated -public class PdfAsWrappedException extends PdfAsException { - - /** - * - */ - private static final long serialVersionUID = -3947240372353864753L; - - public PdfAsWrappedException(Throwable e) { - super(ErrorCode.WRAPPED_ERROR_CODE, e.getMessage(), e); - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/io/DataSink.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/io/DataSink.java deleted file mode 100644 index 9c0b6b09..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/io/DataSink.java +++ /dev/null @@ -1,122 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.io; - -import java.io.IOException; -import java.io.OutputStream; - -/** - * Output document data sink. - * - * <p> - * Actually, the DataSink can be seen as a factory for creating OutputStreams - * with mime type and character encoding provided. This allows the API user to - * decide how data is to be stored (e.g. in a file, in a byte array, etc.). - * </p> - * - * @author wprinz - */ -@Deprecated -public interface DataSink -{ - /** - * Creates an OutputStream for binary data. - * - * <p> - * Note that the stream may be written only once. Creating another stream - * overwrites the existing one. - * </p> - * - * @param mimeType - * The mime type of the output data. - * @return Returns the created output stream. - * @throws IOException - * Thrown if the stream cannot be created. - */ - public OutputStream createOutputStream(String mimeType) throws IOException; - - /** - * Creates an OutputStream for character data. - * - * <p> - * This is basically the same as {@link #createOutputStream(String)}, but - * allows to specify the character encoding. - * </p> - * - * @param mimeType - * The mime type of the output data. - * @param characterEncoding - * The character encoding of the data. - * @return Returns the created output stream. - * @throws IOException - * Thrown if the stream cannot be created. - */ - public OutputStream createOutputStream(String mimeType, String characterEncoding) throws IOException; - - /** - * Returns the mime type of the data stream. - * - * <p> - * This is only valid after a stream has been created. - * </p> - * - * @return Returns the mime type of the data stream. - */ - public String getMimeType(); - - /** - * Returns the character encoding of the data stream. - * - * <p> - * This is only valid after a stream has been created. Null means that no - * character encoding was specified for the data (e.g. if the data is binary). - * </p> - * - * @return Returns the character encoding of the data stream. - */ - public String getCharacterEncoding(); -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/io/DataSource.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/io/DataSource.java deleted file mode 100644 index 0bd8966a..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/io/DataSource.java +++ /dev/null @@ -1,118 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.io; - -import java.io.InputStream; - -/** - * Input document data source. - * - * <p> - * This allows the holder of the data to decide how the data is to be stored (e.g. in a File or in a byte array). - * </p> - * - * @author wprinz - * - */ -@Deprecated -public interface DataSource -{ - /** - * Creates a new InputStream that allows to read out the document's binary - * data from the beginning. - * - * @return Returns the InputStream with the binary data. - */ - public InputStream createInputStream(); - - /** - * Returns the length (number of bytes) of the stream. - * - * @return Returns the length (number of bytes) of the stream. - */ - public int getLength(); - - /** - * Returns the data of this DataSource as a byte array for random read only access. - * - * <p> - * Calling this method indicates that you need a byte array for random - * <strong>read only</strong> access. The DataSource implementation should of - * course cache this byte array to avoid too much memory usage. - * </p> - * <p> - * Performance analysis has shown that the libraries internally convert the - * streams to byte arrays and that file system access is very slow. - * </p> - * <p> - * Never write to this byte array! - * </p> - * - * @return Returns the data of this DataSource as a byte array for random read only access. - */ - public byte[] getAsByteArray(); - - /** - * Returns the mime type of the data. - * - * @return Returns the mime type of the data. - */ - public String getMimeType(); - - /** - * Returns the character encoding of the data. - * - * <p> - * This makes only sense for character based mime types. - * </p> - * - * @return Returns the character encoding of the data or null if no encoding - * is applicable (e.g. if the data is binary). - */ - public String getCharacterEncoding(); - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/io/FileBased.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/io/FileBased.java deleted file mode 100644 index c2a7b25f..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/io/FileBased.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.io; - -import java.io.File; - -/** - * Tells that the IO element (DataSink or DataSource) is backed by a file in the local file system. - * - * <p> - * This is a hint that may be used by PDF-AS to optimize data access. - * </p> - * - * @author wprinz - */ -@Deprecated -public interface FileBased -{ - - /** - * Returns the File "behind" this io element. - * - * <p> - * This is usually used to determine the file name itself. - * </p> - * - * @return Returns the File "behind" this io element. - */ - public File getFile (); - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/io/TextBased.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/io/TextBased.java deleted file mode 100644 index fadd8bbf..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/io/TextBased.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.io; - -/** - * Tells, that the IO Element (DataSink - but mostly DataSource) is based upon - * character data. - * - * <p> - * This can be used to retrieve the character text directly with the correct - * encoding etc. - * </p> - * <p> - * This makes most sense for text DataSources. - * </p> - * - * @author wprinz - */ -@Deprecated -public interface TextBased -{ - - /** - * Returns the text. - * - * @return Returns the text. - */ - public String getText(); - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/SignParameters.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/SignParameters.java deleted file mode 100644 index 5466d596..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/SignParameters.java +++ /dev/null @@ -1,417 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.sign; - -import java.util.Properties; - -import at.gv.egiz.pdfas.api.commons.Constants; -import at.gv.egiz.pdfas.api.io.DataSink; -import at.gv.egiz.pdfas.api.io.DataSource; -import at.gv.egiz.pdfas.api.sign.pos.SignaturePositioning; -import at.gv.egiz.pdfas.api.timestamp.TimeStamper; -import at.knowcenter.wag.egov.egiz.sig.SignatureTypes; - -/** - * Parameter object that holds the sign parameters. - * - * @author wprinz - */ -@Deprecated -public class SignParameters -{ -// 23.11.2010 changed by exthex - added parameters for placeholder handling - - /** - * The document to be signed. - * - * <p> - * The DataSource implementation encapsulates the actual representaion of the - * data. E.g. the DataSource may be File based or byte array based. See - * package at.gv.egiz.pdfas.framework.input and at.gv.pdfas.impl.input - * </p> - */ - protected DataSource document = null; - - /** - * The type of the signature. - * - * <p> - * May be {@link Constants#SIGNATURE_TYPE_BINARY} or - * {@link Constants#SIGNATURE_TYPE_TEXTUAL}. - * </p> - */ - protected String signatureType = Constants.DEFAULT_SIGNATURE_TYPE; - - /** - * The signature device to perform the actual signature. - * - * <p> - * May be {@link Constants#SIGNATURE_DEVICE_MOA} or - * {@link Constants#SIGNATURE_DEVICE_BKU}. - * </p> - */ - protected String signatureDevice = Constants.SIGNATURE_DEVICE_MOA; - - /** - * The signature profile identifier identifying the profile to be used in the - * config file. - * - * <p> - * Note: In near future it will be possible to provide a full specified - * profile here instead of the profile id. - * </p> - */ - protected String signatureProfileId = null; - - /** - * The signature key identifier specifying which signature key should be used - * by the signature device to perform the signature. - * - * <p> - * Providing a null value (default) means that no explicit signature key - * identifier is provided. The selected signature device will then use its - * default mechanism for retrieving this information (which is usually to read - * the key from the provided signature profile). - * </p> - * <p> - * Note that not all signature devices may support this parameter. - * If a signature device doesn't support this parameter the value should be null. - * </p> - * <p> - * This key is usually passed straight through to the signature device and - * thereby has to contain an appropriate value for the signature device - * chosen. - * </p> - * <p> - * Currently, only the {@link Constants#SIGNATURE_DEVICE_MOA} signature device - * evaluates this parameter and passes the provided String to MOA as the MOA - * key group identifier. If null is provided, the MOA signature device will - * determine the signature key identifier to be used from the provided profile - * and, if not specified there either, from the MOA default configuration. - * </p> - */ - protected String signatureKeyIdentifier = null; - - /** - * The signature position. Consult the PDF-AS documentation section - * Commandline. - */ - protected SignaturePositioning signaturePositioning = null; - - /** - * The output DataSink that will receive the signed document. - */ - protected DataSink output = null; - - protected TimeStamper timeStamperImpl; - - /** - * The flag to de-/activate placeholder search - */ - protected Boolean checkForPlaceholder = null; - - /** - * The id of the placeholder which should be replaced. - */ - protected String placeholderId; - - /** - * The matching mode for placeholder extraction.<br/> - * If a {@link SignParameters#placeholderId} is set, the match mode determines what is to be done, if no matching placeholder is found in the document. - * <br/> - * Defaults to {@link Constants#PLACEHOLDER_MATCH_MODE_MODERATE}. - */ - protected int placeholderMatchMode = Constants.PLACEHOLDER_MATCH_MODE_MODERATE; - - protected Properties overrideProps = new Properties(); - - - - - - /** - * {@link #setTimeStamperImpl(TimeStamper)} - * @return - */ - public TimeStamper getTimeStamperImpl() { - return this.timeStamperImpl; - } - - /** - * Set a {@link TimeStamper} to create a timestamp on the signature value. Will be - * called after sign. For binary signatures only. Timestamp will be embedded in egiz dict /TimeStamp. - * @param timeStamperImpl - */ - public void setTimeStamperImpl(TimeStamper timeStamperImpl) { - this.timeStamperImpl = timeStamperImpl; - } - -/** - * @return the document - */ - public DataSource getDocument() - { - return document; - } - - /** - * @param document - * the document to set - */ - public void setDocument(DataSource document) - { - this.document = document; - } - - /** - * @return the signatureType - */ - public String getSignatureType() - { - return signatureType; - } - - /** - * @param signatureType - * the signatureType to set - */ - public void setSignatureType(String signatureType) - { - this.signatureType = signatureType; - } - - /** - * @return the signatureDevice - */ - public String getSignatureDevice() - { - return signatureDevice; - } - - /** - * @param signatureDevice - * the signatureDevice to set - */ - public void setSignatureDevice(String signatureDevice) - { - this.signatureDevice = signatureDevice; - } - - /** - * @return the signatureProfileId - */ - public String getSignatureProfileId() - { - return signatureProfileId; - } - - /** - * @param signatureProfileId - * the signatureProfileId to set - */ - public void setSignatureProfileId(String signatureProfileId) - { - this.signatureProfileId = signatureProfileId; - } - - /** - * @return the signaturePositioning - */ - public SignaturePositioning getSignaturePositioning() - { - return this.signaturePositioning; - } - - /** - * @param signaturePositioning - * the signaturePositioning to set - */ - public void setSignaturePositioning(SignaturePositioning signaturePositioning) - { - this.signaturePositioning = signaturePositioning; - } - - /** - * @return the output - */ - public DataSink getOutput() - { - return output; - } - - /** - * @param output - * the output to set - */ - public void setOutput(DataSink output) - { - this.output = output; - } - - /** - * @return the signatureKeyIdentifier - */ - public String getSignatureKeyIdentifier() - { - return this.signatureKeyIdentifier; - } - - /** - * @param signatureKeyIdentifier the signatureKeyIdentifier to set - */ - public void setSignatureKeyIdentifier(String signatureKeyIdentifier) - { - this.signatureKeyIdentifier = signatureKeyIdentifier; - } - - /** - * Override user defined values from the used signature profile like "value.SIG_META". - * You cannot override pre defined values like SIG_VALUE, SIG_DATE {@link SignatureTypes#REQUIRED_SIG_KEYS}. - * The override values are bound to the {@link SignParameters} instance. - * <p> - * Sample usage: - * <pre> - SignParameters sp = new SignParameters(); - . . . - - sp.setSignatureProfileId("SIGNATURBLOCK_DE"); - - // expressions do not work on binary signature fields without phlength setting!! - sp.setProfileOverrideValue("SIG_META", "It's nice to be important, but it is more important to be nice ${subject.L}");; - sp.setProfileOverrideValue("SIG_LABEL", "./images/signatur-logo_en.png"); - - // execute sign using the overrides - pdfAs.sign(sp); - </pre> - * </p> - * @param key the name of the setting to override e.g. "SIG_META" - * @param value The new value - */ - public void setProfileOverrideValue(String key, String value) { - if (SignatureTypes.isRequredSigTypeKey(key)) { - throw new RuntimeException("cannot set value for pre defined signature field names"); - } - this.overrideProps.put(key, value); - } - - /** - * Get override values created via {@link #setProfileOverrideValue(String, String)} - * @return - */ - public Properties getProfileOverrideProperties() { - return this.overrideProps; - - } - - /** - * Get the value of the checkForPlaceholder flag. - * - * @return - */ - public Boolean isCheckForPlaceholder() { - return this.checkForPlaceholder; - } - - /** - * Set this to true, if you want a search for placeholder images to be performed and - * appropriate images to be replaced. - * If this is not set, a search will only be performed if the configuration property "enable_placeholder_search" is set to true. - * - * @param check - */ - public void setCheckForPlaceholder(Boolean searchForPlaceHolder) { - this.checkForPlaceholder = searchForPlaceHolder; - } - - /** - * Set an explicit placeholder id. - * Only placeholder images that have a matching ID property embedded will be considered for replacement. - * - * @param placeholderId - */ - public void setPlaceholderId(String placeholderId) { - this.placeholderId = placeholderId; - } - - /** - * The id of the placeholder to replace. - * - * @return the placeholderId - */ - public String getPlaceholderId() { - return placeholderId; - } - - /** - * Set the behavior if no exactly matching placeholder could be found.<br/> - * Exactly matching meaning:<br/> - * <ul><li>If a placeholderId is set: a placeholder which has exactly this id embedded</li> - * <li>If no placeholderId is set: a placeholder without an embedded id is found</li></ul> - * - * @see Constants#PLACEHOLDER_MATCH_MODE_LENIENT - * @see Constants#PLACEHOLDER_MATCH_MODE_MODERATE - * @see Constants#PLACEHOLDER_MATCH_MODE_STRICT - * - * Defaults to {@link Constants#PLACEHOLDER_MATCH_MODE_MODERATE}. - * - * @param placeholderMatchMode - */ - public void setPlaceholderMatchMode(int placeholderMatchMode) { - this.placeholderMatchMode = placeholderMatchMode; - } - - /** - * Get the placeholder matching mode. - * - * @see SignParameters#getPlaceholderMatchMode() - * @return the placeholderMatchMode - */ - public int getPlaceholderMatchMode() { - return this.placeholderMatchMode; - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/SignResult.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/SignResult.java deleted file mode 100644 index e18d8105..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/SignResult.java +++ /dev/null @@ -1,108 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.sign; - -import java.security.cert.X509Certificate; -import java.util.List; - -import at.gv.egiz.pdfas.api.analyze.NonTextObjectInfo; -import at.gv.egiz.pdfas.api.io.DataSink; -import at.gv.egiz.pdfas.api.sign.pos.SignaturePosition; - -/** - * The result of a sign operation. - * - * @author wprinz - */ -@Deprecated -public interface SignResult -{ - - /** - * Returns the filled output data sink. - * - * @return Returns the filled output data sink. - */ - public DataSink getOutputDocument(); - - /** - * Returns the certificate of the signer. - * - * @return Returns the certificate of the signer. - */ - public X509Certificate getSignerCertificate(); - - /** - * Returns the position where the signature is finally placed. - * - * <p> - * This information can be useful for post-processing the document. - * </p> - * - * <p> - * Consult the PDF-AS documentation section Commandline for further - * information about positioning. - * </p> - * - * @return Returns the position where the signature is finally placed. May - * return null if no position information is available. - */ - public SignaturePosition getSignaturePosition(); - - /** - * Returns a list<{@link NonTextObjectInfo} of non textual objects in the pdf document. - * Only available for textual signatures. Show this to the user who signed the textual content only! - * @return List<{@link NonTextObjectInfo} or <tt>null</tt> of not available (binary signature) - */ - public List getNonTextualObjects(); - - /** - * Returns if pdf has non textual objects (only for textual signature available). - * @return - */ - public boolean hasNonTextualObjects(); -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/SignatureDetailInformation.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/SignatureDetailInformation.java deleted file mode 100644 index 11b063ed..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/SignatureDetailInformation.java +++ /dev/null @@ -1,171 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.sign; - -import java.security.cert.X509Certificate; -import java.util.Date; -import java.util.List; -import java.util.Map; - -import at.gv.egiz.pdfas.api.analyze.NonTextObjectInfo; -import at.gv.egiz.pdfas.api.io.DataSource; -import at.gv.egiz.pdfas.api.sign.pos.SignaturePosition; - -/** - * A container for all relevant signature related data. - * - * @author exthex - */ -@Deprecated -public interface SignatureDetailInformation -{ - public DataSource getSignatureData(); - - /** - * Returns the position where the signature table was actually placed. - * - * @return Returns the position where the signature table was actually placed. - */ - public SignaturePosition getSignaturePosition(); - - /** - * Returns a list<{@link NonTextObjectInfo} of non textual objects in the pdf document. - * Only available for textual signatures. Show this to the user who signed the textual content only! - * @return List<{@link NonTextObjectInfo} or <tt>null</tt> of not available (binary signature) - */ - public List getNonTextualObjects(); - - /** - * Returns the date of signature extracted from the signature. - * @return - */ - public Date getSignDate(); - - /** - * Get the name of the issuer. - * Short for {@link SignatureDetailInformation#getX509Certificate()#getIssuer()#getName()} - * - * @return - */ - public String getIssuer(); - - /** - * Short for {@link SignatureDetailInformation#getX509Certificate()#getIssuerDNMap()} - * - * @return - */ - public Map getIssuerDNMap(); - - /** - * Short for {@link SignatureDetailInformation#getX509Certificate()#getSubjectName()#toString()} - * - * @return - */ - public String getSubjectName(); - - /** - * Short for {@link SignatureDetailInformation#getX509Certificate()#getSerialNumber()#toString()} - * - * @return - */ - public String getSerialNumber(); - - /** - * Get the algorithm the signature was created with. - * @return - */ - public String getSigAlgorithm(); - - /** - * - * @return the signature id. - */ - public String getSigID(); - - /** - * - * @return the signature method. - */ - public String getSigKZ(); - - /** - * - * @return the signature value. - */ - public String getSignatureValue(); - - /** - * - * @return the signature time stamp. - */ - public String getSigTimeStamp(); - - /** - * Short for {@link SignatureDetailInformation#getX509Certificate()#getSubjectDNMap()} - * - * @return - */ - public Map getSubjectDNMap(); - - /** - * - * @return the certificate used for signature. - */ - public X509Certificate getX509Certificate(); - - /** - * - * @return true if the signature is textual, false otherwise. - */ - public boolean isTextual(); - - /** - * - * @return true if this signature is binary, false otherwise. - */ - public boolean isBinary(); -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/SignaturePosition.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/SignaturePosition.java deleted file mode 100644 index ce73039f..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/SignaturePosition.java +++ /dev/null @@ -1,96 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.sign.pos; - -/** - * Holds the actual, absolute signature position where a signature was placed. - * - * <p> - * This is usually returned after signing. - * </p> - * - * @author wprinz - */ -@Deprecated -public interface SignaturePosition -{ - /** - * Returns the page on which the signature was placed. - * - * @return Returns the page on which the signature was placed. - */ - public int getPage(); - - /** - * Returns the x position. - * - * @return Returns the x position. - */ - public float getX(); - - /** - * Returns the y position. - * - * @return Returns the y position. - */ - public float getY(); - - /** - * Returns the width of the signature. - * - * @return Returns the width of the signature. - */ - public float getWidth(); - - /** - * Returns the height of the signature. - * - * @return Returns the height of the signature. - */ - public float getHeight(); - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/SignaturePositioning.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/SignaturePositioning.java deleted file mode 100644 index ab5bb652..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/SignaturePositioning.java +++ /dev/null @@ -1,360 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.sign.pos; - -import java.io.Serializable; -import java.util.StringTokenizer; - -import at.gv.egiz.pdfas.api.exceptions.ErrorCode; -import at.gv.egiz.pdfas.api.exceptions.PdfAsException; -import at.gv.egiz.pdfas.api.sign.pos.axis.AbsoluteAxisAlgorithm; -import at.gv.egiz.pdfas.api.sign.pos.axis.AutoAxisAlgorithm; -import at.gv.egiz.pdfas.api.sign.pos.axis.AxisAlgorithm; -import at.gv.egiz.pdfas.api.sign.pos.page.AbsolutePageAlgorithm; -import at.gv.egiz.pdfas.api.sign.pos.page.AutoPageAlgorithm; -import at.gv.egiz.pdfas.api.sign.pos.page.NewPageAlgorithm; -import at.gv.egiz.pdfas.api.sign.pos.page.PageAlgorithm; - -/** - * Defines how the signature positioning is to be performed. - * - * <p> - * This positioning allows to select the location where the signature block is - * placed in the document. - * </p> - * - * @author wprinz - */ -public class SignaturePositioning implements Serializable -{ - - /** - * - */ - private static final long serialVersionUID = 1L; - - /** - * The x axis algorithm. - * - * <p> - * May be {@link AutoAxisAlgorithm} or {@link AbsoluteAxisAlgorithm} - * </p> - */ - protected AxisAlgorithm xAlgorithm = new AutoAxisAlgorithm(); - - /** - * The y axis algorithm. - * - * <p> - * May be {@link AutoAxisAlgorithm} or {@link AbsoluteAxisAlgorithm} - * </p> - */ - protected AxisAlgorithm yAlgorithm = new AutoAxisAlgorithm(); - - /** - * The width algorithm. - * - * <p> - * May be {@link AutoAxisAlgorithm} or {@link AbsoluteAxisAlgorithm} - * </p> - */ - protected AxisAlgorithm widthAlgorithm = new AutoAxisAlgorithm(); - - /** - * The page algorithm. - * - * <p> - * May be {@link AutoPageAlgorithm}, {@link AbsolutePageAlgorithm} or - * {@link NewPageAlgorithm} - * </p> - */ - protected PageAlgorithm pageAlgorithm = new AutoPageAlgorithm(); - - /** - * Provides the position of the footline. - * - * <p> - * Only used if the pageAlgorithm is {@link AutoPageAlgorithm} and the - * yAlgorithm is {@link AutoAxisAlgorithm} - * </p> - */ - protected float footerLine = 0.0f; - - protected void checkAxisAlgorithm(AxisAlgorithm algorithm) - { - if (algorithm == null) - { - throw new IllegalArgumentException("The algorithm must not be null."); - } - if (!(algorithm instanceof AutoAxisAlgorithm) && !(algorithm instanceof AbsoluteAxisAlgorithm)) - { - throw new IllegalArgumentException("The algorithm must be either Auto or Absolute."); - } - } - - protected void checkPageAlgorithm(PageAlgorithm algorithm) - { - if (algorithm == null) - { - throw new IllegalArgumentException("The algorithm must not be null."); - } - if (!(algorithm instanceof AutoPageAlgorithm) && !(algorithm instanceof AbsolutePageAlgorithm) && !(algorithm instanceof NewPageAlgorithm)) - { - throw new IllegalArgumentException("The algorithm must be either Auto or Absolute."); - } - - } - - /** - * @return the xAlgorithm - */ - public AxisAlgorithm getXAlgorithm() - { - return this.xAlgorithm; - } - - /** - * @param algorithm - * the xAlgorithm to set - */ - public void setXAlgorithm(AxisAlgorithm algorithm) - { - checkAxisAlgorithm(algorithm); - xAlgorithm = algorithm; - } - - /** - * @return the yAlgorithm - */ - public AxisAlgorithm getYAlgorithm() - { - return this.yAlgorithm; - } - - /** - * @param algorithm - * the yAlgorithm to set - */ - public void setYAlgorithm(AxisAlgorithm algorithm) - { - checkAxisAlgorithm(algorithm); - - yAlgorithm = algorithm; - } - - /** - * @return the widthAlgorithm - */ - public AxisAlgorithm getWidthAlgorithm() - { - return this.widthAlgorithm; - } - - /** - * @param widthAlgorithm - * the widthAlgorithm to set - */ - public void setWidthAlgorithm(AxisAlgorithm widthAlgorithm) - { - checkAxisAlgorithm(widthAlgorithm); - - this.widthAlgorithm = widthAlgorithm; - } - - /** - * @return the pageAlgorithm - */ - public PageAlgorithm getPageAlgorithm() - { - return this.pageAlgorithm; - } - - /** - * @param pageAlgorithm - * the pageAlgorithm to set - */ - public void setPageAlgorithm(PageAlgorithm pageAlgorithm) - { - checkPageAlgorithm(pageAlgorithm); - this.pageAlgorithm = pageAlgorithm; - } - - /** - * @return the footerLine - */ - public float getFooterLine() - { - return this.footerLine; - } - - /** - * @param footerLine - * the footerLine to set - */ - public void setFooterLine(float footerLine) - { - this.footerLine = footerLine; - } - - public SignaturePositioning() { - } - - public SignaturePositioning(String position) throws PdfAsException { - if (position != null) { - StringTokenizer tokenizer = new StringTokenizer(position, ";"); - while (tokenizer.hasMoreTokens()) { - String token = tokenizer.nextToken().replaceAll(" ", ""); - String[] sToken = token.split(":"); - if (sToken == null || sToken.length != 2 || sToken[0].length() != 1) { - throw new PdfAsException(ErrorCode.INVALID_SIGNATURE_POSITION, "Invalid signature position element: " + token); - } - char cmd = sToken[0].toLowerCase().charAt(0); - String value = sToken[1]; - switch (cmd) { - case 'x': - if ("auto".equalsIgnoreCase(value)) { - this.setXAlgorithm(new AutoAxisAlgorithm()); - } else { - try { - this.setXAlgorithm(new AbsoluteAxisAlgorithm(Float.parseFloat(value))); - } catch (NumberFormatException e) { - throw new PdfAsException(ErrorCode.INVALID_SIGNATURE_POSITION, "Invalid signature position element: " + token); - } - } - break; - case 'y': - if ("auto".equalsIgnoreCase(value)) { - this.setYAlgorithm(new AutoAxisAlgorithm()); - } else { - try { - this.setYAlgorithm(new AbsoluteAxisAlgorithm(Float.parseFloat(value))); - } catch (NumberFormatException e) { - throw new PdfAsException(ErrorCode.INVALID_SIGNATURE_POSITION, "Invalid signature position element: " + token); - } - } - break; - case 'w': - if ("auto".equalsIgnoreCase(value)) { - this.setWidthAlgorithm(new AutoAxisAlgorithm()); - } else { - try { - this.setWidthAlgorithm(new AbsoluteAxisAlgorithm(Float.parseFloat(value))); - } catch (NumberFormatException e) { - throw new PdfAsException(ErrorCode.INVALID_SIGNATURE_POSITION, "Invalid signature position element: " + token); - } - } - break; - case 'p': - if ("auto".equalsIgnoreCase(value)) { - this.setPageAlgorithm(new AutoPageAlgorithm()); - } else if ("new".equalsIgnoreCase(value)) { - this.setPageAlgorithm(new NewPageAlgorithm()); - } else { - try { - this.setPageAlgorithm(new AbsolutePageAlgorithm(Integer.parseInt(value))); - } catch (NumberFormatException e) { - throw new PdfAsException(ErrorCode.INVALID_SIGNATURE_POSITION, "Invalid signature position element: " + token); - } - } - break; - case 'f': - try { - this.setFooterLine(Float.parseFloat(value)); - } catch (NumberFormatException e) { - throw new PdfAsException(ErrorCode.INVALID_SIGNATURE_POSITION, "Invalid signature position element: " + token); - } - break; - default: - throw new PdfAsException(ErrorCode.INVALID_SIGNATURE_POSITION, "Invalid signature position element: " + token); - } - } - } - } - - public String getPositionString() { - StringBuilder sb = new StringBuilder(); - AxisAlgorithm xAlgo = getXAlgorithm(); - - if(xAlgo instanceof AutoAxisAlgorithm) { - sb.append("x:auto;"); - } else if(xAlgo instanceof AbsoluteAxisAlgorithm) { - sb.append("x:" + ((AbsoluteAxisAlgorithm)xAlgo).getAbsoluteValue() + ";"); - } - - AxisAlgorithm yAlgo = getXAlgorithm(); - - if(yAlgo instanceof AutoAxisAlgorithm) { - sb.append("y:auto;"); - } else if(yAlgo instanceof AbsoluteAxisAlgorithm) { - sb.append("y:" + ((AbsoluteAxisAlgorithm)yAlgo).getAbsoluteValue() + ";"); - } - - AxisAlgorithm wAlgo = getWidthAlgorithm(); - - if(wAlgo instanceof AutoAxisAlgorithm) { - sb.append("w:auto;"); - } else if(wAlgo instanceof AbsoluteAxisAlgorithm) { - sb.append("w:" + ((AbsoluteAxisAlgorithm)wAlgo).getAbsoluteValue() + ";"); - } - - PageAlgorithm pAlgo = getPageAlgorithm(); - - if(pAlgo instanceof AutoPageAlgorithm) { - sb.append("p:auto;"); - } else if(pAlgo instanceof NewPageAlgorithm) { - sb.append("p:new;"); - } - - float footerLine = getFooterLine(); - - sb.append("f:" + + footerLine); - - return sb.toString(); - } - - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/axis/AbsoluteAxisAlgorithm.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/axis/AbsoluteAxisAlgorithm.java deleted file mode 100644 index 7d550ddc..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/axis/AbsoluteAxisAlgorithm.java +++ /dev/null @@ -1,85 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.sign.pos.axis; - -import java.io.Serializable; - -/** - * An absolute positioned element. - * @author wprinz - */ -public class AbsoluteAxisAlgorithm extends AxisAlgorithm implements Serializable -{ - - /** - * - */ - private static final long serialVersionUID = 1L; - - /** - * The absolute positioning value on the axis. - */ - protected float absoluteValue = 0.0f; - - /** - * Constructor. - * @param absoluteValue The absolute positioning value on the axis. - */ - public AbsoluteAxisAlgorithm (float absoluteValue) - { - this.absoluteValue = absoluteValue; - } - - /** - * Returns absolute positioning value on the axis. - * @return the absoluteValue Returns absolute positioning value on the axis. - */ - public float getAbsoluteValue() - { - return this.absoluteValue; - } -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/axis/AutoAxisAlgorithm.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/axis/AutoAxisAlgorithm.java deleted file mode 100644 index e0fa101d..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/axis/AutoAxisAlgorithm.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.sign.pos.axis; - -import java.io.Serializable; - -/** - * Auto positioning for this element. - * - * @author wprinz - */ -public class AutoAxisAlgorithm extends AxisAlgorithm implements Serializable -{ - - /** - * - */ - private static final long serialVersionUID = 1L; -// empty -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/axis/AxisAlgorithm.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/axis/AxisAlgorithm.java deleted file mode 100644 index c43bca89..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/axis/AxisAlgorithm.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.sign.pos.axis; - -import java.io.Serializable; - -/** - * Determines how a certain position is chosen on the axis (x, y, width). - * - * @author wprinz - */ -public abstract class AxisAlgorithm implements Serializable -{ - - /** - * - */ - private static final long serialVersionUID = 1L; -// base class -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/axis/package-info.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/axis/package-info.java deleted file mode 100644 index 8703b27d..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/axis/package-info.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * - */ -/** - * @author afitzek - * - */ -package at.gv.egiz.pdfas.api.sign.pos.axis; diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/package-info.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/package-info.java deleted file mode 100644 index 1dbd22eb..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/package-info.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * - */ -/** - * @author afitzek - * - */ -package at.gv.egiz.pdfas.api.sign.pos; diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/page/AbsolutePageAlgorithm.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/page/AbsolutePageAlgorithm.java deleted file mode 100644 index ed17954f..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/page/AbsolutePageAlgorithm.java +++ /dev/null @@ -1,87 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.sign.pos.page; - -import java.io.Serializable; - -/** - * The page is selected absolutely by giving the page number directly. - * - * @author wprinz - */ -public class AbsolutePageAlgorithm extends PageAlgorithm implements Serializable -{ - /** - * - */ - private static final long serialVersionUID = 1L; - - /** - * The page. - */ - protected int page = -1; - - /** - * Constructor. - * - * @param page - * The page. - */ - public AbsolutePageAlgorithm(int page) - { - this.page = page; - } - - /** - * @return the page - */ - public int getPage() - { - return this.page; - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/page/AutoPageAlgorithm.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/page/AutoPageAlgorithm.java deleted file mode 100644 index 54365613..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/page/AutoPageAlgorithm.java +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.sign.pos.page; - -import java.io.Serializable; - -/** - * The page for placing the signature is selected automatically. - * - * <p> - * The algorithm first tries to place the signature on the free space of the - * last page (considering the footer). If there is not enough space on the last - * page, a new page is appended and the signature is placed there. - * </p> - * - * @author wprinz - */ -public class AutoPageAlgorithm extends PageAlgorithm implements Serializable -{ - - /** - * - */ - private static final long serialVersionUID = 1L; -// empty -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/page/NewPageAlgorithm.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/page/NewPageAlgorithm.java deleted file mode 100644 index e3f4b9cc..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/page/NewPageAlgorithm.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.sign.pos.page; - -import java.io.Serializable; - -/** - * Places the signature on a new Page. - * - * @author wprinz - */ -public class NewPageAlgorithm extends PageAlgorithm implements Serializable -{ - - /** - * - */ - private static final long serialVersionUID = 1L; - // empty block -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/page/PageAlgorithm.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/page/PageAlgorithm.java deleted file mode 100644 index 64840d90..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/page/PageAlgorithm.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.sign.pos.page; - -import java.io.Serializable; - -/** - * Determines how the page on which the signature is to be placed is selected. - * - * @author wprinz - */ -public abstract class PageAlgorithm implements Serializable -{ - - /** - * - */ - private static final long serialVersionUID = 1L; - // empty -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/page/package-info.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/page/package-info.java deleted file mode 100644 index 9ac906ec..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/sign/pos/page/package-info.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * - */ -/** - * @author afitzek - * - */ -package at.gv.egiz.pdfas.api.sign.pos.page; diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/timestamp/DummyTimeStamper.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/timestamp/DummyTimeStamper.java deleted file mode 100644 index ffad7790..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/timestamp/DummyTimeStamper.java +++ /dev/null @@ -1,86 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.timestamp; - -import java.text.SimpleDateFormat; -import java.util.Date; - -import org.apache.commons.codec.binary.Base64; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -/** - * Dummy/test implementation of the timestamper. Logs and stores test-timestamp for assertion {@link #getLastTimeStamp()} - * - * @author dferbas - * - */ -public class DummyTimeStamper implements TimeStamper { - private static Log log = LogFactory.getLog(DummyTimeStamper.class); - - private String lastTimeStamp; - - public String applyTimeStamp(String b64SignatureValue) { - log.debug("Applying dummy timestamp on signature value: " + b64SignatureValue); - SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSSZ"); - String ts = formater.format(new Date()); - log.debug("Timestamp: " + ts); - ts = new String(Base64.encodeBase64(ts.getBytes())); - log.debug("Timestamp value (base64): " + ts); - this.lastTimeStamp = ts; - return ts; - } - - public String getLastTimeStamp() { - return this.lastTimeStamp; - } - - public void setLastTimeStamp(String lastTimeStamp) { - this.lastTimeStamp = lastTimeStamp; - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/timestamp/TimeStamper.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/timestamp/TimeStamper.java deleted file mode 100644 index b8cb3974..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/timestamp/TimeStamper.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.timestamp; - -/** - * Interface for timestamper implementations/handlers - * - * @author dferbas - * - */ -public interface TimeStamper { - - /** - * Implement timestamp in this method. - * @param b64SignatureValue signature value, base64 encoded - * @return timestamp to be embedded in egiz dictionary base64 encoded (following RFC3161). - */ - public String applyTimeStamp(String b64SignatureValue); - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/timestamp/package-info.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/timestamp/package-info.java deleted file mode 100644 index 32c3fe67..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/timestamp/package-info.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * - */ -/** - * @author afitzek - * - */ -package at.gv.egiz.pdfas.api.timestamp; diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/verify/SignatureCheck.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/verify/SignatureCheck.java deleted file mode 100644 index 2b38819a..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/verify/SignatureCheck.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.verify; - -/** - * The result of a signature check performed by a verification device. - * - * @see VerifyResult - * - * @author wprinz - */ -public interface SignatureCheck -{ - /** - * Returns the response code of the check. - * - * @return Returns the response code of the check. - */ - public int getCode(); - - /** - * Returns the textual response message of the check (corresponding to the - * code). - * - * @return Returns the textual response message of the check (corresponding to - * the code). - */ - public String getMessage(); - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/verify/VerifyAfterAnalysisParameters.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/verify/VerifyAfterAnalysisParameters.java deleted file mode 100644 index 62b7e7e4..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/verify/VerifyAfterAnalysisParameters.java +++ /dev/null @@ -1,189 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.verify; - -import java.util.Date; - -import at.gv.egiz.pdfas.api.analyze.AnalyzeResult; -import at.gv.egiz.pdfas.api.commons.Constants; - -/** - * Parameter object that holds the verify after analysis parameters. - * - * @author wprinz - */ -public class VerifyAfterAnalysisParameters -{ - - /** - * The list of signatures to be verified. - */ - protected AnalyzeResult analyzeResult = null; - - /** - * The signature device to perform the actual signature. - * - * <p> - * May be {@link Constants#SIGNATURE_DEVICE_MOA} or - * {@link Constants#SIGNATURE_DEVICE_BKU}. - * </p> - */ - protected String signatureDevice = Constants.SIGNATURE_DEVICE_MOA; - - /** - * Allows to pass a VerificationTime to the signature device. - */ - protected Date verificationTime = null; - - /** - * Tells the signature device (e.g. MOA) to return the signature hash input - * data (which is the probably transformed signed data). - * - * <p> - * Note that this forces MOA to return the potentially large signature data to - * be returned in the result XML, which may result in very bad performance. - * </p> - */ - protected boolean returnHashInputData = false; - - /** - * The index of the signature to be verified. A value < 0 indicates to verify all signatures. - */ - protected int verifySignatureIndex = -1; - - /** - * @return the analyzeResult - */ - public AnalyzeResult getAnalyzeResult() - { - return this.analyzeResult; - } - - /** - * @param analyzeResult - * the analyzeResult to set - */ - public void setAnalyzeResult(AnalyzeResult analyzeResult) - { - this.analyzeResult = analyzeResult; - } - - /** - * @return the signatureDevice - */ - public String getSignatureDevice() - { - return this.signatureDevice; - } - - /** - * @param signatureDevice - * the signatureDevice to set - */ - public void setSignatureDevice(String signatureDevice) - { - this.signatureDevice = signatureDevice; - } - - /** - * @return the verificationTime - */ - public Date getVerificationTime() - { - return this.verificationTime; - } - - /** - * @param verificationTime the verificationTime to set - */ - public void setVerificationTime(Date verificationTime) - { - this.verificationTime = verificationTime; - } - - /** - * @return the returnHashInputData - */ - public boolean isReturnHashInputData() - { - return this.returnHashInputData; - } - - /** - * @param returnHashInputData - * the returnHashInputData to set - */ - public void setReturnHashInputData(boolean returnHashInputData) - { - this.returnHashInputData = returnHashInputData; - } - - /** - * Set the index of the signature to verify (index starting at 0). A value < 0 indicates to verify all values. - * @param verify_which - */ - public void setVerifySignatureIndex(int verify_which) { - this.verifySignatureIndex = verify_which; - } - - public int getVerifySignatureIndex() { - return verifySignatureIndex; - } - - /** - * @see VerifyParameters#setSuppressVerifyExceptions(boolean) - * @param suppress - */ - public void setSuppressVerifyExceptions(boolean suppress) { - VerifyParameters.setSuppressVerify(suppress); - } - - public boolean isSuppressVerifyExceptions() { - return VerifyParameters.isSuppressVerifyExceptions(); - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/verify/VerifyAfterReconstructXMLDsigParameters.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/verify/VerifyAfterReconstructXMLDsigParameters.java deleted file mode 100644 index d5b04e43..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/verify/VerifyAfterReconstructXMLDsigParameters.java +++ /dev/null @@ -1,192 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.verify; - -import java.util.Date; - -import at.gv.egiz.pdfas.api.commons.Constants; -import at.gv.egiz.pdfas.api.xmldsig.ReconstructXMLDsigResult; - -/** - * This class represents the parameters needed for verify after reconstructXMLDsig has already been executed. - * - * @author exthex - * - */ -public class VerifyAfterReconstructXMLDsigParameters { - - /** - * The list of signatures to be verified. - */ - protected ReconstructXMLDsigResult reconstructXMLDsigResult = null; - - /** - * The signature device to perform the actual signature. - * - * <p> - * May be {@link Constants#SIGNATURE_DEVICE_MOA} or - * {@link Constants#SIGNATURE_DEVICE_BKU}. - * </p> - */ - protected String signatureDevice; - - /** - * Allows to pass a VerificationTime to the signature device. - */ - protected Date verificationTime = null; - - /** - * Tells the signature device (e.g. MOA) to return the signature hash input - * data (which is the probably transformed signed data). - * - * <p> - * Note that this forces MOA to return the potentially large signature data to - * be returned in the result XML, which may result in very bad performance. - * </p> - */ - protected boolean returnHashInputData = false; - - /** - * The index of the signature to be verified. A value < 0 indicates to verify all signatures. - */ - protected int verifySignatureIndex = -1; - - /** - * @return the reconstructXMLDsigResult - */ - public ReconstructXMLDsigResult getReconstructXMLDsigResult() - { - return this.reconstructXMLDsigResult; - } - - /** - * @param reconstructXMLDsigResult - * the reconstructXMLDsigResult to set - */ - public void setReconstructXMLDsigResult(ReconstructXMLDsigResult reconstructXMLDsigResult) - { - this.reconstructXMLDsigResult = reconstructXMLDsigResult; - } - - /** - * @return the signatureDevice - */ - public String getSignatureDevice() - { - return this.signatureDevice; - } - - /** - * Set the signature device to use for verification. - * If none is set here, the signature device that was used for reconstructXMLDsig will be used. - * - * @param signatureDevice - * the signatureDevice to set - */ - public void setSignatureDevice(String signatureDevice) - { - this.signatureDevice = signatureDevice; - } - - /** - * @return the verificationTime - */ - public Date getVerificationTime() - { - return this.verificationTime; - } - - /** - * @param verificationTime the verificationTime to set - */ - public void setVerificationTime(Date verificationTime) - { - this.verificationTime = verificationTime; - } - - /** - * @return the returnHashInputData - */ - public boolean isReturnHashInputData() - { - return this.returnHashInputData; - } - - /** - * @param returnHashInputData - * the returnHashInputData to set - */ - public void setReturnHashInputData(boolean returnHashInputData) - { - this.returnHashInputData = returnHashInputData; - } - - /** - * Set the index of the signature to verify (index starting at 0). A value < 0 indicates to verify all values. - * @param verify_which - */ - public void setVerifySignatureIndex(int verify_which) { - this.verifySignatureIndex = verify_which; - } - - public int getVerifySignatureIndex() { - return verifySignatureIndex; - } - - /** - * @see VerifyParameters#setSuppressVerifyExceptions(boolean) - * @param suppress - */ - public void setSuppressVerifyExceptions(boolean suppress) { - VerifyParameters.setSuppressVerify(suppress); - } - - public boolean isSuppressVerifyExceptions() { - return VerifyParameters.isSuppressVerifyExceptions(); - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/verify/VerifyParameters.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/verify/VerifyParameters.java deleted file mode 100644 index 56e11ca1..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/verify/VerifyParameters.java +++ /dev/null @@ -1,272 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.verify; - -import java.util.Date; - -import at.gv.egiz.pdfas.api.commons.Constants; -import at.gv.egiz.pdfas.api.io.DataSource; - -/** - * Parameter object that holds the verify parameters. - * - * @author wprinz - */ -public class VerifyParameters -{ - // This would be a perfect point for multiple inheritance in Java. - // VerifyParameters extends AnalyzeParameters, VerifyAfterAnalysisParameters - // Then a lot of code could be easily reused in the PdfAsObject's check*Parameters methods. - - /** - * The document to be verified. - */ - protected DataSource document = null; - - /** - * The signature device to perform the actual signature. - * - * <p> - * May be {@link Constants#SIGNATURE_DEVICE_MOA} or - * {@link Constants#SIGNATURE_DEVICE_BKU}. - * </p> - */ - protected String signatureDevice = Constants.SIGNATURE_DEVICE_MOA; - - /** - * The mode of operation how the document is analyzed. - * - * <p> - * May be {@link Constants#VERIFY_MODE_BINARY_ONLY} to check the document for - * binary signatures only (very fast). Or may be - * {@link Constants#VERIFY_MODE_SEMI_CONSERVATIVE} to perform a semi - * conservative (optimized) text and binary verification (slow). Or may be - * {@link Constants#VERIFY_MODE_FULL_CONSERVATIVE} to perform a full - * conservative text and binary verification (very slow). - * </p> - */ - protected String verifyMode = Constants.VERIFY_MODE_FULL_CONSERVATIVE; - - /** - * The (zero based) index of the signature to verify. - * - * <p> - * This allows to verify only one found signature instead of all. {@link Constants#VERIFY_ALL} means to - * verify all found signatures. - * </p> - */ - protected int signatureToVerify = Constants.VERIFY_ALL; - - /** - * Allows to pass a VerificationTime to the verification device. - * - * <p> - * Note that the actual usage of this parameter depends on the verification device. - * </p> - */ - protected Date verificationTime = null; - - /** - * Tells the signature device (e.g. MOA) to return the signature hash input - * data (which is the probably transformed signed data). - * - * <p> - * Note that this forces MOA to return the potentially large signature data to - * be returned in the result XML, which may result in very bad performance. - * </p> - */ - protected boolean returnHashInputData = false; - - protected boolean returnNonTextualObjects = false; - - private static ThreadLocal suppressVerifyExceptions = new ThreadLocal(); - - - public VerifyParameters() { - suppressVerifyExceptions.set(Boolean.FALSE); - } - /** - * @return the document - */ - public DataSource getDocument() - { - return this.document; - } - - /** - * @param document - * the document to set - */ - public void setDocument(DataSource document) - { - this.document = document; - } - - /** - * @return the signatureDevice - */ - public String getSignatureDevice() - { - return this.signatureDevice; - } - - /** - * @param signatureDevice - * the signatureDevice to set - */ - public void setSignatureDevice(String signatureDevice) - { - this.signatureDevice = signatureDevice; - } - - /** - * @return the verifyMode - */ - public String getVerifyMode() - { - return this.verifyMode; - } - - /** - * @param verifyMode - * the verifyMode to set - */ - public void setVerifyMode(String verifyMode) - { - this.verifyMode = verifyMode; - } - - /** - * @return the signatureToVerify - */ - public int getSignatureToVerify() - { - return this.signatureToVerify; - } - - /** - * @param signatureToVerify - * the signatureToVerify to set - */ - public void setSignatureToVerify(int signatureToVerify) - { - this.signatureToVerify = signatureToVerify; - } - - /** - * @return the verificationTime - */ - public Date getVerificationTime() - { - return this.verificationTime; - } - - /** - * @param verificationTime - * the verificationTime to set - */ - public void setVerificationTime(Date verificationTime) - { - this.verificationTime = verificationTime; - } - - /** - * @return the returnHashInputData - */ - public boolean isReturnHashInputData() - { - return this.returnHashInputData; - } - - /** - * @param returnHashInputData - * the returnHashInputData to set - */ - public void setReturnHashInputData(boolean returnHashInputData) - { - this.returnHashInputData = returnHashInputData; - } - - public boolean isReturnNonTextualObjects() { - return this.returnNonTextualObjects; - } - - /** - * Tells if non text object of the signed pdf should be extracted and returned. - * One should show this to the user, especially in case of textual signature. - * Defaults to <tt>false</tt> - * - * @param returnNonTextualObjects - */ - public void setReturnNonTextualObjects(boolean returnNonTextualObjects) { - this.returnNonTextualObjects = returnNonTextualObjects; - } - - /** - * Set if verify exceptions (because of unknown signatures) are suppressed or not (default). - * Suppressing can be helpful for multiple signatures if you want to verify the working rest. Unsupported - * Signatures are reported without throwing an exception via {@link VerifyResult#getVerificationException()} - * @param suppress - */ - public void setSuppressVerifyExceptions(boolean suppress) { - setSuppressVerify(suppress); - } - - /** - * See {@link #setSuppressVerifyExceptions(boolean)} - * @return - */ - public static boolean isSuppressVerifyExceptions() { - if (suppressVerifyExceptions.get() == null) return false; - return ((Boolean) suppressVerifyExceptions.get()).booleanValue(); - } - - static void setSuppressVerify(boolean suppress) { - suppressVerifyExceptions.set(new Boolean(suppress)); - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/verify/VerifyResult.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/verify/VerifyResult.java deleted file mode 100644 index ca8ee7c4..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/verify/VerifyResult.java +++ /dev/null @@ -1,202 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.verify; - -import java.util.Date; -import java.util.List; - -import at.gv.egiz.pdfas.api.PdfAs; -import at.gv.egiz.pdfas.api.analyze.NonTextObjectInfo; -import at.gv.egiz.pdfas.api.commons.SignatureInformation; -import at.gv.egiz.pdfas.api.exceptions.PdfAsException; -import at.gv.egiz.pdfas.api.xmldsig.XMLDsigData; - -/** - * Encapsulates the data of a verification of one signature. - * - * @author wprinz - */ -public interface VerifyResult extends SignatureInformation -{ - /** - * Returns if the verification was possible or could not even be startet. see {@link #getVerificationException()} for details. - * @return - */ - public boolean isVerificationDone(); - - /** - * Returns a verification exception if any. Shows that the verification could not be started. See {@link #isVerificationDone()}. - * @return - */ - public PdfAsException getVerificationException(); - - /** - * Returns the result of the certificate check. - * - * @return Returns the result of the certificate check. - */ - public SignatureCheck getCertificateCheck(); - - /** - * Returns the result of the value (and hash) check. - * - * @return Returns the result of the value (and hash) check. - */ - public SignatureCheck getValueCheckCode(); - - /** - * Returns the result of the manifest check. - * - * @return Returns the result of the manifest check. - */ - public SignatureCheck getManifestCheckCode(); - - /** - * Returns true, if the signer's certificate is a qualified certificate. - * - * @return Returns true, if the signer's certificate is a qualified - * certificate. - */ - public boolean isQualifiedCertificate(); - - /** - * Returns {@code true} if public authority is indicated. - * @return {@code true} if public authority. - */ - public boolean isPublicAuthority(); - - /** - * Returns the public authority code or {@code null}. - * @return The public authority code or {@code null}. - */ - public String getPublicAuthorityCode(); - - /** - * Returns a list of Strings each stating one public property of the - * certificate. - * - * <p> - * Such public properties are certificate extensions each being assigned an - * own OID. For example the public property "Verwaltungseigenschaft" has the - * OID "1.2.40.0.10.1.1.1". - * </p> - * - * @return Returns the list of Strings representing the public properties of - * this certificate, if any. - */ - public List getPublicProperties(); - - /** - * Returns the verification time, which is the time when the signature was - * verified. - * - * <p> - * Note that this is actually the Date passed to the verify methods over - * {@link VerifyParameters#setVerificationTime(Date)} or - * {@link VerifyAfterAnalysisParameters#setVerificationTime(Date)}. The - * signature devices don't respond the actual verification time so there is no - * guarantee that the set verification time was actually used as time of - * verification. Please consult the device's documentation for more - * information. - * </p> - * <p> - * If the verification device does not return a verification time and no - * verification time was set in the - * {@link VerifyParameters#setVerificationTime(Date)} or - * {@link VerifyAfterAnalysisParameters#setVerificationTime(Date)}, the time - * returned by this method will be equal to the signing time ( - * {@link SignatureInformation#getSigningTime()}). - * </p> - * - * @return Returns the verification time, which is the time when the signature - * was verified. - */ - public Date getVerificationTime(); - - /** - * Returns the hash input data as returned by MOA as Base64-encoded String. - * - * <p> - * This will only return a value other than null if the corresponding - * {@link VerifyParameters} has been set to true. - * </p> - * <p> - * Note that the HashInputData does not necessarily have to be exactly the - * same as the signed data return by the - * {@link SignatureInformation#getSignedData()} method. - * </p> - * - * @return Returns the base64 encoded hash input data as returned by MOA. - * - * @see SignatureInformation#getSignedData() - */ - public String getHashInputData(); - - /** - * Returns a list<{@link NonTextObjectInfo}> of non textual objects in the pdf document. - * Only available for textual signatures. Show this to the user who signed the textual content only! - * @return List<{@link NonTextObjectInfo} or <tt>null</tt> of not available (binary signature) - */ - public List getNonTextualObjects(); - - - /** - * Returns <code>true</code> if non textual objects have been found, <code>false</code> if not. - * @return <code>true</code> if non textual objects have been found, <code>false</code> if not. - */ - public boolean hasNonTextualObjects(); - - /** - * Get the reconstructed xmldsig XML data. The reconstruction is done during the verification process. - * - * @see PdfAs#reconstructXMLDSIG(at.gv.egiz.pdfas.api.xmldsig.ReconstructXMLDsigParameters) - * @see PdfAs#reconstructXMLDSIG(at.gv.egiz.pdfas.api.xmldsig.ReconstructXMLDsigAfterAnalysisParameters) - * @return - */ - public XMLDsigData getReconstructedXMLDsig(); - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/verify/VerifyResults.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/verify/VerifyResults.java deleted file mode 100644 index 3e0f4ee0..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/verify/VerifyResults.java +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.verify; - -import java.util.List; - -/** - * The result of the verification of a document. - * - * <p> - * Currently, this is not more than a list of VerifyResult objects, one for each - * verified signature. There may be additional items in future PDF-AS versions. - * </p> - * - * @author wprinz - */ -public interface VerifyResults -{ - /** - * Returns the List of VerifyResult objects, one for each verified signature. - * - * @return Returns the List of VerifyResult objects, one for each verified - * signature. - */ - public List getResults(); - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/verify/package-info.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/verify/package-info.java deleted file mode 100644 index e18d1b92..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/verify/package-info.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * - */ -/** - * @author afitzek - * - */ -package at.gv.egiz.pdfas.api.verify; diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/xmldsig/ExtendedSignatureInformation.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/xmldsig/ExtendedSignatureInformation.java deleted file mode 100644 index f2cd3598..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/xmldsig/ExtendedSignatureInformation.java +++ /dev/null @@ -1,92 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.xmldsig; - -import at.gv.egiz.pdfas.api.commons.SignatureInformation; - -/** - * A wrapper to combine {@link SignatureInformation} and {@link XMLDsigData} - * - * @author exthex - * - */ -public class ExtendedSignatureInformation { - - private final SignatureInformation signatureInformation; - - private final XMLDsigData xmlDsigData; - - /** - * Constructor. - * - * @param siginfo - * The signature information - * @param dsigData - * The matching xmldsig to the signature information. - */ - public ExtendedSignatureInformation(SignatureInformation siginfo, XMLDsigData dsigData) { - this.signatureInformation = siginfo; - this.xmlDsigData = dsigData; - } - - /** - * - * @return the signatureInformation - */ - public SignatureInformation getSignatureInformation() { - return signatureInformation; - } - - /** - * - * @return the xmlDsigData - */ - public XMLDsigData getXmlDsigData() { - return xmlDsigData; - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/xmldsig/ReconstructXMLDsigAfterAnalysisParameters.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/xmldsig/ReconstructXMLDsigAfterAnalysisParameters.java deleted file mode 100644 index 62815fb8..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/xmldsig/ReconstructXMLDsigAfterAnalysisParameters.java +++ /dev/null @@ -1,109 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.xmldsig; - -import at.gv.egiz.pdfas.api.analyze.AnalyzeResult; -import at.gv.egiz.pdfas.api.commons.Constants; - -/** - * Parameters for the reconstructXMLDsig method which is to be called after a analyze call. - * - * @author exthex - * - */ -public class ReconstructXMLDsigAfterAnalysisParameters { - - - /** - * The list of signatures to be verified. - */ - protected AnalyzeResult analyzeResult = null; - - /** - * The signature device to perform the actual signature. - * - * <p> - * May be {@link Constants#SIGNATURE_DEVICE_MOA} or - * {@link Constants#SIGNATURE_DEVICE_BKU}. - * </p> - */ - protected String signatureDevice = Constants.SIGNATURE_DEVICE_MOA; - - /** - * @return the analyzeResult - */ - public AnalyzeResult getAnalyzeResult() - { - return this.analyzeResult; - } - - /** - * @param analyzeResult - * the analyzeResult to set - */ - public void setAnalyzeResult(AnalyzeResult analyzeResult) - { - this.analyzeResult = analyzeResult; - } - - /** - * @return the signatureDevice - */ - public String getSignatureDevice() - { - return this.signatureDevice; - } - - /** - * @param signatureDevice - * the signatureDevice to set - */ - public void setSignatureDevice(String signatureDevice) - { - this.signatureDevice = signatureDevice; - } -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/xmldsig/ReconstructXMLDsigParameters.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/xmldsig/ReconstructXMLDsigParameters.java deleted file mode 100644 index 03b77f1c..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/xmldsig/ReconstructXMLDsigParameters.java +++ /dev/null @@ -1,241 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.xmldsig; - -import java.util.Date; - -import at.gv.egiz.pdfas.api.PdfAs; -import at.gv.egiz.pdfas.api.commons.Constants; -import at.gv.egiz.pdfas.api.io.DataSource; - -/** - * Parameters for the {@link PdfAs#reconstructXMLDSIG(ReconstructXMLDsigParameters)} method. - * No need to call analyze before calling this method. - * - * @author exthex - * - */ -public class ReconstructXMLDsigParameters { - - /** - * The document to be verified. - */ - protected DataSource document = null; - - /** - * The signature device to perform the actual signature. - * - * <p> - * May be {@link Constants#SIGNATURE_DEVICE_MOA} or - * {@link Constants#SIGNATURE_DEVICE_BKU}. - * </p> - */ - protected String signatureDevice = Constants.SIGNATURE_DEVICE_MOA; - - /** - * The mode of operation how the document is analyzed. - * - * <p> - * May be {@link Constants#VERIFY_MODE_BINARY_ONLY} to check the document for - * binary signatures only (very fast). Or may be - * {@link Constants#VERIFY_MODE_SEMI_CONSERVATIVE} to perform a semi - * conservative (optimized) text and binary verification (slow). Or may be - * {@link Constants#VERIFY_MODE_FULL_CONSERVATIVE} to perform a full - * conservative text and binary verification (very slow). - * </p> - */ - protected String verifyMode = Constants.VERIFY_MODE_FULL_CONSERVATIVE; - - /** - * The (zero based) index of the signature to verify. - * - * <p> - * This allows to verify only one found signature instead of all. {@link Constants#VERIFY_ALL} means to - * verify all found signatures. - * </p> - */ - protected int signatureToVerify = Constants.VERIFY_ALL; - - /** - * Allows to pass a VerificationTime to the verification device. - * - * <p> - * Note that the actual usage of this parameter depends on the verification device. - * </p> - */ - protected Date verificationTime = null; - - /** - * Tells the signature device (e.g. MOA) to return the signature hash input - * data (which is the probably transformed signed data). - * - * <p> - * Note that this forces MOA to return the potentially large signature data to - * be returned in the result XML, which may result in very bad performance. - * </p> - */ - protected boolean returnHashInputData = false; - - protected boolean returnNonTextualObjects = false; - - /** - * @return the document - */ - public DataSource getDocument() - { - return this.document; - } - - /** - * @param document - * the document to set - */ - public void setDocument(DataSource document) - { - this.document = document; - } - - /** - * @return the signatureDevice - */ - public String getSignatureDevice() - { - return this.signatureDevice; - } - - /** - * @param signatureDevice - * the signatureDevice to set - */ - public void setSignatureDevice(String signatureDevice) - { - this.signatureDevice = signatureDevice; - } - - /** - * @return the verifyMode - */ - public String getVerifyMode() - { - return this.verifyMode; - } - - /** - * @param verifyMode - * the verifyMode to set - */ - public void setVerifyMode(String verifyMode) - { - this.verifyMode = verifyMode; - } - - /** - * @return the signatureToVerify - */ - public int getSignatureToVerify() - { - return this.signatureToVerify; - } - - /** - * @param signatureToVerify - * the signatureToVerify to set - */ - public void setSignatureToVerify(int signatureToVerify) - { - this.signatureToVerify = signatureToVerify; - } - - /** - * @return the verificationTime - */ - public Date getVerificationTime() - { - return this.verificationTime; - } - - /** - * @param verificationTime - * the verificationTime to set - */ - public void setVerificationTime(Date verificationTime) - { - this.verificationTime = verificationTime; - } - - /** - * @return the returnHashInputData - */ - public boolean isReturnHashInputData() - { - return this.returnHashInputData; - } - - /** - * @param returnHashInputData - * the returnHashInputData to set - */ - public void setReturnHashInputData(boolean returnHashInputData) - { - this.returnHashInputData = returnHashInputData; - } - - public boolean isReturnNonTextualObjects() { - return this.returnNonTextualObjects; - } - - /** - * Tells if non text object of the signed pdf should be extracted and returned. - * One should show this to the user, especially in case of textual signature. - * Defaults to <tt>false</tt> - * - * @param returnNonTextualObjects - */ - public void setReturnNonTextualObjects(boolean returnNonTextualObjects) { - this.returnNonTextualObjects = returnNonTextualObjects; - } -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/xmldsig/ReconstructXMLDsigResult.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/xmldsig/ReconstructXMLDsigResult.java deleted file mode 100644 index 01156143..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/xmldsig/ReconstructXMLDsigResult.java +++ /dev/null @@ -1,97 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.xmldsig; - -import java.util.List; - -import at.gv.egiz.pdfas.api.commons.Constants; -import at.gv.egiz.pdfas.api.commons.SignatureInformation; - -/** - * The result of a reconstructXMLDsig call.<br/> - * This is just a wrapper for a list of {@link ExtendedSignatureInformation}s - * - * - * @author exthex - */ -public class ReconstructXMLDsigResult { - - private List extendedSignatures; - - private String device; - - /** - * - * @param extendedSignatureInfos - * @param signatureDevice - */ - public ReconstructXMLDsigResult(List extendedSignatureInfos, String signatureDevice) { - this.extendedSignatures = extendedSignatureInfos; - this.device = signatureDevice; - } - - /** - * Get the signature device that was used to create this result. - * - * @return {@link Constants#SIGNATURE_DEVICE_MOA} or {@link Constants#SIGNATURE_DEVICE_BKU} - */ - public String getDevice() { - return device; - } - - /** - * Returns the list of found signatures. - * - * @return Returns a list of {@link ExtendedSignatureInformation} objects representing all - * found signatures + {@link XMLDsigData}. - * @see SignatureInformation - */ - public List getExtendedSignatures() { - return this.extendedSignatures; - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/xmldsig/XMLDsigData.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/xmldsig/XMLDsigData.java deleted file mode 100644 index 4f39b599..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/xmldsig/XMLDsigData.java +++ /dev/null @@ -1,106 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - */ -package at.gv.egiz.pdfas.api.xmldsig; - -/** - * A container for XMLDsig data. - * - * @author exthex - * - */ -public class XMLDsigData { - - private String xmlDsig; - - private boolean detached; - - /** - * Constructor. - * - * @param xmldsig the xml string of the xmldsig. - * @param detached true if detached, false otherwise - */ - public XMLDsigData(String xmldsig, boolean detached) { - this.xmlDsig = xmldsig; - this.detached = detached; - } - - /** - * Get the xmldsig string - * @return - */ - public String getXmlDsig() { - return xmlDsig; - } - - /** - * Set the xmldsig string. - * - * @param xmlDsig - */ - public void setXmlDsig(String xmlDsig) { - this.xmlDsig = xmlDsig; - } - - /** - * - * @return true if detached, false otherwise - */ - public boolean isDetached() { - return detached; - } - - /** - * Set the detached. - * - * @param detached - */ - public void setDetached(boolean detached) { - this.detached = detached; - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/xmldsig/package-info.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/xmldsig/package-info.java deleted file mode 100644 index 7ea150ff..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/api/xmldsig/package-info.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * - */ -/** - * @author afitzek - * - */ -package at.gv.egiz.pdfas.api.xmldsig; diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/ByteArrayDataSink_OLD.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/ByteArrayDataSink_OLD.java deleted file mode 100644 index 95316937..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/ByteArrayDataSink_OLD.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -package at.gv.egiz.pdfas.wrapper; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.OutputStream; - -import at.gv.egiz.pdfas.api.io.DataSink; - -public class ByteArrayDataSink_OLD implements DataSink { - - private ByteArrayOutputStream baos = new ByteArrayOutputStream(); - - public ByteArrayOutputStream getBAOS() { - return baos; - } - - public OutputStream createOutputStream(String mimeType) throws IOException { - return baos; - } - - public OutputStream createOutputStream(String mimeType, - String characterEncoding) throws IOException { - return baos; - } - - public String getMimeType() { - return "application/pdf"; - } - - public String getCharacterEncoding() { - return "UTF-8"; - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/ByteArrayDataSource_OLD.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/ByteArrayDataSource_OLD.java deleted file mode 100644 index 152f4053..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/ByteArrayDataSource_OLD.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -package at.gv.egiz.pdfas.wrapper; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; - -import at.gv.egiz.pdfas.api.io.DataSource; - -public class ByteArrayDataSource_OLD implements DataSource { - - private InputStream is; - private int length; - private byte[] data; - - public ByteArrayDataSource_OLD(byte[] data) { - this.length = data.length; - this.is = new ByteArrayInputStream(data); - this.data = data; - } - - public InputStream createInputStream() { - return is; - } - - public int getLength() { - return length; - } - - public byte[] getAsByteArray() { - return this.data; - } - - public String getMimeType() { - return "application/pdf"; - } - - public String getCharacterEncoding() { - return "UTF-8"; - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/FileDataSource.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/FileDataSource.java deleted file mode 100644 index fa64f7bd..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/FileDataSource.java +++ /dev/null @@ -1,66 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -package at.gv.egiz.pdfas.wrapper; - -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; - -import javax.management.RuntimeErrorException; - -import at.gv.egiz.pdfas.api.io.DataSource; -import at.gv.egiz.pdfas.common.utils.StreamUtils; - -public class FileDataSource implements DataSource { - - private byte[] data; - - public FileDataSource(File file) throws FileNotFoundException, IOException { - data = StreamUtils.inputStreamToByteArray(new FileInputStream(file)); - } - - public InputStream createInputStream() { - return new ByteArrayInputStream(data); - } - - public int getLength() { - return data.length; - } - - public byte[] getAsByteArray() { - return data; - } - - public String getMimeType() { - return "application/pdf"; - } - - public String getCharacterEncoding() { - return "UTF-8"; - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/LegacyMainTest.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/LegacyMainTest.java deleted file mode 100644 index 8838834e..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/LegacyMainTest.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -package at.gv.egiz.pdfas.wrapper; - -import java.io.File; -import java.io.FileOutputStream; -import java.util.Iterator; - -import at.gv.egiz.pdfas.PdfAsFactory; -import at.gv.egiz.pdfas.api.PdfAs; -import at.gv.egiz.pdfas.api.sign.SignParameters; -import at.gv.egiz.pdfas.api.verify.VerifyParameters; -import at.gv.egiz.pdfas.api.verify.VerifyResult; -import at.gv.egiz.pdfas.api.verify.VerifyResults; - -public class LegacyMainTest { - public static void main(String[] args) { - try { - PdfAs pdfAsOld = PdfAsFactory.createPdfAs(); - SignParameters signParameters = new SignParameters(); - signParameters.setSignatureProfileId("SIGNATURBLOCK_DE"); - signParameters.setSignatureDevice("bku"); - signParameters.setSignatureType("binary"); - - FileDataSource dataSource = new FileDataSource(new File("/home/afitzek/simple.pdf")); - signParameters.setDocument(dataSource); - ByteArrayDataSink_OLD dataSink = new ByteArrayDataSink_OLD(); - signParameters.setOutput(dataSink); - pdfAsOld.sign(signParameters); - - FileOutputStream fos = new FileOutputStream(new File("/home/afitzek/simple_osigned.pdf")); - fos.write(dataSink.getBAOS().toByteArray()); - fos.close(); - - VerifyParameters parameters = new VerifyParameters(); - parameters.setDocument(new FileDataSource(new File("/home/afitzek/simple_osigned.pdf"))); - parameters.setSignatureDevice("bku"); - - VerifyResults verifyResults = pdfAsOld.verify(parameters); - - Iterator<Object> verifyIt = verifyResults.getResults().iterator(); - - while(verifyIt.hasNext()) { - Object obj = verifyIt.next(); - VerifyResult verify = (VerifyResult)obj; - System.out.println("Verify Code: " + verify.getValueCheckCode().getCode()); - } - - } catch (Exception e) { - e.printStackTrace(); - } - } -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/PdfAsObject.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/PdfAsObject.java deleted file mode 100644 index 798fcd6f..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/PdfAsObject.java +++ /dev/null @@ -1,299 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -package at.gv.egiz.pdfas.wrapper; - -import iaik.x509.X509Certificate; - -import java.io.File; -import java.io.IOException; -import java.security.cert.CertificateEncodingException; -import java.security.cert.CertificateException; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import at.gv.egiz.pdfas.api.PdfAs; -import at.gv.egiz.pdfas.api.analyze.AnalyzeParameters; -import at.gv.egiz.pdfas.api.analyze.AnalyzeResult; -import at.gv.egiz.pdfas.api.commons.DynamicSignatureLifetimeEnum; -import at.gv.egiz.pdfas.api.commons.DynamicSignatureProfile; -import at.gv.egiz.pdfas.api.commons.DynamicSignatureProfileImpl; -import at.gv.egiz.pdfas.api.exceptions.ErrorCode; -import at.gv.egiz.pdfas.api.exceptions.PdfAsException; -import at.gv.egiz.pdfas.api.sign.SignParameters; -import at.gv.egiz.pdfas.api.sign.SignResult; -import at.gv.egiz.pdfas.api.sign.SignatureDetailInformation; -import at.gv.egiz.pdfas.api.sign.pos.SignaturePosition; -import at.gv.egiz.pdfas.api.verify.VerifyAfterAnalysisParameters; -import at.gv.egiz.pdfas.api.verify.VerifyAfterReconstructXMLDsigParameters; -import at.gv.egiz.pdfas.api.verify.VerifyParameters; -import at.gv.egiz.pdfas.api.verify.VerifyResults; -import at.gv.egiz.pdfas.api.xmldsig.ReconstructXMLDsigAfterAnalysisParameters; -import at.gv.egiz.pdfas.api.xmldsig.ReconstructXMLDsigParameters; -import at.gv.egiz.pdfas.api.xmldsig.ReconstructXMLDsigResult; -import at.gv.egiz.pdfas.lib.api.ByteArrayDataSource; -import at.gv.egiz.pdfas.lib.api.Configuration; -import at.gv.egiz.pdfas.lib.api.PdfAsFactory; -import at.gv.egiz.pdfas.lib.api.StatusRequest; -import at.gv.egiz.pdfas.lib.api.sign.SignParameter; -import at.gv.egiz.pdfas.lib.api.verify.VerifyParameter; -import at.gv.egiz.pdfas.lib.api.verify.VerifyResult; -import at.gv.egiz.pdfas.lib.impl.SignaturePositionImpl; -import at.gv.egiz.pdfas.lib.impl.StatusRequestImpl; - -public class PdfAsObject implements PdfAs { - - private at.gv.egiz.pdfas.lib.api.PdfAs pdfas4; - private Configuration configuration; - private File workdir; - - public SignResult sign(SignParameters signParameters) throws PdfAsException { - SignatureDetailInformation signatureDetailInformation = this - .prepareSign(signParameters); - return this.sign(signParameters, signatureDetailInformation); - } - - public SignResult sign(SignParameters signParameters, - SignatureDetailInformation signatureDetailInformation) - throws PdfAsException { - - if (!(signatureDetailInformation instanceof SignatureDetailInformationWrapper)) { - throw new PdfAsException(ErrorCode.SIGNATURE_COULDNT_BE_CREATED, - "Invalid state"); - } - - SignatureDetailInformationWrapper sdi = (SignatureDetailInformationWrapper) signatureDetailInformation; - StatusRequest statusRequest = sdi.getStatus(); - - if (!(statusRequest instanceof StatusRequestImpl)) { - throw new PdfAsException(ErrorCode.SIGNATURE_COULDNT_BE_CREATED, - "Invalid state"); - } - - StatusRequestImpl request = (StatusRequestImpl) statusRequest; - - if (request.needSignature()) { - try { - byte[] signature = sdi.wrapper.getSignParameter4().getPlainSigner().sign( - request.getSignatureData(), request.getSignatureDataByteRange(), sdi.wrapper.getSignParameter4(), - request.getStatus().getRequestedSignature()); - request.setSigature(signature); - request = (StatusRequestImpl) this.pdfas4.process(request); - if(request.isReady()) { - at.gv.egiz.pdfas.lib.api.sign.SignResult result = this.pdfas4.finishSign(request); - sdi.wrapper.syncNewToOld(result); - SignResultImpl oldresult = new SignResultImpl(sdi.wrapper.getSignParameters().getOutput(), - sdi.getX509Certificate(), new at.gv.egiz.pdfas.wrapper.SignaturePositionImpl( - result.getSignaturePosition())); - return oldresult; - } else { - throw new PdfAsException(ErrorCode.SIGNATURE_COULDNT_BE_CREATED, - "Invalid state"); - } - } catch (at.gv.egiz.pdfas.common.exceptions.PdfAsException e) { - e.printStackTrace(); - throw new PdfAsException( - ErrorCode.SIGNATURE_COULDNT_BE_CREATED, e.getMessage()); - - } catch (at.gv.egiz.pdfas.common.exceptions.PDFASError e) { - e.printStackTrace(); - throw new PdfAsException( - ErrorCode.SIGNATURE_COULDNT_BE_CREATED, e.getMessage()); - - } - } else { - throw new PdfAsException(ErrorCode.SIGNATURE_COULDNT_BE_CREATED, - "Invalid state"); - } - } - - public VerifyResults verify(VerifyParameters verifyParameters) - throws PdfAsException { - try { - VerifyParameter newParameter = VerifyParameterWrapper - .toNewParameters(verifyParameters, this.pdfas4.getConfiguration()); - - List<VerifyResult> results = this.pdfas4.verify(newParameter); - - Iterator<VerifyResult> it = results.iterator(); - - List<at.gv.egiz.pdfas.api.verify.VerifyResult> resultList = new ArrayList<at.gv.egiz.pdfas.api.verify.VerifyResult>(); - - while (it.hasNext()) { - VerifyResult newResult = it.next(); - at.gv.egiz.pdfas.api.verify.VerifyResult oldResult = new VerifyResultWrapper( - newResult); - resultList.add(oldResult); - } - - return new VerifyResultsImpl(resultList); - } catch (at.gv.egiz.pdfas.common.exceptions.PDFASError e) { - throw new PdfAsException(0, e.getMessage()); - } - } - - public AnalyzeResult analyze(AnalyzeParameters analyzeParameters) - throws PdfAsException { - throw new PdfAsException(ErrorCode.FUNCTION_NOT_AVAILABLE, - new RuntimeException()); - } - - public ReconstructXMLDsigResult reconstructXMLDSIG( - ReconstructXMLDsigParameters reconstructXMLDsigParameters) - throws PdfAsException { - throw new PdfAsException(ErrorCode.FUNCTION_NOT_AVAILABLE, - new RuntimeException()); - } - - public ReconstructXMLDsigResult reconstructXMLDSIG( - ReconstructXMLDsigAfterAnalysisParameters reconstructXMLDsigParameters) - throws PdfAsException { - throw new PdfAsException(ErrorCode.FUNCTION_NOT_AVAILABLE, - new RuntimeException()); - } - - public VerifyResults verify( - VerifyAfterAnalysisParameters verifyAfterAnalysisParameters) - throws PdfAsException { - throw new PdfAsException(ErrorCode.FUNCTION_NOT_AVAILABLE, - new RuntimeException()); - } - - public VerifyResults verify( - VerifyAfterReconstructXMLDsigParameters verifyAfterReconstructXMLDsigParameters) - throws PdfAsException { - throw new PdfAsException(ErrorCode.FUNCTION_NOT_AVAILABLE, - new RuntimeException()); - } - - public void reloadConfig() throws PdfAsException { - this.pdfas4 = at.gv.egiz.pdfas.lib.api.PdfAsFactory - .createPdfAs(this.workdir); - this.configuration = this.pdfas4.getConfiguration(); - } - - public List getProfileInformation() throws PdfAsException { - throw new PdfAsException(ErrorCode.FUNCTION_NOT_AVAILABLE, - new RuntimeException()); - } - - public DynamicSignatureProfile createDynamicSignatureProfile( - String parentProfile, DynamicSignatureLifetimeEnum mode) { - return DynamicSignatureProfileImpl.createFromParent(null, - parentProfile, mode, configuration); - } - - public DynamicSignatureProfile createDynamicSignatureProfile( - String myUniqueName, String parentProfile, - DynamicSignatureLifetimeEnum mode) { - return DynamicSignatureProfileImpl.createFromParent(myUniqueName, - parentProfile, mode, configuration); - } - - public DynamicSignatureProfile createEmptyDynamicSignatureProfile( - DynamicSignatureLifetimeEnum mode) { - return DynamicSignatureProfileImpl.createEmptyProfile(null, mode, - configuration); - } - - public DynamicSignatureProfile createEmptyDynamicSignatureProfile( - String myUniqueName, DynamicSignatureLifetimeEnum mode) { - return DynamicSignatureProfileImpl.createEmptyProfile(myUniqueName, - mode, configuration); - } - - public DynamicSignatureProfile loadDynamicSignatureProfile( - String profileName) { - return DynamicSignatureProfileImpl.loadProfile(profileName); - } - - public SignatureDetailInformation prepareSign(SignParameters signParameters) - throws PdfAsException { - try { - // Prepare Signature - - SignParameter signParameter4 = PdfAsFactory.createSignParameter( - this.configuration, new ByteArrayDataSource(signParameters - .getDocument().getAsByteArray()), - signParameters.getOutput() - .createOutputStream("application/pdf")); - - SignParameterWrapper wrapper = new SignParameterWrapper( - signParameters, signParameter4); - SignatureDetailInformationWrapper sdi = null; - - wrapper.syncOldToNew(); - - StatusRequest request = this.pdfas4.startSign(wrapper - .getSignParameter4()); - - if (request.needCertificate()) { - X509Certificate certificate = signParameter4.getPlainSigner() - .getCertificate(signParameter4); - sdi = new SignatureDetailInformationWrapper(certificate); - request.setCertificate(certificate.getEncoded()); - request = this.pdfas4.process(request); - if (request.needSignature()) { - sdi.setDataSource(new ByteArrayDataSource_OLD(request - .getSignatureData())); - } - sdi.wrapper = wrapper; - sdi.setStatus(request); - } - - return sdi; - } catch (at.gv.egiz.pdfas.common.exceptions.PdfAsException e) { - throw new PdfAsException(ErrorCode.SIGNATURE_COULDNT_BE_CREATED, - e.getMessage()); - } catch (CertificateEncodingException e) { - throw new PdfAsException(ErrorCode.SIGNATURE_COULDNT_BE_CREATED, - e.getMessage()); - } catch (CertificateException e) { - throw new PdfAsException(ErrorCode.SIGNATURE_COULDNT_BE_CREATED, - e.getMessage()); - } catch (at.gv.egiz.pdfas.common.exceptions.PDFASError e) { - e.printStackTrace(); - throw new PdfAsException( - ErrorCode.SIGNATURE_COULDNT_BE_CREATED, e.getMessage()); - } catch (IOException e) { - e.printStackTrace(); - throw new PdfAsException( - ErrorCode.SIGNATURE_COULDNT_BE_CREATED, e.getMessage()); - } - } - - public SignResult finishSign(SignParameters signParameters, - SignatureDetailInformation signatureDetailInformation) - throws PdfAsException { - return sign(signParameters, signatureDetailInformation); - } - - public PdfAsObject(File workdirectory) { - this.workdir = workdirectory; - this.pdfas4 = at.gv.egiz.pdfas.lib.api.PdfAsFactory - .createPdfAs(workdirectory); - this.configuration = this.pdfas4.getConfiguration(); - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignParameterWrapper.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignParameterWrapper.java deleted file mode 100644 index 7349dbec..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignParameterWrapper.java +++ /dev/null @@ -1,126 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -package at.gv.egiz.pdfas.wrapper; - -import java.io.OutputStream; -import java.util.Enumeration; - -import org.apache.commons.io.IOUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import at.gv.egiz.pdfas.api.exceptions.ErrorCode; -import at.gv.egiz.pdfas.api.exceptions.PdfAsException; -import at.gv.egiz.pdfas.api.sign.SignParameters; -import at.gv.egiz.pdfas.lib.api.sign.SignParameter; -import at.gv.egiz.pdfas.lib.api.sign.SignResult; -import at.gv.egiz.pdfas.moa.MOAConnector; -import at.gv.egiz.pdfas.sigs.pades.PAdESSigner; -import at.gv.egiz.sl.util.BKUSLConnector; - -public class SignParameterWrapper { - - private static final Logger logger = LoggerFactory - .getLogger(SignParameterWrapper.class); - - private SignParameter signParameter4; - private SignParameters signParameters; - - public SignParameterWrapper(SignParameters signParameters, - SignParameter signParameter4) { - this.signParameter4 = signParameter4; - this.signParameters = signParameters; - } - - public void syncOldToNew() throws PdfAsException { - - if (this.signParameters.getSignaturePositioning() != null) { - // Create positioning string - String posString = this.signParameters.getSignaturePositioning() - .getPositionString(); - logger.info("Pos String: " + posString); - if (posString.equals("x:auto;y:auto;w:auto;p:auto;f:0.0")) { - this.signParameter4.setSignaturePosition(null); - } else { - this.signParameter4.setSignaturePosition(posString); - } - } else { - this.signParameter4.setSignaturePosition(null); - } - - // Select signing device - if (this.signParameters.getSignatureDevice().equals("moa")) { - try { - this.signParameter4 - .setPlainSigner(new PAdESSigner(new MOAConnector( - this.signParameter4.getConfiguration()))); - } catch (Exception e) { - throw new PdfAsException(ErrorCode.CERTIFICATE_NOT_FOUND, - "You need to specify MOA certificate file to use moa (moa.sign.Certificate)"); - } - } else if (this.signParameters.getSignatureDevice().equals("bku")) { - this.signParameter4 - .setPlainSigner(new PAdESSigner(new BKUSLConnector( - this.signParameter4.getConfiguration()))); - } else { - throw new PdfAsException(ErrorCode.UNSUPPORTED_SIGNATURE, - "Unsupported device! Use bku or moa!"); - } - - // Overwrite Configurations - Enumeration<Object> keys = this.signParameters - .getProfileOverrideProperties().keys(); - - while (keys.hasMoreElements()) { - Object obj = keys.nextElement(); - if (obj != null) { - String key = obj.toString(); - this.signParameter4.getConfiguration().setValue( - key, - this.signParameters.getProfileOverrideProperties() - .getProperty(key)); - } - } - } - - public void syncNewToOld(SignResult result) throws PdfAsException { - try { - //OutputStream os = this.signParameters.getOutput() - // .createOutputStream("application/pdf"); - //IOUtils.copy(result.getOutputDocument(), os); - //os.close(); - } catch (Exception e) { - throw new PdfAsException(ErrorCode.SIGNATURE_COULDNT_BE_CREATED, - e.getMessage()); - } - } - - public SignParameter getSignParameter4() { - return this.signParameter4; - } - - public SignParameters getSignParameters() { - return this.signParameters; - } -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignResultImpl.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignResultImpl.java deleted file mode 100644 index 60711717..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignResultImpl.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -package at.gv.egiz.pdfas.wrapper; - -import java.security.cert.X509Certificate; -import java.util.List; - -import at.gv.egiz.pdfas.api.io.DataSink; -import at.gv.egiz.pdfas.api.sign.SignResult; -import at.gv.egiz.pdfas.api.sign.pos.SignaturePosition; - -public class SignResultImpl implements SignResult { - - private DataSink sink; - private X509Certificate certificate; - private SignaturePosition position; - - public SignResultImpl(DataSink data, X509Certificate cert, SignaturePosition position) { - this.certificate = cert; - this.sink = data; - this.position = position; - } - - public DataSink getOutputDocument() { - return this.sink; - } - - public X509Certificate getSignerCertificate() { - return certificate; - } - - public SignaturePosition getSignaturePosition() { - return position; - } - - public List getNonTextualObjects() { - return null; - } - - public boolean hasNonTextualObjects() { - return false; - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignatureCheckWrapper.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignatureCheckWrapper.java deleted file mode 100644 index 743a7bf2..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignatureCheckWrapper.java +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -package at.gv.egiz.pdfas.wrapper; - -import at.gv.egiz.pdfas.api.verify.SignatureCheck; - -public class SignatureCheckWrapper implements SignatureCheck { - - private at.gv.egiz.pdfas.lib.api.verify.SignatureCheck newCheck; - - public SignatureCheckWrapper(at.gv.egiz.pdfas.lib.api.verify.SignatureCheck newCheck) { - this.newCheck = newCheck; - } - - public int getCode() { - return this.newCheck.getCode(); - } - - public String getMessage() { - return this.newCheck.getMessage(); - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignatureDetailInformationWrapper.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignatureDetailInformationWrapper.java deleted file mode 100644 index 9a01297c..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignatureDetailInformationWrapper.java +++ /dev/null @@ -1,140 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -package at.gv.egiz.pdfas.wrapper; - -import java.security.cert.X509Certificate; -import java.util.Date; -import java.util.List; -import java.util.Map; - -import at.gv.egiz.pdfas.api.io.DataSource; -import at.gv.egiz.pdfas.api.sign.SignatureDetailInformation; -import at.gv.egiz.pdfas.api.sign.pos.SignaturePosition; -import at.gv.egiz.pdfas.common.utils.DNUtils; -import at.gv.egiz.pdfas.lib.api.StatusRequest; - -public class SignatureDetailInformationWrapper implements - SignatureDetailInformation { - - public SignParameterWrapper wrapper; - private StatusRequest status; - private DataSource dataSource; - private iaik.x509.X509Certificate certificate; - - public SignatureDetailInformationWrapper(iaik.x509.X509Certificate cert) { - this.certificate = cert; - } - - public StatusRequest getStatus() { - return status; - } - - public void setStatus(StatusRequest status) { - this.status = status; - } - - - public void setDataSource(DataSource dataSource) { - this.dataSource = dataSource; - } - - public DataSource getSignatureData() { - return this.dataSource; - } - - public SignaturePosition getSignaturePosition() { - return null; - } - - public List getNonTextualObjects() { - return null; - } - - public Date getSignDate() { - return null; - } - - public String getIssuer() { - return this.certificate.getIssuerDN().getName(); - } - - public Map getIssuerDNMap() { - try { - return DNUtils.dnToMap(getIssuer()); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - public String getSubjectName() { - return this.certificate.getSubjectDN().getName(); - } - - public String getSerialNumber() { - return this.certificate.getSerialNumber().toString(); - } - - public String getSigAlgorithm() { - return this.certificate.getSigAlgName(); - } - - public String getSigID() { - return null; - } - - public String getSigKZ() { - return null; - } - - public String getSignatureValue() { - return null; - } - - public String getSigTimeStamp() { - return null; - } - - public Map getSubjectDNMap() { - try { - return DNUtils.dnToMap(getSubjectName()); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - public X509Certificate getX509Certificate() { - return this.certificate; - } - - public boolean isTextual() { - return false; - } - - public boolean isBinary() { - return true; - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignaturePositionImpl.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignaturePositionImpl.java deleted file mode 100644 index 82da0d59..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/SignaturePositionImpl.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -package at.gv.egiz.pdfas.wrapper; - -import at.gv.egiz.pdfas.api.sign.pos.SignaturePosition; - -public class SignaturePositionImpl implements SignaturePosition { - - private at.gv.egiz.pdfas.lib.api.SignaturePosition position; - - public SignaturePositionImpl(at.gv.egiz.pdfas.lib.api.SignaturePosition position) { - this.position = position; - } - - - public int getPage() { - return this.position.getPage(); - } - - public float getX() { - return this.position.getX(); - } - - public float getY() { - return this.position.getY(); - } - - public float getWidth() { - return this.position.getWidth(); - } - - public float getHeight() { - return this.position.getHeight(); - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/VerifyParameterWrapper.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/VerifyParameterWrapper.java deleted file mode 100644 index e8e89cb4..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/VerifyParameterWrapper.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -package at.gv.egiz.pdfas.wrapper; - -import at.gv.egiz.pdfas.api.verify.VerifyParameters; -import at.gv.egiz.pdfas.lib.api.ByteArrayDataSource; -import at.gv.egiz.pdfas.lib.api.Configuration; -import at.gv.egiz.pdfas.lib.api.PdfAsFactory; -import at.gv.egiz.pdfas.lib.api.verify.VerifyParameter; - -public class VerifyParameterWrapper { - - public static VerifyParameter toNewParameters(VerifyParameters oldParameters, Configuration config) { - VerifyParameter parameter = PdfAsFactory.createVerifyParameter(config, - new ByteArrayDataSource(oldParameters.getDocument().getAsByteArray())); - - parameter.setWhichSignature(oldParameters.getSignatureToVerify()); - parameter.setVerificationTime(oldParameters.getVerificationTime()); - return parameter; - } - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/VerifyResultWrapper.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/VerifyResultWrapper.java deleted file mode 100644 index 770e7f3b..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/VerifyResultWrapper.java +++ /dev/null @@ -1,132 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -package at.gv.egiz.pdfas.wrapper; - -import java.io.InputStream; -import java.security.cert.X509Certificate; -import java.util.Date; -import java.util.List; - -import at.gv.egiz.pdfas.api.commons.Constants; -import at.gv.egiz.pdfas.api.exceptions.PdfAsException; -import at.gv.egiz.pdfas.api.exceptions.PdfAsWrappedException; -import at.gv.egiz.pdfas.api.io.DataSource; -import at.gv.egiz.pdfas.api.verify.SignatureCheck; -import at.gv.egiz.pdfas.api.verify.VerifyResult; -import at.gv.egiz.pdfas.api.xmldsig.XMLDsigData; - -public class VerifyResultWrapper implements VerifyResult { - - private at.gv.egiz.pdfas.lib.api.verify.VerifyResult newResult; - - public VerifyResultWrapper(at.gv.egiz.pdfas.lib.api.verify.VerifyResult newResult) { - this.newResult = newResult; - } - - public String getSignatureType() { - return null; - } - - public DataSource getSignedData() { - return new ByteArrayDataSource_OLD(this.newResult.getSignatureData()); - } - - public X509Certificate getSignerCertificate() { - return this.newResult.getSignerCertificate(); - } - - public Date getSigningTime() { - return null; - } - - public Object getInternalSignatureInformation() { - return null; - } - - public String getTimeStampValue() { - return null; - } - - public void setNonTextualObjects(List nonTextualObjects) { - } - - public boolean isVerificationDone() { - return this.newResult.isVerificationDone(); - } - - public PdfAsException getVerificationException() { - return new PdfAsWrappedException(this.newResult.getVerificationException()); - } - - public SignatureCheck getCertificateCheck() { - return new SignatureCheckWrapper(this.newResult.getCertificateCheck()); - } - - public SignatureCheck getValueCheckCode() { - return new SignatureCheckWrapper(this.newResult.getValueCheckCode()); - } - - public SignatureCheck getManifestCheckCode() { - return new SignatureCheckWrapper(this.newResult.getManifestCheckCode()); - } - - public boolean isQualifiedCertificate() { - return this.newResult.isQualifiedCertificate(); - } - - public boolean isPublicAuthority() { - return false; - } - - public String getPublicAuthorityCode() { - return null; - } - - public List getPublicProperties() { - return null; - } - - public Date getVerificationTime() { - return null; - } - - public String getHashInputData() { - return null; - } - - public List getNonTextualObjects() { - return null; - } - - public boolean hasNonTextualObjects() { - return false; - } - - public XMLDsigData getReconstructedXMLDsig() { - return null; - } - - - -} diff --git a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/VerifyResultsImpl.java b/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/VerifyResultsImpl.java deleted file mode 100644 index d99db8bb..00000000 --- a/pdf-as-legacy/src/main/java/at/gv/egiz/pdfas/wrapper/VerifyResultsImpl.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -package at.gv.egiz.pdfas.wrapper; - -import java.util.List; - -import at.gv.egiz.pdfas.api.verify.VerifyResult; -import at.gv.egiz.pdfas.api.verify.VerifyResults; - -public class VerifyResultsImpl implements VerifyResults { - - private List<VerifyResult> list; - - public VerifyResultsImpl(List<VerifyResult> list) { - this.list = list; - } - - public List getResults() { - return this.list; - } - -} diff --git a/pdf-as-legacy/src/main/java/at/knowcenter/wag/egov/egiz/sig/SignatureTypes.java b/pdf-as-legacy/src/main/java/at/knowcenter/wag/egov/egiz/sig/SignatureTypes.java deleted file mode 100644 index 8bd69ef2..00000000 --- a/pdf-as-legacy/src/main/java/at/knowcenter/wag/egov/egiz/sig/SignatureTypes.java +++ /dev/null @@ -1,253 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -/** - * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - * - * $Id: SignatureTypes.java,v 1.5 2006/10/31 08:18:56 wprinz Exp $ - */ -package at.knowcenter.wag.egov.egiz.sig; - -import org.apache.commons.lang3.ArrayUtils; - -public class SignatureTypes { - - /** - * Defines all supported states for {@link SignatureTypes} (signature - * profiles). Signature types can be enabled ("on"), can be set to support - * signature only ("sign_only"), to verification only ("verify_only") or can - * be disabled ("off" or any other value not covered by other enum values). - * - * @author Datentechnik Innovation GmbH - */ - public enum State { - - /** - * Enables a signature profile. - */ - ON("on", "yes", "true", "enabled"), - - /** - * Disables a signature profile. - */ - OFF(), - - /** - * Restricts the signature profile so that is can only be used for - * verification purposes and not for signature. - */ - VERIFY_ONLY("verify_only", "verify-only", "verifyonly", "verify only", - "verify"), - - /** - * Allows the signature profile to be used for signature but not for - * verification. - */ - SIGN_ONLY("sign_only", "sign-only", "signonly", "sign only", "sign"); - - /** - * Sets the default state when no valid value was provided. - */ - private static final State DEFAULT = OFF; - - /** - * States that allow signatures. - */ - private static final State[] CAN_SIGN = { ON, SIGN_ONLY }; - - /** - * States that allow verification. - */ - private static final State[] CAN_VERIFY = { ON, VERIFY_ONLY }; - - private String[] keyWords; - - private State(String... keyWords) { - this.keyWords = keyWords; - } - - /** - * Returns a valid State from a given {@code keyWord}. If the - * {@code keyWord} cannot be matched to a certain state, the default - * State {@link #OFF} is returned. - * - * @param keyWord - * A valid keyword like "on", "sign_only"... - * @return The enum State. - */ - public static State fromString(String keyWord) { - if (keyWord == null) { - return DEFAULT; - } - try { - return valueOf(keyWord.toUpperCase()); - } catch (IllegalArgumentException e) { - for (State candidate : values()) { - for (String candidateKeyWord : candidate.keyWords) { - if (keyWord.equalsIgnoreCase(candidateKeyWord)) { - return candidate; - } - } - } - return DEFAULT; - } - } - - /** - * Returns {@code true} when the current state is one of the given - * candidate {@code states}. - * - * @param states - * The candidate states. - * @return {@code true} when the current state is one of the given - * candidate states, {@code false} if not. - */ - public boolean in(State... states) { - if (states != null) { - for (State state : states) { - if (this == state) { - return true; - } - } - } - return false; - } - - /** - * Returns if the respective state allows signatures. - * - * @return {@code true} if signatures are allowed, {@code false} if not. - */ - public boolean canSign() { - return in(CAN_SIGN); - } - - /** - * Returns if the respective state allows verification. - * - * @return {@code true} if verification is allowed, {@code false} if - * not. - */ - public boolean canVerify() { - return in(CAN_VERIFY); - } - - } - - /** - * Standard key get/set the singature name - */ - public static final String SIG_NAME = "SIG_NAME"; - - /** - * Standard key get/set the signature date - */ - public static final String SIG_DATE = "SIG_DATE"; - - /** - * Standard key get/set the signator issuer - */ - public static final String SIG_ISSUER = "SIG_ISSUER"; - - /** - * Standard key get/set the siganture value - */ - public static final String SIG_VALUE = "SIG_VALUE"; - - /** - * Standard key get/set the normalisation method used - */ - public static final String SIG_NORM = "SIG_NORM"; - - /** - * Standard key get/set the signation id's used by BKU signated documents - */ - public static final String SIG_ID = "SIG_ID"; - - /** - * The EGIZ Algorithm "Kennzeichnung". - */ - public static final String SIG_KZ = "SIG_KZ"; - - /** - * Standard key get/set the reference to the signature label (image mark) - */ - public static final String SIG_LABEL = "SIG_LABEL"; - - /** - * Standard key get/set the serial number of the signature - */ - public static final String SIG_NUMBER = "SIG_NUMBER"; - - // public static final String SIG_TYPE = "SIG_TYPE"; - /** - * Standard key get/set the signature meta informations - */ - public static final String SIG_META = "SIG_META"; - - /** - * Standard key get/set the signature algorithm (sign + hash) - */ - public static final String SIG_ALG = "SIG_ALG"; - - /** - * Standard key get/set the signature note - * added by rpiazzi - */ - public static final String SIG_NOTE = "SIG_NOTE"; - - - /** - * Standard key get/set the signature subject - * Added to be able to define static signator name within config file - * added by rpiazzi - */ - public static final String SIG_SUBJECT = "SIG_SUBJECT"; - - public static String[] REQUIRED_SIG_KEYS = new String[] { SIG_DATE, - SIG_ISSUER, SIG_VALUE, SIG_NUMBER, SIG_ID, SIG_KZ }; - - public static boolean isRequredSigTypeKey(String name) { - return ArrayUtils.contains(REQUIRED_SIG_KEYS, name); - } -} diff --git a/pdf-as-legacy/src/test/java/ByteArrayDataSink.java b/pdf-as-legacy/src/test/java/ByteArrayDataSink.java deleted file mode 100644 index 45559d98..00000000 --- a/pdf-as-legacy/src/test/java/ByteArrayDataSink.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.OutputStream; - -import at.gv.egiz.pdfas.api.io.DataSink; - - -public class ByteArrayDataSink implements DataSink { - - private ByteArrayOutputStream bos = new ByteArrayOutputStream(); - - public ByteArrayDataSink() { - } - - public OutputStream createOutputStream(String mimeType) throws IOException { - return createOutputStream(mimeType, "UTF-8"); - } - - public OutputStream createOutputStream(String mimeType, - String characterEncoding) throws IOException { - return bos; - } - - public String getMimeType() { - return "application/pdf"; - } - - public String getCharacterEncoding() { - return "UTF-8"; - } - - public byte[] getBytes() { - return this.bos.toByteArray(); - } - -} diff --git a/pdf-as-legacy/src/test/java/ByteArrayDataSource.java b/pdf-as-legacy/src/test/java/ByteArrayDataSource.java deleted file mode 100644 index 6cf15f66..00000000 --- a/pdf-as-legacy/src/test/java/ByteArrayDataSource.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -import java.io.ByteArrayInputStream; -import java.io.InputStream; - -import at.gv.egiz.pdfas.api.io.DataSource; - - -public class ByteArrayDataSource implements DataSource { - - private byte[] data; - - public ByteArrayDataSource(byte[] data) { - this.data = data; - } - - public InputStream createInputStream() { - return new ByteArrayInputStream(data); - } - - public int getLength() { - return data.length; - } - - public byte[] getAsByteArray() { - return data; - } - - public String getMimeType() { - return "application/pdf"; - } - - public String getCharacterEncoding() { - return "UTF-8"; - } - -} diff --git a/pdf-as-legacy/src/test/java/LegacyTest.java b/pdf-as-legacy/src/test/java/LegacyTest.java deleted file mode 100644 index 8c813007..00000000 --- a/pdf-as-legacy/src/test/java/LegacyTest.java +++ /dev/null @@ -1,83 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -import java.io.FileOutputStream; -import java.io.InputStream; -import java.util.Iterator; - -import org.apache.commons.io.IOUtils; - -import at.gv.egiz.pdfas.PdfAsFactory; -import at.gv.egiz.pdfas.api.PdfAs; -import at.gv.egiz.pdfas.api.sign.SignParameters; -import at.gv.egiz.pdfas.api.sign.SignResult; -import at.gv.egiz.pdfas.api.verify.VerifyParameters; -import at.gv.egiz.pdfas.api.verify.VerifyResult; -import at.gv.egiz.pdfas.api.verify.VerifyResults; - -public class LegacyTest { - - public static void main(String[] args) { - try { - PdfAs pdfAS = PdfAsFactory.createPdfAs(); - - SignParameters signParameters = new SignParameters(); - signParameters.setSignatureDevice("bku"); - signParameters.setSignatureProfileId("SIGNATURBLOCK_DE"); - - InputStream is = LegacyTest.class.getResourceAsStream("simple.pdf"); - - byte[] inputData = IOUtils.toByteArray(is); - ByteArrayDataSink bads = new ByteArrayDataSink(); - signParameters.setDocument(new ByteArrayDataSource(inputData)); - signParameters.setOutput(bads); - SignResult result = pdfAS.sign(signParameters); - IOUtils.write(bads.getBytes(), new FileOutputStream("/tmp/test.pdf")); - - System.out.println("Signed @ " + result.getSignaturePosition().toString()); - System.out.println("Signed by " + result.getSignerCertificate().getSubjectDN().getName()); - - VerifyParameters verifyParameters = new VerifyParameters(); - verifyParameters.setDocument(new ByteArrayDataSource(bads.getBytes())); - verifyParameters.setSignatureToVerify(0); - - VerifyResults results = pdfAS.verify(verifyParameters); - - Iterator iter = results.getResults().iterator(); - - while(iter.hasNext()) { - Object obj = iter.next(); - if(obj instanceof VerifyResult) { - VerifyResult vresult = (VerifyResult)obj; - System.out.println("Verified: " + vresult.getValueCheckCode().getCode() + " " + - vresult.getValueCheckCode().getMessage()); - } - } - - } catch (Throwable e) { - System.out.println("ERROR"); - e.printStackTrace(); - } - } - -} diff --git a/pdf-as-legacy/src/test/java/StreamUtils.java b/pdf-as-legacy/src/test/java/StreamUtils.java deleted file mode 100644 index f525cdb4..00000000 --- a/pdf-as-legacy/src/test/java/StreamUtils.java +++ /dev/null @@ -1,30 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -import java.io.ByteArrayOutputStream; -import java.io.InputStream; - -import org.apache.commons.io.IOUtils; - -public class StreamUtils { -} diff --git a/pdf-as-legacy/src/test/resources/simple.pdf b/pdf-as-legacy/src/test/resources/simple.pdf Binary files differdeleted file mode 100644 index 867f68db..00000000 --- a/pdf-as-legacy/src/test/resources/simple.pdf +++ /dev/null diff --git a/pdf-as-lib/build.gradle b/pdf-as-lib/build.gradle index d02ae9b2..204539d5 100644 --- a/pdf-as-lib/build.gradle +++ b/pdf-as-lib/build.gradle @@ -13,7 +13,7 @@ buildscript { mavenLocal() mavenCentral() } - dependencies { classpath("commons-io:commons-io:2.15.1") } + dependencies { classpath("commons-io:commons-io:"+commonsIoVersion) } } @@ -33,7 +33,7 @@ sourceSets { configurations { ws - pdfDoclet { extendsFrom compile } + pdfDoclet { extendsFrom compileClasspath } } project.ext { @@ -45,14 +45,15 @@ project.ext { ] } -task createConf(type: Zip, dependsOn: JavaPlugin.PROCESS_RESOURCES_TASK_NAME) { +tasks.register('createConf', Zip) { from 'src/configuration' //archiveBaseName 'config' - archiveName 'config.zip' - destinationDir new File(projectDir, 'src/main/resources/config') + archiveFileName.set('config.zip') + destinationDirectory.set(new File(projectDir, 'src/main/resources/config')) } -compileJava.dependsOn(createConf) +processResources.dependsOn(createConf) +processTestResources.dependsOn(createConf) repositories { @@ -62,30 +63,38 @@ repositories { dependencies { api project (':pdf-as-common') - api group: 'org.apache.commons', name: 'commons-lang3', version: '3.20.0' + api group: 'org.apache.commons', name: 'commons-lang3', version: commonsLang3Version + api group: 'org.apache.commons', name: 'commons-text', version: commonsTextVersion api group: 'org.apache.httpcomponents', name: 'httpmime', version: '4.5.14' api group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.14' - api group: 'org.bouncycastle', name: 'bcprov-jdk18on', version: '1.82' - api group: 'javax.activation', name: 'activation', version: '1.1.1' - api group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1' - api group: 'com.google.code.gson', name: 'gson', version: '2.13.2' + api group: 'org.bouncycastle', name: 'bcprov-jdk18on', version: bouncyCastleVersion + api group: 'jakarta.activation', name: 'jakarta.activation-api', version: jakartaActivationVersion + api group: 'jakarta.xml.bind', name: 'jakarta.xml.bind-api', version: jaxbApiVersion + api group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: jaxbRuntimeVersion + api group: 'com.google.code.gson', name: 'gson', version: gsonVersion api group: 'org.bitbucket.b_c', name: 'jose4j', version: '0.9.6' - api group: 'commons-io', name: 'commons-io', version: '2.21.0' - api group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '2.3.3' - api 'org.apache.commons:commons-collections4:4.5.0' - api group: 'ognl', name: 'ognl', version: '3.3.5' + api group: 'commons-io', name: 'commons-io', version: commonsIoVersion + api group: 'org.apache.commons', name: 'commons-collections4', version: commonsCollectionsVersion + api group: 'ognl', name: 'ognl', version: ognlVersion api files('libs/iaik_eccelerate_cms-6.02.jar') api files('libs/iaik_eccelerate-6.02.jar') api files('libs/iaik_jce_full-5.63_moa.jar') api files('libs/iaik_cms-5.1.1.jar') api group: 'org.slf4j', name: 'slf4j-api', version: slf4jVersion api group: 'org.slf4j', name: 'jcl-over-slf4j', version: slf4jVersion - api group: 'com.google.zxing', name: 'core', version: '3.5.0' - api group: 'com.google.zxing', name: 'javase', version: '3.5.0' + api group: 'com.google.zxing', name: 'core', version: zxingVersion + api group: 'com.google.zxing', name: 'javase', version: zxingVersion + + api platform(group: 'io.micrometer', name: 'micrometer-bom', version: micrometerVersion) + api 'io.micrometer:micrometer-core' ws group: 'org.apache.cxf', name: 'cxf-tools', version: cxfVersion ws group: 'org.apache.cxf', name: 'cxf-tools-wsdlto-databinding-jaxb', version: cxfVersion ws group: 'org.apache.cxf', name: 'cxf-tools-wsdlto-frontend-jaxws', version: cxfVersion + + testImplementation project (':pdf-as-pdfbox-3') + testImplementation project (':signature-standards:sigs-pades') + testImplementation group: 'org.zeroturnaround', name: 'zt-zip', version: ztZipVersion } task wsdl2Java() { @@ -110,6 +119,7 @@ task wsdl2Java() { } task releaseConfig(type: Copy) { + dependsOn createConf from 'src/main/resources/config/config.zip' into rootDir.toString() + "/releases/" + version + "/cfg" rename 'config.zip', 'defaultConfig.zip' @@ -130,7 +140,7 @@ releases.dependsOn distTar releases.dependsOn releaseConfig task apidocs(type: Javadoc) { - classpath = configurations.compile + classpath = configurations.compileClasspath source = sourceSets.main.allJava destinationDir = new File(rootDir.toString() + "/releases/" + version + "/docs/api") title = "PDF-AS " + project.pdfasversion + " Documentation" @@ -147,7 +157,7 @@ task apidocs(type: Javadoc) { } task fulldocs(type: Javadoc) { - classpath = configurations.compile + classpath = configurations.compileClasspath source = sourceSets.main.allJava destinationDir = new File(rootDir.toString() + "/releases/" + version + "/docs/full") title = "PDF-AS " + project.pdfasversion + " Documentation" diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/dsig/ObjectFactory.java b/pdf-as-lib/src/main/java/at/gv/egiz/dsig/ObjectFactory.java index b5018435..5e57568f 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/dsig/ObjectFactory.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/dsig/ObjectFactory.java @@ -31,9 +31,9 @@ package at.gv.egiz.dsig; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlElementDecl; -import javax.xml.bind.annotation.XmlRegistry; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlElementDecl; +import jakarta.xml.bind.annotation.XmlRegistry; import javax.xml.namespace.QName; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/dsig/X509DataType.java b/pdf-as-lib/src/main/java/at/gv/egiz/dsig/X509DataType.java index 41be7577..0f28a024 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/dsig/X509DataType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/dsig/X509DataType.java @@ -33,13 +33,13 @@ package at.gv.egiz.dsig; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElementRef; -import javax.xml.bind.annotation.XmlElementRefs; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlElementRef; +import jakarta.xml.bind.annotation.XmlElementRefs; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/dsig/X509IssuerSerialType.java b/pdf-as-lib/src/main/java/at/gv/egiz/dsig/X509IssuerSerialType.java index 6f5366fb..75c3db27 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/dsig/X509IssuerSerialType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/dsig/X509IssuerSerialType.java @@ -32,10 +32,10 @@ package at.gv.egiz.dsig; import java.math.BigInteger; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/dsig/util/DsigMarschaller.java b/pdf-as-lib/src/main/java/at/gv/egiz/dsig/util/DsigMarschaller.java index 3b2308f5..2f0c6437 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/dsig/util/DsigMarschaller.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/dsig/util/DsigMarschaller.java @@ -28,10 +28,10 @@ import java.io.OutputStream; import java.io.StringReader; import java.io.StringWriter; -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBException; -import javax.xml.bind.Marshaller; -import javax.xml.bind.Unmarshaller; +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.JAXBException; +import jakarta.xml.bind.Marshaller; +import jakarta.xml.bind.Unmarshaller; import javax.xml.namespace.QName; public class DsigMarschaller { diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/ByteArrayDataSource.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/ByteArrayDataSource.java index fa55bcd0..e608a14c 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/ByteArrayDataSource.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/ByteArrayDataSource.java @@ -5,7 +5,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import javax.activation.DataSource; +import jakarta.activation.DataSource; public class ByteArrayDataSource implements DataSource { diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAs.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAs.java index 1d23c070..a5625056 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAs.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAs.java @@ -63,31 +63,13 @@ public interface PdfAs { /** * Starts a signature process * - * After the process has to be startet the status request has to be services by the user application + * After the process has to be started the status request has to be services by the user application * * @param parameter The sign parameter * @return A status request * @throws PdfAsException */ - public StatusRequest startSign(SignParameter parameter) throws PDFASError; - - /** - * Continues an ongoing signature process - * - * @param statusRequest The current status - * @return A status request - * @throws PdfAsException - */ - public StatusRequest process(StatusRequest statusRequest) throws PDFASError; - - /** - * Finishes a signature process - * - * @param statusRequest The current status - * @return A signature result - * @throws PdfAsException - */ - public SignResult finishSign(StatusRequest statusRequest) throws PDFASError; + public StatusRequest.Stage1 startSign(SignParameter parameter) throws PDFASError; /** * Generates a Image of the visual signatur block as Preview diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsFactory.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsFactory.java index b2845959..133a90b8 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsFactory.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsFactory.java @@ -38,7 +38,7 @@ import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.activation.DataSource; +import jakarta.activation.DataSource; import javax.crypto.Cipher; import java.awt.*; import java.awt.image.BufferedImage; @@ -119,7 +119,7 @@ public class PdfAsFactory implements IConfigurationConstants { registerProvider(new IAIK(), 1); // TODO: register ECCelerate in second position when TLS issue is // fixed - registerProvider(new ECCelerate(), -1); + registerProvider(ECCelerate.getInstance(), -1); registerProvider( new BouncyCastleProvider(), -2); @@ -170,7 +170,7 @@ public class PdfAsFactory implements IConfigurationConstants { try { teeInformation("+ IAIK-JCE Version: " + IAIK.getVersionInfo()); teeInformation("+ ECCelerate Version: " - + ECCelerate.getInstance().getVersion()); + + ECCelerate.getInstance().getVersionStr()); } catch (Throwable e) { teeInformation("+ Failed to show security provider informations"); } diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsParameter.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsParameter.java index 5a646505..1e552769 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsParameter.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/PdfAsParameter.java @@ -27,7 +27,7 @@ import at.gv.egiz.pdfas.common.exceptions.PdfAsException; import java.util.Map; -import javax.activation.DataSource; +import jakarta.activation.DataSource; public interface PdfAsParameter { diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/StatusRequest.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/StatusRequest.java index df397733..0e4c76cc 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/StatusRequest.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/StatusRequest.java @@ -25,36 +25,36 @@ package at.gv.egiz.pdfas.lib.api; import java.security.cert.CertificateException; +import at.gv.egiz.pdfas.common.exceptions.PDFASError; import at.gv.egiz.pdfas.lib.api.sign.SignParameter; +import at.gv.egiz.pdfas.lib.api.sign.SignResult; +import at.gv.egiz.pdfas.lib.impl.status.RequestedSignature; /** - * Status of a signture process + * Status of a signature process */ public interface StatusRequest { - - /** - * If true PDF-AS requires the signature certificate - * - * Retrieve the signing certificate and set it via setCertificate - * @return - */ - public boolean needCertificate(); - - /** - * If true PDF-AS requires a the CAdES signature - * - * use getSignatureData() and getSignatureDataByteRange() to retrieve the - * data to be signed and set the signature via setSigature - * - * @return - */ - public boolean needSignature(); - - /** - * If true finishSign in PdfAs can be called to retrieve the signed pdf - * @return - */ - public boolean isReady(); + + public interface Stage1 extends StatusRequest { + /** + * Sets the signing certificate + * @param encodedCertificate + * @throws CertificateException + */ + public Stage2 setCertificate(byte[] encodedCertificate) throws CertificateException, PDFASError; + } + + public interface Stage2 extends StatusRequest { + /** + * Sets the signature + * @param signatureValue + */ + public Stage3 setSignature(byte[] signatureValue) throws PDFASError; + } + + public interface Stage3 extends StatusRequest { + public SignResult finishSign() throws PDFASError; + } /** * Gets the data to be signed @@ -67,19 +67,11 @@ public interface StatusRequest { * @return */ public int[] getSignatureDataByteRange(); - - /** - * Sets the signing certificate - * @param encodedCertificate - * @throws CertificateException - */ - public void setCertificate(byte[] encodedCertificate) throws CertificateException; - - /** - * Sets the signature - * @param signatureValue - */ - public void setSigature(byte[] signatureValue) ; + + /** + * Gets the requested signature metadata + */ + public RequestedSignature getRequestedSignature(); public SignParameter getSignParameter(); diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignParameter.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignParameter.java index e123d453..64bd5328 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignParameter.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/sign/SignParameter.java @@ -100,7 +100,9 @@ public interface SignParameter extends PdfAsParameter { * @return */ public IPlainSigner getPlainSigner(); - + + public void setOutputStream(OutputStream stream); + public default OutputStream getOutputStream() { return getSignatureResult(); } /** * Gets the outputstream, where the signed document will be written to * @return diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/verify/VerifyResult.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/verify/VerifyResult.java index 4b636db0..5fee1c85 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/verify/VerifyResult.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/api/verify/VerifyResult.java @@ -25,10 +25,11 @@ package at.gv.egiz.pdfas.lib.api.verify; import java.security.cert.X509Certificate; import at.gv.egiz.pdfas.common.exceptions.PdfAsException; +import at.gv.egiz.pdfas.lib.impl.verify.SignatureInputData; public interface VerifyResult { /** - * Returns if the verification was possible or could not even be startet. + * Returns if the verification was possible or could not even be started. * see {@link #getVerificationException()} for details. * * @return @@ -82,5 +83,5 @@ public interface VerifyResult { * Gets the signed data for the signature * @return */ - public byte[] getSignatureData(); + public SignatureInputData getSignatureData(); } diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/backend/PDFASBackend.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/backend/PDFASBackend.java index d601532e..d109cf81 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/backend/PDFASBackend.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/backend/PDFASBackend.java @@ -2,12 +2,13 @@ package at.gv.egiz.pdfas.lib.backend; import at.gv.egiz.pdfas.lib.impl.placeholder.PlaceholderExtractor; import at.gv.egiz.pdfas.lib.impl.signing.IPdfSigner; +import at.gv.egiz.pdfas.lib.impl.status.PDFObject; import at.gv.egiz.pdfas.lib.impl.verify.VerifyBackend; public interface PDFASBackend { public String getName(); public boolean usedAsDefault(); - public IPdfSigner getPdfSigner(); + public IPdfSigner<?, ?> getPdfSigner(); public PlaceholderExtractor getPlaceholderExtractor(); public VerifyBackend getVerifier(); } diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/ErrorExtractor.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/ErrorExtractor.java index bcf04611..660e8cd9 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/ErrorExtractor.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/ErrorExtractor.java @@ -45,7 +45,7 @@ public class ErrorExtractor implements ErrorConstants { } } else if(e instanceof PdfAsException) { - return new PDFASError(11020, e.getMessage(), e); + return new PDFASError(ErrorConstants.ERROR_PDF_PROCESSING_FAILED, e.getMessage(), e); } diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java index 255c76e6..bd9a1669 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsImpl.java @@ -31,6 +31,8 @@ import java.util.Date; import java.util.Iterator; import java.util.List; +import at.gv.egiz.pdfas.lib.util.TimedFunction; +import lombok.val; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -121,151 +123,21 @@ public class PdfAsImpl implements PdfAs, IConfigurationConstants, @Override public SignResult sign(SignParameter parameter) throws PDFASError { - - logger.trace("sign started"); - - verifySignParameter(parameter); - OperationStatus status = null; + val signer = parameter.getPlainSigner(); + if (signer == null) { + throw new IllegalArgumentException("SignParameter is missing plainSigner for use of sign()"); + } + val state1 = (StatusRequestImpl.Stage1)startSign(parameter); try { - // Status initialization - if (!(parameter.getConfiguration() instanceof ISettings)) { - throw new PdfAsSettingsException("Invalid settings object!"); - } - - // execute pre Processors - signPreProcessing(parameter); - - // allocated Backend - final PDFASBackend backend = BackendLoader.getPDFASBackend(parameter.getConfiguration()); - - if (backend == null) { - throw new PDFASError(ERROR_NO_BACKEND); - } - - final ISettings settings = (ISettings) parameter.getConfiguration(); - status = new OperationStatus(settings, parameter, backend); - - final IPdfSigner signer = backend.getPdfSigner(); - - final PDFObject pdfObject = signer.buildPDFObject(status); - - status.setPdfObject(pdfObject); - - // set Original PDF Document Data - status.getPdfObject() - .setOriginalDocument(parameter.getDataSource()); - - // Check PDF Permissions - signer.checkPDFPermissions(status.getPdfObject()); - - // PlaceholderConfiguration placeholderConfiguration = status - // .getPlaceholderConfiguration(); - - final RequestedSignature requestedSignature = new RequestedSignature( - status); - - status.setRequestedSignature(requestedSignature); - - try { - requestedSignature.setCertificate(getValidCertificate( - status.getSignParamter().getPlainSigner().getCertificate(parameter))); - - } finally { - if (parameter instanceof BKUHeaderHolder) { - final BKUHeaderHolder holder = (BKUHeaderHolder) parameter; - - final Iterator<BKUHeader> bkuHeaderIt = holder.getProcessInfo() - .iterator(); - - while (bkuHeaderIt.hasNext()) { - final BKUHeader header = bkuHeaderIt.next(); - if ("Server".equalsIgnoreCase(header.getName())) { - requestedSignature - .getStatus() - .getMetaInformations() - .put(ErrorConstants.STATUS_INFO_SIGDEVICEVERSION, - header.getValue()); - } else if (ErrorConstants.STATUS_INFO_SIGDEVICE.equalsIgnoreCase(header.getName())) { - requestedSignature - .getStatus() - .getMetaInformations() - .put(ErrorConstants.STATUS_INFO_SIGDEVICE, - header.getValue()); - } - } - } - } - // Only use this profileID because validation was done in - // RequestedSignature - final String signatureProfileID = requestedSignature - .getSignatureProfileID(); - - logger.info("Selected signature Profile: " + signatureProfileID); - - // SignatureProfileConfiguration signatureProfileConfiguration = - // status - // .getSignatureProfileConfiguration(signatureProfileID); - - // this.stampPdf(status); - - // Create signature - try { - signer.signPDF(status.getPdfObject(), requestedSignature, - signer.buildSignaturInterface(status.getSignParamter().getPlainSigner(), - parameter, requestedSignature)); - - } finally { - if (parameter instanceof BKUHeaderHolder) { - final BKUHeaderHolder holder = (BKUHeaderHolder) parameter; - - final Iterator<BKUHeader> bkuHeaderIt = holder.getProcessInfo() - .iterator(); - - while (bkuHeaderIt.hasNext()) { - final BKUHeader header = bkuHeaderIt.next(); - if ("Server".equalsIgnoreCase(header.getName())) { - requestedSignature - .getStatus() - .getMetaInformations() - .put(ErrorConstants.STATUS_INFO_SIGDEVICEVERSION, - header.getValue()); - } else if (ErrorConstants.STATUS_INFO_SIGDEVICE.equalsIgnoreCase(header.getName())) { - requestedSignature - .getStatus() - .getMetaInformations() - .put(ErrorConstants.STATUS_INFO_SIGDEVICE, - header.getValue()); - } - } - } - } - // ================================================================ - // Create SignResult - final SignResult result = createSignResult(status); - - return result; - - } catch (final SLPdfAsException e) { - if (e.isCriticalError()) { - logger.warn("Failed to create signature [" + e.getMessage() + "]", e); - - } else { - logger.info("Failed to create signature [" + e.getMessage() + "]", e); - - } - throw ErrorExtractor.searchPdfAsError(e, status); - - } catch (final Throwable e) { - logger.warn("Failed to create signature [" + e.getMessage() + "]", e); - throw ErrorExtractor.searchPdfAsError(e, status); - - - } finally { - if (status != null) { - status.clear(); - - } - logger.trace("sign done"); + val state2 = state1.setCertificate( + signer.getCertificate(state1.getSignParameter())); + val state3 = state2.setSignature( + signer.sign( + state2.getSignatureData(), state2.getSignatureDataByteRange(), + state2.getSignParameter(), state2.getRequestedSignature())); + return state3.finishSign(); + } catch (final PdfAsException e) { + throw ErrorExtractor.searchPdfAsError(e, state1.getStatus()); } } @@ -277,7 +149,7 @@ public class PdfAsImpl implements PdfAs, IConfigurationConstants, if (now.after(notAfter) || now.before(notBefore)) { logger.warn("Signer certificate is not valid. notBefore:{} | notAfter:{} | now:{}", notBefore, notAfter, now); - throw new PDFASError(11021); + throw new PDFASError(ErrorConstants.ERROR_SIGNER_CERT_TIMEFRAME_INVALID); } else { return certificate; @@ -285,27 +157,30 @@ public class PdfAsImpl implements PdfAs, IConfigurationConstants, } } + private final TimedFunction verifyTimer = new TimedFunction("pdfas.verify"); @Override public List<VerifyResult> verify(VerifyParameter parameter) throws PDFASError { - verifyVerifyParameter(parameter); + return verifyTimer.timed(() -> { + verifyVerifyParameter(parameter); - // execute pre Processors - verifyPreProcessing(parameter); + // execute pre Processors + verifyPreProcessing(parameter); - // allocated Backend - final PDFASBackend backend = BackendLoader.getPDFASBackend(parameter.getConfiguration()); + // allocated Backend + final PDFASBackend backend = BackendLoader.getPDFASBackend(parameter.getConfiguration()); - if (backend == null) { - throw new PDFASError(ERROR_NO_BACKEND); - } + if (backend == null) { + throw new PDFASError(ERROR_NO_BACKEND); + } - try { - return backend.getVerifier().verify(parameter); - } catch (final Throwable e) { - throw ErrorExtractor.searchPdfAsError(e, null); - } + try { + return backend.getVerifier().verify(parameter); + } catch (final Throwable e) { + throw ErrorExtractor.searchPdfAsError(e, null); + } + }); } @Override @@ -313,12 +188,11 @@ public class PdfAsImpl implements PdfAs, IConfigurationConstants, return new ConfigurationImpl(this.settings); } + private final TimedFunction signTimer = new TimedFunction("pdfas.sign"); @Override - public StatusRequest startSign(SignParameter parameter) throws PDFASError { + public StatusRequest.Stage1 startSign(SignParameter parameter) throws PDFASError { verifySignParameter(parameter); - - final StatusRequestImpl request = new StatusRequestImpl(); OperationStatus status = null; try { // Status initialization @@ -338,138 +212,136 @@ public class PdfAsImpl implements PdfAs, IConfigurationConstants, final ISettings settings = (ISettings) parameter.getConfiguration(); status = new OperationStatus(settings, parameter, - backend); + backend, signTimer.start()); final IPdfSigner signer = backend.getPdfSigner(); status.setPdfObject(signer.buildPDFObject(status)); + status.getPdfObject().setOriginalDocument(parameter.getDataSource()); + signer.checkPDFPermissions(status.getPdfObject()); - final RequestedSignature requestedSignature = new RequestedSignature( + val requestedSignature = new RequestedSignature( status); status.setRequestedSignature(requestedSignature); - request.setStatus(status); - - request.setNeedCertificate(true); - - return request; + return StatusRequestImpl.create(this, status); } catch (final Throwable e) { + if (status != null) status.getSignTimer().finishFailure(e); logger.warn("startSign", e); throw ErrorExtractor.searchPdfAsError(e, status); } } - @Override - public StatusRequest process(StatusRequest statusRequest) throws PDFASError { - if (!(statusRequest instanceof StatusRequestImpl)) { - throw new PDFASError(ERROR_SIG_INVALID_STATUS); - } - - final StatusRequestImpl request = (StatusRequestImpl) statusRequest; + public void processCertificate(StatusRequestImpl request, X509Certificate certificate) throws PDFASError { final OperationStatus status = request.getStatus(); + try { + status.getRequestedSignature().setCertificate(certificate); + + if (request.getSignParameter() instanceof BKUHeaderHolder holder) { + + for (BKUHeader header : holder.getProcessInfo()) { + if ("Server".equalsIgnoreCase(header.getName())) { + status.getRequestedSignature() + .getStatus() + .getMetaInformations() + .put(ErrorConstants.STATUS_INFO_SIGDEVICEVERSION, + header.getValue()); + } else if (ErrorConstants.STATUS_INFO_SIGDEVICE.equalsIgnoreCase(header.getName())) { + status.getRequestedSignature() + .getStatus() + .getMetaInformations() + .put(ErrorConstants.STATUS_INFO_SIGDEVICE, + header.getValue()); + } + } + } - if (request.needCertificate()) { - try { - status.getRequestedSignature().setCertificate( - request.getCertificate()); - - // set Original PDF Document Data - status.getPdfObject().setOriginalDocument( - status.getSignParamter().getDataSource()); - - // STAMPER! - // stampPdf(status); - request.setNeedCertificate(false); - - status.setSigningDate(Calendar.getInstance()); + status.setSigningDate(Calendar.getInstance()); - // GET Signature DATA - final String pdfFilter = status.getSignParamter().getPlainSigner() - .getPDFFilter(); - final String pdfSubFilter = status.getSignParamter().getPlainSigner() - .getPDFSubFilter(); + // GET Signature DATA + final String pdfFilter = status.getSignParameter().getPlainSigner() + .getPDFFilter(); + final String pdfSubFilter = status.getSignParameter().getPlainSigner() + .getPDFSubFilter(); - final IPdfSigner signer = status.getBackend().getPdfSigner(); + final IPdfSigner signer = status.getBackend().getPdfSigner(); - final PDFASSignatureExtractor signatureDataExtractor = signer - .buildBlindSignaturInterface(request.getCertificate(), - pdfFilter, pdfSubFilter, - status.getSigningDate()); + final PDFASSignatureExtractor signatureDataExtractor = signer + .buildBlindSignaturInterface(certificate, + pdfFilter, pdfSubFilter, + status.getSigningDate()); - signer.signPDF(status.getPdfObject(), - status.getRequestedSignature(), signatureDataExtractor); + signer.signPDF(status.getPdfObject(), + status.getRequestedSignature(), signatureDataExtractor); - final StringBuilder sb = new StringBuilder(); + final StringBuilder sb = new StringBuilder(); - final int[] byteRange = PDFUtils - .extractSignatureByteRange(signatureDataExtractor - .getSignatureData()); + final int[] byteRange = PDFUtils + .extractSignatureByteRange(signatureDataExtractor + .getSignatureData()); + if (logger.isDebugEnabled()) { for (final int element : byteRange) { - sb.append(" " + element); + sb.append(" ").append(element); } - logger.debug("ByteRange: " + sb.toString()); + logger.debug("ByteRange: {}", sb); + } - request.setSignatureData(signatureDataExtractor - .getSignatureData()); - request.setByteRange(byteRange); - request.setNeedSignature(true); + request.setSignatureData(signatureDataExtractor + .getSignatureData()); + request.setByteRange(byteRange); - } catch (final Throwable e) { + } catch (final Throwable e) { + status.getSignTimer().finishFailure(e); logger.warn("process", e); throw ErrorExtractor.searchPdfAsError(e, status); - - } - } else if (request.needSignature()) { - request.setNeedSignature(false); + + } + } + + public void processSignature(StatusRequestImpl request, byte[] signatureValue) throws PDFASError { + final OperationStatus status = request.getStatus(); + try { // Inject signature byte[] into signedDocument final int offset = request.getSignatureDataByteRange()[1] + 1; final byte[] pdfSignature = status.getBackend().getPdfSigner() - .rewritePlainSignature(request.getSignature()); + .rewritePlainSignature(signatureValue); // byte[] input = // PDFUtils.blackOutSignature(status.getPdfObject().getSignedDocument(), // request.getSignatureDataByteRange()); final VerifyResult verifyResult = SignatureUtils.verifySignature( - request.getSignature(), request.getSignatureData()); + signatureValue, request.getSignatureData()); final RequestedSignature requestedSignature = request.getStatus() .getRequestedSignature(); - if (!StreamUtils.dataCompare(requestedSignature.getCertificate() - .getFingerprintSHA(), ((X509Certificate) verifyResult - .getSignerCertificate()).getFingerprintSHA())) { + if (!StreamUtils.dataCompare( + requestedSignature.getCertificate().getFingerprintSHA(), + ((X509Certificate) verifyResult.getSignerCertificate()).getFingerprintSHA() + )) { throw new PDFASError(ERROR_SIG_CERTIFICATE_MISSMATCH); } for (int i = 0; i < pdfSignature.length; i++) { status.getPdfObject().getSignedDocument()[offset + i] = pdfSignature[i]; } - request.setIsReady(true); - } else { - throw new PDFASError(ERROR_SIG_INVALID_STATUS); + } catch (final Throwable e) { + status.getSignTimer().finishFailure(e); + throw e; } - - return request; } - @Override - public SignResult finishSign(StatusRequest statusRequest) throws PDFASError { - if (!(statusRequest instanceof StatusRequestImpl)) { - throw new PDFASError(ERROR_SIG_INVALID_STATUS); - } - - final StatusRequestImpl request = (StatusRequestImpl) statusRequest; + public SignResult finishSign(StatusRequestImpl request) throws PDFASError { final OperationStatus status = request.getStatus(); - if (!request.isReady()) { - throw new PDFASError(ERROR_SIG_INVALID_STATUS); - } - try { - return createSignResult(status); + val signResult = createSignResult(status); + status.getSignTimer().finishSuccess(); + return signResult; } catch (final IOException e) { // new PdfAsException("error.pdf.sig.06", e); + status.getSignTimer().finishFailure(e); throw ErrorExtractor.searchPdfAsError(e, status); } finally { if (status != null) { @@ -549,8 +421,8 @@ public class PdfAsImpl implements PdfAs, IConfigurationConstants, // ================================================================ // Create SignResult final SignResultImpl result = new SignResultImpl(); - status.getSignParamter().getSignatureResult().write(status.getPdfObject().getSignedDocument()); - status.getSignParamter().getSignatureResult().flush(); + status.getSignParameter().getSignatureResult().write(status.getPdfObject().getSignedDocument()); + status.getSignParameter().getSignatureResult().flush(); result.setSignerCertificate(status.getRequestedSignature() .getCertificate()); result.setSignaturePosition(status.getRequestedSignature() @@ -580,7 +452,7 @@ public class PdfAsImpl implements PdfAs, IConfigurationConstants, final PDFASBackend backend = BackendLoader.getPDFASBackend(parameter.getConfiguration()); final ISettings settings = (ISettings) parameter.getConfiguration(); - status = new OperationStatus(settings, parameter, backend); + status = new OperationStatus(settings, parameter, backend, null); final IPdfSigner signer = backend.getPdfSigner(); diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsParameterImpl.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsParameterImpl.java index 1929f95e..eca361d0 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsParameterImpl.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/PdfAsParameterImpl.java @@ -27,7 +27,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.Map; -import javax.activation.DataSource; +import jakarta.activation.DataSource; import at.gv.egiz.pdfas.common.exceptions.PdfAsException; import at.gv.egiz.pdfas.common.utils.CheckSignatureBlockParameters; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/SignParameterImpl.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/SignParameterImpl.java index 06b1b34f..4a47e45b 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/SignParameterImpl.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/SignParameterImpl.java @@ -27,7 +27,7 @@ import java.io.OutputStream; import java.util.ArrayList; import java.util.List; -import javax.activation.DataSource; +import jakarta.activation.DataSource; import at.gv.egiz.pdfas.lib.api.Configuration; import at.gv.egiz.pdfas.lib.api.sign.IPlainSigner; @@ -48,7 +48,6 @@ public class SignParameterImpl extends PdfAsParameterImpl implements SignParamet @Setter protected boolean placeHolderSearchEnabled; - protected DataSource output = null; protected IPlainSigner signer = null; protected OutputStream outputStream = null; protected List<BKUHeader> processInfo = new ArrayList<BKUHeader>(); @@ -85,10 +84,9 @@ public class SignParameterImpl extends PdfAsParameterImpl implements SignParamet return this.signer; } - @Override - public OutputStream getSignatureResult() { - return outputStream; - } + @Override public void setOutputStream(OutputStream stream) { this.outputStream = stream; } + + @Override public OutputStream getSignatureResult() { return outputStream; } public List<BKUHeader> getProcessInfo() { return processInfo; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/StatusRequestImpl.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/StatusRequestImpl.java index 49b78659..c435e193 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/StatusRequestImpl.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/StatusRequestImpl.java @@ -23,6 +23,9 @@ ******************************************************************************/ package at.gv.egiz.pdfas.lib.impl; +import at.gv.egiz.pdfas.common.exceptions.PDFASError; +import at.gv.egiz.pdfas.lib.api.sign.SignResult; +import at.gv.egiz.pdfas.lib.impl.status.RequestedSignature; import iaik.x509.X509Certificate; import java.security.cert.CertificateException; @@ -30,86 +33,67 @@ import java.security.cert.CertificateException; import at.gv.egiz.pdfas.lib.api.StatusRequest; import at.gv.egiz.pdfas.lib.api.sign.SignParameter; import at.gv.egiz.pdfas.lib.impl.status.OperationStatus; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.Setter; public class StatusRequestImpl implements StatusRequest { - private boolean needCertificate = false; - private boolean needSignature = false; - private boolean isReady = false; - private X509Certificate certificate; - private byte[] encodedSignature; - private byte[] signatureData; - private int[] byteRange; - - private OperationStatus status; - - public OperationStatus getStatus() { - return status; - } - - public void setStatus(OperationStatus status) { - this.status = status; - } - - public void setSignatureData(byte[] signatureData) { - this.signatureData = signatureData; - } - - public void setByteRange(int[] byteRange) { - this.byteRange = byteRange; - } - - public X509Certificate getCertificate() { - return this.certificate; - } - - public byte[] getSignature() { - return this.encodedSignature; - } - - public void setNeedSignature(boolean value) { - this.needSignature = value; - } - - public void setNeedCertificate(boolean value) { - this.needCertificate = value; - } - - public boolean needCertificate() { - return needCertificate; - } - - public boolean needSignature() { - return needSignature; - } - - public boolean isReady() { - return isReady; - } - - public void setIsReady(boolean value) { - this.isReady = value; - } - - public byte[] getSignatureData() { - return signatureData; - } - - public int[] getSignatureDataByteRange() { - return byteRange; - } - - public void setCertificate(byte[] encodedCertificate) throws CertificateException { - this.certificate = new X509Certificate(encodedCertificate); - } - - public void setSigature(byte[] signatureValue) { - this.encodedSignature = signatureValue; - } - - public SignParameter getSignParameter() { - return this.status.getSignParamter(); - } - - + private final PdfAsImpl pdfAs; + @Getter + private final OperationStatus status; + + private StatusRequestImpl(PdfAsImpl pdfAs, OperationStatus status ) { this.pdfAs = pdfAs; this.status = status; } + static StatusRequestImpl.Stage1 create(PdfAsImpl pdfAs, OperationStatus status) { + return new StatusRequestImpl(pdfAs, status).new Stage1(); + } + + @Setter @Getter + private byte[] signatureData; + @Setter + private int[] byteRange; + + @Override public int[] getSignatureDataByteRange() { + return byteRange; + } + + @Override public SignParameter getSignParameter() { + return this.status.getSignParameter(); + } + + @Override public RequestedSignature getRequestedSignature() { return this.status.getRequestedSignature(); } + + class StageBase implements StatusRequest { + public OperationStatus getStatus() { return status; } + @Override public byte[] getSignatureData() { return signatureData; } + @Override public int[] getSignatureDataByteRange() { return byteRange; } + @Override public SignParameter getSignParameter() { return status.getSignParameter(); } + @Override public RequestedSignature getRequestedSignature() { return status.getRequestedSignature(); } + } + + class Stage1 extends StageBase implements StatusRequest.Stage1 { + public StatusRequestImpl.Stage2 setCertificate(X509Certificate certificate) throws PDFASError { + pdfAs.processCertificate(StatusRequestImpl.this, certificate); + return new StatusRequestImpl.Stage2(); + } + @Override + public StatusRequestImpl.Stage2 setCertificate(byte[] encodedCertificate) throws CertificateException, PDFASError { + return setCertificate(new X509Certificate(encodedCertificate)); + } + } + + class Stage2 extends StageBase implements StatusRequest.Stage2 { + @Override + public StatusRequestImpl.Stage3 setSignature(byte[] signatureValue) throws PDFASError { + pdfAs.processSignature(StatusRequestImpl.this, signatureValue); + return new StatusRequestImpl.Stage3(); + } + } + + class Stage3 extends StageBase implements StatusRequest.Stage3 { + @Override + public SignResult finishSign() throws PDFASError { + return pdfAs.finishSign(StatusRequestImpl.this); + } + } } diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/VerifyParameterImpl.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/VerifyParameterImpl.java index ea1da9e7..04356cfb 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/VerifyParameterImpl.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/VerifyParameterImpl.java @@ -25,7 +25,7 @@ package at.gv.egiz.pdfas.lib.impl; import java.util.Date; -import javax.activation.DataSource; +import jakarta.activation.DataSource; import at.gv.egiz.pdfas.lib.api.Configuration; import at.gv.egiz.pdfas.lib.api.verify.VerifyParameter; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/backend/BackendLoader.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/backend/BackendLoader.java index 4e00209a..d76166ed 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/backend/BackendLoader.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/backend/BackendLoader.java @@ -32,7 +32,7 @@ public class BackendLoader implements ErrorConstants { public static final String BACKEND_CONFIG = "runtime.backend"; /** The default backend. */ - private static PDFASBackend defaultBackend = null; + private static PDFASBackend defaultBackend = null; static { logger.debug("building PDF-AS Backends"); diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/placeholder/PlaceholderFilter.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/placeholder/PlaceholderFilter.java index 1615482f..665153a4 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/placeholder/PlaceholderFilter.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/placeholder/PlaceholderFilter.java @@ -44,7 +44,7 @@ public class PlaceholderFilter implements IConfigurationConstants, String signingProfile = status.getRequestedSignature().getSignatureProfileID(); - if (status.getSignParamter().isPlaceHolderSearchEnabled()) { + if (status.getSignParameter().isPlaceHolderSearchEnabled()) { if (status.getPlaceholderConfiguration().isGlobalPlaceholderEnabled()) { String defaultPlaceHolderId = settings.getValue(PLACEHOLDER_ID); return status.getBackend().getPlaceholderExtractor().extract( diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/IPdfSigner.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/IPdfSigner.java index 6a249041..774e879e 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/IPdfSigner.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/IPdfSigner.java @@ -36,21 +36,18 @@ import at.gv.egiz.pdfas.lib.impl.status.OperationStatus; import at.gv.egiz.pdfas.lib.impl.status.PDFObject; import at.gv.egiz.pdfas.lib.impl.status.RequestedSignature; -public interface IPdfSigner { +public interface IPdfSigner<PDFObjectT extends PDFObject, SignerT extends PDFASSignatureExtractor> { - PDFASSignatureInterface buildSignaturInterface(IPlainSigner signer, - SignParameter parameters, RequestedSignature requestedSignature); - - PDFASSignatureExtractor buildBlindSignaturInterface( + SignerT buildBlindSignaturInterface( X509Certificate certificate, String filter, String subfilter, Calendar date); - PDFObject buildPDFObject(OperationStatus operationStatus); + PDFObjectT buildPDFObject(OperationStatus operationStatus); - void checkPDFPermissions(PDFObject object) throws PdfAsException; + void checkPDFPermissions(PDFObjectT object) throws PdfAsException; - void signPDF(PDFObject pdfObject, RequestedSignature requestedSignature, - PDFASSignatureInterface signer) throws PdfAsException; + void signPDF(PDFObjectT pdfObject, RequestedSignature requestedSignature, + SignerT signer) throws PdfAsException; byte[] rewritePlainSignature(byte[] plainSignature); diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/CertificateAndRequestParameterResolver.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/CertificateAndRequestParameterResolver.java index dd9a396a..c6c65ccc 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/CertificateAndRequestParameterResolver.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/CertificateAndRequestParameterResolver.java @@ -29,7 +29,6 @@ import at.gv.egiz.pdfas.common.utils.DNUtils; import at.gv.egiz.pdfas.common.utils.OgnlUtils; import at.gv.egiz.pdfas.lib.impl.status.OperationStatus; import iaik.x509.X509Certificate; -import ognl.AbstractMemberAccess; import ognl.MemberAccess; import ognl.OgnlContext; import org.slf4j.Logger; @@ -78,7 +77,7 @@ public class CertificateAndRequestParameterResolver implements IResolver { this.ctx = new OgnlContext(null, null, memberAccess); this.ctx = new OgnlContext(null, null, memberAccess); - Map<String, String> map = operationStatus.getSignParamter().getDynamicSignatureBlockArguments(); + Map<String, String> map = operationStatus.getSignParameter().getDynamicSignatureBlockArguments(); if(map == null) map = new HashMap<>(); this.ctx.put(IProfileConstants.SIGNATURE_BLOCK_PARAMETER, map); diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/IPDFStamper.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/IPDFStamper.java index 22e20767..38eaf1aa 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/IPDFStamper.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/IPDFStamper.java @@ -31,10 +31,6 @@ import at.gv.egiz.pdfas.lib.impl.status.PDFObject; import at.knowcenter.wag.egov.egiz.pdf.PositioningInstruction; import at.knowcenter.wag.egov.egiz.table.Table; -public interface IPDFStamper { - public IPDFVisualObject createVisualPDFObject(PDFObject pdf, Table table) throws IOException; - public byte[] writeVisualObject(IPDFVisualObject visualObject, PositioningInstruction positioningInstruction, - byte[] pdfData, String placeholderName) throws PdfAsException; - - public void setSettings(ISettings settings); +public interface IPDFStamper<ObjectT extends PDFObject> { + public IPDFVisualObject createVisualPDFObject(ObjectT pdf, Table table) throws IOException; } diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/status/OperationStatus.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/status/OperationStatus.java index 898b7a00..3596884e 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/status/OperationStatus.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/status/OperationStatus.java @@ -35,6 +35,9 @@ import at.gv.egiz.pdfas.lib.backend.PDFASBackend; import at.gv.egiz.pdfas.lib.impl.configuration.GlobalConfiguration; import at.gv.egiz.pdfas.lib.impl.configuration.PlaceholderConfiguration; import at.gv.egiz.pdfas.lib.impl.configuration.SignatureProfileConfiguration; +import at.gv.egiz.pdfas.lib.util.TimedFunction; +import lombok.Getter; +import lombok.Setter; public class OperationStatus implements Serializable { @@ -44,24 +47,35 @@ public class OperationStatus implements Serializable { private static final long serialVersionUID = -2985007198666388528L; private SignParameter signParamter; - private PDFObject pdfObject; + @Setter + @Getter + private PDFObject pdfObject; - private ISettings configuration; + private final ISettings configuration; private PlaceholderConfiguration placeholderConfiguration = null; - private GlobalConfiguration gloablConfiguration = null; - private Map<String, SignatureProfileConfiguration> signatureProfiles = new HashMap<String, SignatureProfileConfiguration>(); + private GlobalConfiguration globalConfiguration = null; + private final Map<String, SignatureProfileConfiguration> signatureProfiles = new HashMap<String, SignatureProfileConfiguration>(); private TempFileHelper helper; - private RequestedSignature requestedSignature; - private Calendar signingDate; - private PDFASBackend backend; - private Map<String, String> metaInformations = new HashMap<String, String>(); + @Setter + @Getter + private RequestedSignature requestedSignature; + @Setter + @Getter + private Calendar signingDate; + @Getter + private final PDFASBackend backend; + @Getter + private final Map<String, String> metaInformations = new HashMap<String, String>(); + @Getter + private final TimedFunction.Context signTimer; // private HashMap<String, String> requestParameters = new HashMap<String, String>(); - public OperationStatus(ISettings configuration, SignParameter signParameter, PDFASBackend backend) { + public OperationStatus(ISettings configuration, SignParameter signParameter, PDFASBackend backend, TimedFunction.Context timer) { this.configuration = configuration; this.signParamter = signParameter; this.backend = backend; + this.signTimer = timer; helper = new TempFileHelper(configuration); } @@ -70,7 +84,7 @@ public class OperationStatus implements Serializable { if (this.helper != null) { try { this.helper.clear(); - } catch (Throwable e) { + } catch (Throwable ignored) { } } super.finalize(); @@ -82,40 +96,28 @@ public class OperationStatus implements Serializable { if (this.helper != null) { try { this.helper.clear(); - } catch (Throwable e) { + } catch (Throwable ignored) { } } if(pdfObject != null) { pdfObject.close(); } } - - public PDFASBackend getBackend() { - return backend; - } - - public RequestedSignature getRequestedSignature() { - return requestedSignature; - } - public void setRequestedSignature(RequestedSignature requestedSignature) { - this.requestedSignature = requestedSignature; - } - - public PlaceholderConfiguration getPlaceholderConfiguration() { - if (this.placeholderConfiguration == null) { - this.placeholderConfiguration = new PlaceholderConfiguration( - this.configuration); - } - return this.placeholderConfiguration; + public PlaceholderConfiguration getPlaceholderConfiguration() { + if (this.placeholderConfiguration == null) { + this.placeholderConfiguration = new PlaceholderConfiguration( + this.configuration); + } + return this.placeholderConfiguration; } public GlobalConfiguration getGlobalConfiguration() { - if (this.gloablConfiguration == null) { - this.gloablConfiguration = new GlobalConfiguration( + if (this.globalConfiguration == null) { + this.globalConfiguration = new GlobalConfiguration( this.configuration); } - return this.gloablConfiguration; + return this.globalConfiguration; } public SignatureProfileConfiguration getSignatureProfileConfiguration( @@ -134,22 +136,10 @@ public class OperationStatus implements Serializable { // ======================================================================== - public PDFObject getPdfObject() { - return pdfObject; - } - - public void setPdfObject(PDFObject pdfObject) { - this.pdfObject = pdfObject; - } - - public SignParameter getSignParamter() { + public SignParameter getSignParameter() { return signParamter; } - public void setSignParamter(SignParameter signParamter) { - this.signParamter = signParamter; - } - public TempFileHelper getTempFileHelper() { return this.helper; } @@ -158,26 +148,10 @@ public class OperationStatus implements Serializable { return this.configuration; } - public Calendar getSigningDate() { - return signingDate; + public String getTransactionId() { + if(this.signParamter != null) { + return this.signParamter.getTransactionId(); + } + return null; } - - public void setSigningDate(Calendar signingDate) { - this.signingDate = signingDate; - } - - public String getTransactionId() { - if(this.signParamter != null) { - return this.signParamter.getTransactionId(); - } - return null; - } - - public Map<String, String> getMetaInformations() { - return metaInformations; - } - -// public HashMap<String, String> getRequestParameters() { -// return requestParameters; -// } } diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/status/PDFObject.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/status/PDFObject.java index 6ba7251c..bfbb337f 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/status/PDFObject.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/status/PDFObject.java @@ -24,10 +24,9 @@ package at.gv.egiz.pdfas.lib.impl.status; import java.io.IOException; -import java.util.HashMap; import java.util.Map; -import javax.activation.DataSource; +import jakarta.activation.DataSource; public abstract class PDFObject { @@ -73,6 +72,6 @@ public abstract class PDFObject { public abstract String getPDFVersion(); public Map<String, String> getRequestParameters() { - return status.getSignParamter().getDynamicSignatureBlockArguments(); + return status.getSignParameter().getDynamicSignatureBlockArguments(); } } diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/status/RequestedSignature.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/status/RequestedSignature.java index 8226d7e9..75633f8e 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/status/RequestedSignature.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/status/RequestedSignature.java @@ -42,7 +42,7 @@ public class RequestedSignature implements ICertificateProvider { this.status = status; - String profileID = status.getSignParamter().getSignatureProfileId(); + String profileID = status.getSignParameter().getSignatureProfileId(); if(profileID == null) { profileID = status.getGlobalConfiguration().getDefaultSignatureProfile(); @@ -54,10 +54,10 @@ public class RequestedSignature implements ICertificateProvider { this.signatureProfile = profileID; - if(status.getSignParamter().getSignaturePosition() == null) { + if(status.getSignParameter().getSignaturePosition() == null) { this.tablePosition = new TablePos(); } else { - this.tablePosition = new TablePos(status.getSignParamter().getSignaturePosition()); + this.tablePosition = new TablePos(status.getSignParameter().getSignaturePosition()); } } diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/IVerifier.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/IVerifier.java index ab39f060..c1ed23e4 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/IVerifier.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/IVerifier.java @@ -10,7 +10,7 @@ import at.gv.egiz.pdfas.lib.api.verify.VerifyResult; public interface IVerifier { public List<VerifyResult> verify(byte[] signature, - byte[] signatureContent, Date verificationTime) throws PdfAsException; + SignatureInputData signedData, Date verificationTime) throws PdfAsException; public void setConfiguration(Configuration config); diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/IVerifyFilter.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/IVerifyFilter.java index 1bc56162..39756c5c 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/IVerifyFilter.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/IVerifyFilter.java @@ -31,9 +31,8 @@ import at.gv.egiz.pdfas.lib.api.Configuration; import at.gv.egiz.pdfas.lib.api.verify.VerifyResult; public interface IVerifyFilter { - public void setConfiguration(Configuration config); - public List<VerifyResult> verify(byte[] contentData, - byte[] signatureContent, Date verificationTime, - int[] byteRange, IVerifier verifier) throws PdfAsException; + public List<VerifyResult> verify(SignatureInputData signedData, + byte[] signature, Date verificationTime, + IVerifier verifier) throws PdfAsException; public List<FilterEntry> getFiters(); } diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/IntegrityVerifier.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/IntegrityVerifier.java index 3bb326fb..355de536 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/IntegrityVerifier.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/IntegrityVerifier.java @@ -29,12 +29,12 @@ public class IntegrityVerifier implements IVerifier { private static final Logger logger = LoggerFactory .getLogger(IntegrityVerifier.class); - public List<VerifyResult> verify(byte[] signature, byte[] signatureContent, + public List<VerifyResult> verify(byte[] signature, SignatureInputData inputData, Date verificationTime) throws PdfAsException { try { List<VerifyResult> result = new ArrayList<VerifyResult>(); - SignedData signedData = new SignedData(signatureContent, + SignedData signedData = new SignedData(inputData.getSignatureInputBytes(), new AlgorithmID[] { AlgorithmID.sha512, AlgorithmID.sha384, AlgorithmID.sha256, diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/SignatureInputData.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/SignatureInputData.java new file mode 100644 index 00000000..e709b506 --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/SignatureInputData.java @@ -0,0 +1,26 @@ +package at.gv.egiz.pdfas.lib.impl.verify; + +import lombok.Getter; +import lombok.NonNull; +import lombok.Value; +import lombok.val; + +import java.io.ByteArrayOutputStream; + +@Value +public class SignatureInputData { + byte[] baseData; + int[] signedByteRanges; + + @Getter(lazy = true) + byte[] signatureInputBytes = buildSignatureInputBytes(); + + private byte[] buildSignatureInputBytes() { + assert(signedByteRanges.length % 2 == 0); + val builder = new ByteArrayOutputStream(); + for (int i = 0; i < signedByteRanges.length; i += 2) { + builder.write(baseData, signedByteRanges[i], signedByteRanges[i+1]); + } + return builder.toByteArray(); + } +} diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/VerifierDispatcher.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/VerifierDispatcher.java index 26065adf..24bfb129 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/VerifierDispatcher.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/VerifierDispatcher.java @@ -128,11 +128,10 @@ public class VerifierDispatcher { for (int i = 0; i < currentClasses.length; i++) { String clsName = currentClasses[i]; Class<?> cls = Class.forName(clsName); - Object f = cls.newInstance(); + Object f = cls.getDeclaredConstructor().newInstance(); if (!(f instanceof IVerifyFilter)) throw new ClassCastException(); IVerifyFilter filter = (IVerifyFilter) f; - filter.setConfiguration((Configuration) settings); List<FilterEntry> entries = filter.getFiters(); Iterator<FilterEntry> it = entries.iterator(); while (it.hasNext()) { diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/VerifyResultImpl.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/VerifyResultImpl.java index 5eb40662..a4a22fda 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/VerifyResultImpl.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/VerifyResultImpl.java @@ -27,6 +27,8 @@ import iaik.x509.X509Certificate; import at.gv.egiz.pdfas.common.exceptions.PdfAsException; import at.gv.egiz.pdfas.lib.api.verify.SignatureCheck; import at.gv.egiz.pdfas.lib.api.verify.VerifyResult; +import lombok.Getter; +import lombok.Setter; public class VerifyResultImpl implements VerifyResult { @@ -36,7 +38,8 @@ public class VerifyResultImpl implements VerifyResult { private SignatureCheck certificateCheck; private SignatureCheck valueCheck; private SignatureCheck manifestCheck; - private byte[] signatureData; + @Setter @Getter + private SignatureInputData signatureData; private X509Certificate signerCertificate; public boolean isVerificationDone() { @@ -95,12 +98,4 @@ public class VerifyResultImpl implements VerifyResult { this.signerCertificate = signerCertificate; } - public void setSignatureData(byte[] signaturData) { - this.signatureData = signaturData; - } - - public byte[] getSignatureData() { - return signatureData; - } - } diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/settings/Settings.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/settings/Settings.java index 8138f061..68c150a0 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/settings/Settings.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/settings/Settings.java @@ -89,8 +89,9 @@ public class Settings implements ISettings, IProfileConstants { contextFolder = includeInstruction.getParentFile(); final String includeName = includeInstruction.getName(); - final WildcardFileFilter fileFilter = new WildcardFileFilter( - includeName, IOCase.SENSITIVE); + + final WildcardFileFilter fileFilter = WildcardFileFilter.builder() + .setWildcards(includeName).setIoCase(IOCase.SENSITIVE).get(); Collection<File> includeFiles = null; if (contextFolder != null && contextFolder.exists() diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/util/SignatureUtils.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/util/SignatureUtils.java index 6282d9c1..09879071 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/util/SignatureUtils.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/util/SignatureUtils.java @@ -23,6 +23,10 @@ import iaik.x509.X509Certificate; public class SignatureUtils implements ErrorConstants { private static final Logger logger = LoggerFactory.getLogger(SignatureUtils.class); + /** + * Verifies the CMS signature for the given input. + * Throws if the signature is invalid. + */ public static VerifyResult verifySignature(byte[] signature, byte[] input) throws PDFASError { // List<VerifyResult> results = new ArrayList<VerifyResult>(); diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/util/TimedFunction.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/util/TimedFunction.java new file mode 100644 index 00000000..243b2ce2 --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/util/TimedFunction.java @@ -0,0 +1,44 @@ +package at.gv.egiz.pdfas.lib.util; + +import at.gv.egiz.pdfas.common.exceptions.PDFASError; +import io.micrometer.core.instrument.Metrics; +import io.micrometer.core.instrument.Timer; +import lombok.val; + +public class TimedFunction { + public interface ThrowingCallable<S, T extends Throwable> { + S invoke() throws T; + } + + private final String timerName; + private final Timer successTimer; + public TimedFunction(String timerName) { + this.timerName = timerName; + this.successTimer = Metrics.timer(timerName, "status", "success"); + } + + public <S,T extends Throwable> S timed(ThrowingCallable<S, T> fn) throws T { + val timer = start(); + try { + S result = fn.invoke(); + timer.finishSuccess(); + return result; + } catch (final Throwable ex) { + timer.finishFailure(ex); + throw ex; + } + } + + public class Context { + final Timer.Sample timer = Timer.start(); + public void finishSuccess() { timer.stop(successTimer); } + public void finishFailure(Throwable ex) { + if (ex instanceof PDFASError e) { + Metrics.timer(timerName, "status", "failure", "exception", e.getClass().getName(), "errorCode", Long.toString(e.getCode())); + } else { + Metrics.timer(timerName, "status", "failure", "exception", ex.getClass().getName()); + } + } + } + public Context start() { return new Context(); } +} diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/APDUATRType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/APDUATRType.java index fc83b5c9..84554fa8 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/APDUATRType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/APDUATRType.java @@ -32,11 +32,11 @@ package at.gv.egiz.sl.schema; import java.math.BigInteger; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.XmlValue; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlValue; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/APDUResponseElement.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/APDUResponseElement.java index 34c459db..a0bf6ef6 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/APDUResponseElement.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/APDUResponseElement.java @@ -33,11 +33,11 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlElements; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlElements; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/AccessAuthorizationType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/AccessAuthorizationType.java index 38b9a5cd..4e98fe07 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/AccessAuthorizationType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/AccessAuthorizationType.java @@ -33,11 +33,11 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/AllSignatoriesType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/AllSignatoriesType.java index c510bf11..4d3c1f55 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/AllSignatoriesType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/AllSignatoriesType.java @@ -31,9 +31,9 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlEnum; -import javax.xml.bind.annotation.XmlEnumValue; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlEnumValue; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/AnyChildrenType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/AnyChildrenType.java index fe49bac5..2097c4fc 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/AnyChildrenType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/AnyChildrenType.java @@ -33,11 +33,11 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/AnyMixedChildrenType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/AnyMixedChildrenType.java index 50397562..8369aabd 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/AnyMixedChildrenType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/AnyMixedChildrenType.java @@ -33,12 +33,12 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlMixed; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlMixed; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ApplicationIdentifierType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ApplicationIdentifierType.java index 30dfc4aa..953ed2e0 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ApplicationIdentifierType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ApplicationIdentifierType.java @@ -31,9 +31,9 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlEnum; -import javax.xml.bind.annotation.XmlEnumValue; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlEnumValue; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/AuthenticationClassType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/AuthenticationClassType.java index a3090758..cad11c0a 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/AuthenticationClassType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/AuthenticationClassType.java @@ -31,9 +31,9 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlEnum; -import javax.xml.bind.annotation.XmlEnumValue; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlEnumValue; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64ContentType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64ContentType.java index 9cb483c9..8bc49a4d 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64ContentType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64ContentType.java @@ -31,11 +31,11 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64OptRefContentType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64OptRefContentType.java index 640baa4f..b5c59e3c 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64OptRefContentType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64OptRefContentType.java @@ -31,11 +31,11 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64XMLContentType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64XMLContentType.java index b9e109fa..445ee5c5 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64XMLContentType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64XMLContentType.java @@ -31,11 +31,11 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64XMLLocRefContentType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64XMLLocRefContentType.java index d24ed6eb..025c154d 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64XMLLocRefContentType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64XMLLocRefContentType.java @@ -31,12 +31,12 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64XMLLocRefOptRefContentType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64XMLLocRefOptRefContentType.java index 076021c9..4e1eabca 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64XMLLocRefOptRefContentType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64XMLLocRefOptRefContentType.java @@ -31,11 +31,11 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64XMLLocRefReqRefContentType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64XMLLocRefReqRefContentType.java index c0493535..bedc07d4 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64XMLLocRefReqRefContentType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64XMLLocRefReqRefContentType.java @@ -31,11 +31,11 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64XMLOptRefContentType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64XMLOptRefContentType.java index 473216ee..46a7a71e 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64XMLOptRefContentType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/Base64XMLOptRefContentType.java @@ -31,11 +31,11 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/BindingType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/BindingType.java index 0a71c0ec..47bb8664 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/BindingType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/BindingType.java @@ -31,13 +31,13 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CMSDataObjectOptionalMetaType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CMSDataObjectOptionalMetaType.java index cd5c1247..9c45be51 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CMSDataObjectOptionalMetaType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CMSDataObjectOptionalMetaType.java @@ -31,11 +31,11 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CMSDataObjectRequiredMetaType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CMSDataObjectRequiredMetaType.java index 9e3bd7b3..8cffd03f 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CMSDataObjectRequiredMetaType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CMSDataObjectRequiredMetaType.java @@ -31,9 +31,9 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CMSEncryptedContentType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CMSEncryptedContentType.java index d747c06c..09f244aa 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CMSEncryptedContentType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CMSEncryptedContentType.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CMSRecipientPublicKeyType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CMSRecipientPublicKeyType.java index 642d908d..c7c0b6c4 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CMSRecipientPublicKeyType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CMSRecipientPublicKeyType.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CMSToBeEncryptedType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CMSToBeEncryptedType.java index 6471fb0f..afb45a10 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CMSToBeEncryptedType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CMSToBeEncryptedType.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CanonicalizationMethodType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CanonicalizationMethodType.java index 6da5fa4e..ee4db831 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CanonicalizationMethodType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CanonicalizationMethodType.java @@ -33,13 +33,13 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlMixed; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlMixed; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardActionElement.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardActionElement.java index 7158b1f6..74fb6633 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardActionElement.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardActionElement.java @@ -31,11 +31,11 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.XmlValue; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlValue; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardActionResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardActionResponseType.java index b9d01e6a..6c9b09fa 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardActionResponseType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardActionResponseType.java @@ -31,9 +31,9 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlEnum; -import javax.xml.bind.annotation.XmlEnumValue; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlEnumValue; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardActionType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardActionType.java index d7f1799b..9c13e144 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardActionType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardActionType.java @@ -31,9 +31,9 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlEnum; -import javax.xml.bind.annotation.XmlEnumValue; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlEnumValue; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardChannelRequest.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardChannelRequest.java index 4402c3e3..254890d5 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardChannelRequest.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardChannelRequest.java @@ -31,11 +31,11 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardChannelResponse.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardChannelResponse.java index 428413c6..11dffa71 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardChannelResponse.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardChannelResponse.java @@ -31,11 +31,11 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardManagementRequest.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardManagementRequest.java index 4ed90e80..5c3fe7c2 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardManagementRequest.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardManagementRequest.java @@ -33,11 +33,11 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardManagementResponse.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardManagementResponse.java index e75c0c34..c286e660 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardManagementResponse.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CardManagementResponse.java @@ -33,11 +33,11 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CheckResultType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CheckResultType.java index ae21e390..55228892 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CheckResultType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CheckResultType.java @@ -32,11 +32,11 @@ package at.gv.egiz.sl.schema; import java.math.BigInteger; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CommandAPDUType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CommandAPDUType.java index cbdbf0ff..7afb4374 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CommandAPDUType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CommandAPDUType.java @@ -32,11 +32,11 @@ package at.gv.egiz.sl.schema; import java.math.BigInteger; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.XmlValue; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlValue; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateCMSSignatureRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateCMSSignatureRequestType.java index 3046b109..955d36bb 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateCMSSignatureRequestType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateCMSSignatureRequestType.java @@ -33,13 +33,13 @@ package at.gv.egiz.sl.schema; //import com.sun.org.apache.xpath.internal.operations.Bool; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateCMSSignatureResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateCMSSignatureResponseType.java index 24963850..38fb3f6a 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateCMSSignatureResponseType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateCMSSignatureResponseType.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateHashInfoRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateHashInfoRequestType.java index 4e424562..81000279 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateHashInfoRequestType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateHashInfoRequestType.java @@ -31,12 +31,12 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateHashInfoResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateHashInfoResponseType.java index 4b4100db..1c814fc5 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateHashInfoResponseType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateHashInfoResponseType.java @@ -31,11 +31,11 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateHashRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateHashRequestType.java index 602beec0..0f8325a8 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateHashRequestType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateHashRequestType.java @@ -33,10 +33,10 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateHashResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateHashResponseType.java index da447791..a818db30 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateHashResponseType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateHashResponseType.java @@ -33,10 +33,10 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateXMLSignatureRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateXMLSignatureRequestType.java index eec48374..3a1e610c 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateXMLSignatureRequestType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateXMLSignatureRequestType.java @@ -33,12 +33,12 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateXMLSignatureResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateXMLSignatureResponseType.java index 92927be8..8b0be71d 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateXMLSignatureResponseType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/CreateXMLSignatureResponseType.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DSAKeyValueType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DSAKeyValueType.java index 68ac3965..e9716da0 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DSAKeyValueType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DSAKeyValueType.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DataObjectAssociationType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DataObjectAssociationType.java index 336553ec..7587e8b1 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DataObjectAssociationType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DataObjectAssociationType.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DataObjectInfoType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DataObjectInfoType.java index 77be232c..a9003118 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DataObjectInfoType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DataObjectInfoType.java @@ -33,11 +33,11 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DecryptCMSRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DecryptCMSRequestType.java index f28fb647..0947fba5 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DecryptCMSRequestType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DecryptCMSRequestType.java @@ -31,11 +31,11 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DecryptCMSResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DecryptCMSResponseType.java index ddc5b491..c54c5514 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DecryptCMSResponseType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DecryptCMSResponseType.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DecryptXMLRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DecryptXMLRequestType.java index f923cb73..ee0f881a 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DecryptXMLRequestType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DecryptXMLRequestType.java @@ -33,11 +33,11 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DecryptXMLResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DecryptXMLResponseType.java index de1a8101..8629bd9b 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DecryptXMLResponseType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DecryptXMLResponseType.java @@ -33,13 +33,13 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.XmlValue; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlValue; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DigestMethodType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DigestMethodType.java index 6f179c0b..2cfb8baf 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DigestMethodType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/DigestMethodType.java @@ -33,13 +33,13 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlMixed; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlMixed; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptCMSRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptCMSRequestType.java index 88acd2ee..64da724f 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptCMSRequestType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptCMSRequestType.java @@ -33,11 +33,11 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptCMSResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptCMSResponseType.java index 2d42b287..e0f65ead 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptCMSResponseType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptCMSResponseType.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptXMLRequest.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptXMLRequest.java index 20f23949..50789a72 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptXMLRequest.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptXMLRequest.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptXMLRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptXMLRequestType.java index a4e8c5d6..6c853a81 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptXMLRequestType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptXMLRequestType.java @@ -33,11 +33,11 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptXMLResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptXMLResponseType.java index 2376126b..1ceb5862 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptXMLResponseType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptXMLResponseType.java @@ -33,11 +33,11 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptedDataType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptedDataType.java index b7057d23..042a2854 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptedDataType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptedDataType.java @@ -31,12 +31,12 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.XmlValue; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlValue; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptionInfoType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptionInfoType.java index 903f839e..826c6788 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptionInfoType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/EncryptionInfoType.java @@ -34,14 +34,14 @@ package at.gv.egiz.sl.schema; import java.math.BigInteger; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ErrorResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ErrorResponseType.java index f3fa78f6..6073c1cf 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ErrorResponseType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ErrorResponseType.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ExcludedByteRangeType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ExcludedByteRangeType.java index 25dc41d2..26b1ab2a 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ExcludedByteRangeType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ExcludedByteRangeType.java @@ -32,11 +32,11 @@ package at.gv.egiz.sl.schema; import java.math.BigInteger; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/GetPropertiesRequest.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/GetPropertiesRequest.java index 8e3f420b..f63bc2cb 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/GetPropertiesRequest.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/GetPropertiesRequest.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/GetPropertiesRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/GetPropertiesRequestType.java index 7d934df0..c4ad0ad3 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/GetPropertiesRequestType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/GetPropertiesRequestType.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/GetPropertiesResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/GetPropertiesResponseType.java index b2ee79a4..5b7cccef 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/GetPropertiesResponseType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/GetPropertiesResponseType.java @@ -33,14 +33,14 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/GetStatusRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/GetStatusRequestType.java index 1a9f04e8..2c843064 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/GetStatusRequestType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/GetStatusRequestType.java @@ -32,11 +32,11 @@ package at.gv.egiz.sl.schema; import java.math.BigInteger; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/GetStatusResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/GetStatusResponseType.java index af624747..65816a85 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/GetStatusResponseType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/GetStatusResponseType.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/HashDataType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/HashDataType.java index 8e35bc85..e7f56396 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/HashDataType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/HashDataType.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxAssocArrayPairType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxAssocArrayPairType.java index 49dbf602..54c90e00 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxAssocArrayPairType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxAssocArrayPairType.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxAvailableRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxAvailableRequestType.java index f6836868..ef23802e 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxAvailableRequestType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxAvailableRequestType.java @@ -31,9 +31,9 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxAvailableResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxAvailableResponseType.java index f09ce092..ee88693d 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxAvailableResponseType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxAvailableResponseType.java @@ -33,12 +33,12 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxCreateRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxCreateRequestType.java index 8cc8e2ae..ec4909cb 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxCreateRequestType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxCreateRequestType.java @@ -31,12 +31,12 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxCreateResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxCreateResponseType.java index 07288073..93e43102 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxCreateResponseType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxCreateResponseType.java @@ -31,9 +31,9 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxDeleteRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxDeleteRequestType.java index abcc10a8..e87da554 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxDeleteRequestType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxDeleteRequestType.java @@ -31,12 +31,12 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxDeleteResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxDeleteResponseType.java index 7fed6cb8..0352412a 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxDeleteResponseType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxDeleteResponseType.java @@ -31,9 +31,9 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxReadDataAssocArrayType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxReadDataAssocArrayType.java index 9fa35c96..99d21369 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxReadDataAssocArrayType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxReadDataAssocArrayType.java @@ -33,12 +33,12 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxReadParamsAssocArrayType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxReadParamsAssocArrayType.java index ac1bd406..a9c9c565 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxReadParamsAssocArrayType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxReadParamsAssocArrayType.java @@ -31,13 +31,13 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxReadParamsBinaryFileType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxReadParamsBinaryFileType.java index d3a1789e..c9ece684 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxReadParamsBinaryFileType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxReadParamsBinaryFileType.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxReadRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxReadRequestType.java index c7fb5432..b0ddfe99 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxReadRequestType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxReadRequestType.java @@ -31,12 +31,12 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxReadResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxReadResponseType.java index a96acfe1..066895c8 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxReadResponseType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxReadResponseType.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxTypeType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxTypeType.java index ef12e13f..dd72b95d 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxTypeType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxTypeType.java @@ -31,9 +31,9 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlEnum; -import javax.xml.bind.annotation.XmlEnumValue; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlEnumValue; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxUpdateParamsAssocArrayType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxUpdateParamsAssocArrayType.java index 99c46ada..755f8ef6 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxUpdateParamsAssocArrayType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxUpdateParamsAssocArrayType.java @@ -31,14 +31,14 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxUpdateRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxUpdateRequestType.java index e3303fdc..0b3165cd 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxUpdateRequestType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxUpdateRequestType.java @@ -31,12 +31,12 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxUpdateResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxUpdateResponseType.java index 3311a767..b404692b 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxUpdateResponseType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/InfoboxUpdateResponseType.java @@ -31,9 +31,9 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/KeyInfoType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/KeyInfoType.java index 65b749be..0ab02abb 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/KeyInfoType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/KeyInfoType.java @@ -33,19 +33,19 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElementRef; -import javax.xml.bind.annotation.XmlElementRefs; -import javax.xml.bind.annotation.XmlID; -import javax.xml.bind.annotation.XmlMixed; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElementRef; +import jakarta.xml.bind.annotation.XmlElementRefs; +import jakarta.xml.bind.annotation.XmlID; +import jakarta.xml.bind.annotation.XmlMixed; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.w3c.dom.Element; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/KeyValueType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/KeyValueType.java index 8d23b6c4..fa9ddefa 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/KeyValueType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/KeyValueType.java @@ -33,14 +33,14 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElementRef; -import javax.xml.bind.annotation.XmlElementRefs; -import javax.xml.bind.annotation.XmlMixed; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlElementRef; +import jakarta.xml.bind.annotation.XmlElementRefs; +import jakarta.xml.bind.annotation.XmlMixed; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ManifestRefsCheckResultInfoType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ManifestRefsCheckResultInfoType.java index 692adecb..358cb9c1 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ManifestRefsCheckResultInfoType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ManifestRefsCheckResultInfoType.java @@ -34,14 +34,14 @@ package at.gv.egiz.sl.schema; import java.math.BigInteger; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElementRef; -import javax.xml.bind.annotation.XmlElementRefs; -import javax.xml.bind.annotation.XmlMixed; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlElementRef; +import jakarta.xml.bind.annotation.XmlElementRefs; +import jakarta.xml.bind.annotation.XmlMixed; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ManifestRefsCheckResultType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ManifestRefsCheckResultType.java index 1093de97..5ec2c548 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ManifestRefsCheckResultType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ManifestRefsCheckResultType.java @@ -32,11 +32,11 @@ package at.gv.egiz.sl.schema; import java.math.BigInteger; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ManifestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ManifestType.java index d2bfa862..2755d80b 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ManifestType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ManifestType.java @@ -33,15 +33,15 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlID; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlID; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/MetaInfoType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/MetaInfoType.java index 662626ec..7fab33ad 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/MetaInfoType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/MetaInfoType.java @@ -33,13 +33,13 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/NullOperationRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/NullOperationRequestType.java index 6d594ce1..35013073 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/NullOperationRequestType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/NullOperationRequestType.java @@ -31,9 +31,9 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/NullOperationResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/NullOperationResponseType.java index bb8dfbb8..85137bf3 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/NullOperationResponseType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/NullOperationResponseType.java @@ -31,9 +31,9 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ObjectFactory.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ObjectFactory.java index 6c40088b..6ea7aaf1 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ObjectFactory.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ObjectFactory.java @@ -32,9 +32,9 @@ package at.gv.egiz.sl.schema; import java.math.BigInteger; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlElementDecl; -import javax.xml.bind.annotation.XmlRegistry; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlElementDecl; +import jakarta.xml.bind.annotation.XmlRegistry; import javax.xml.namespace.QName; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ObjectType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ObjectType.java index de7cb503..00be46eb 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ObjectType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ObjectType.java @@ -33,16 +33,16 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlID; -import javax.xml.bind.annotation.XmlMixed; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlID; +import jakarta.xml.bind.annotation.XmlMixed; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.w3c.dom.Element; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/PGPDataType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/PGPDataType.java index 6a33f3f8..131393e9 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/PGPDataType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/PGPDataType.java @@ -33,13 +33,13 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElementRef; -import javax.xml.bind.annotation.XmlElementRefs; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlElementRef; +import jakarta.xml.bind.annotation.XmlElementRefs; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/QualifiedBoxIdentifierType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/QualifiedBoxIdentifierType.java index 65d1cffb..07c4a772 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/QualifiedBoxIdentifierType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/QualifiedBoxIdentifierType.java @@ -31,13 +31,13 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.XmlValue; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlValue; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/RSAKeyValueType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/RSAKeyValueType.java index 11fced4b..d01ebc2f 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/RSAKeyValueType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/RSAKeyValueType.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ReferenceType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ReferenceType.java index 576a4e12..1bc14106 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ReferenceType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ReferenceType.java @@ -31,15 +31,15 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlID; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlID; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ReferencesCheckResultInfoType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ReferencesCheckResultInfoType.java index 53847b71..3c4eada6 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ReferencesCheckResultInfoType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ReferencesCheckResultInfoType.java @@ -34,13 +34,13 @@ package at.gv.egiz.sl.schema; import java.math.BigInteger; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElementRef; -import javax.xml.bind.annotation.XmlMixed; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlElementRef; +import jakarta.xml.bind.annotation.XmlMixed; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ReferencesCheckResultType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ReferencesCheckResultType.java index e98e9a58..7942f1fd 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ReferencesCheckResultType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ReferencesCheckResultType.java @@ -32,11 +32,11 @@ package at.gv.egiz.sl.schema; import java.math.BigInteger; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/RequesterIDType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/RequesterIDType.java index 23b15d7c..1850b625 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/RequesterIDType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/RequesterIDType.java @@ -31,11 +31,11 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.XmlValue; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlValue; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ResetColdType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ResetColdType.java index 19368057..315d7089 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ResetColdType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ResetColdType.java @@ -31,9 +31,9 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlEnum; -import javax.xml.bind.annotation.XmlEnumValue; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlEnumValue; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ResetType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ResetType.java index 25571cb7..2c799a26 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ResetType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ResetType.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ResponseAPDUType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ResponseAPDUType.java index 748c086d..f6bd7a74 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ResponseAPDUType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ResponseAPDUType.java @@ -32,11 +32,11 @@ package at.gv.egiz.sl.schema; import java.math.BigInteger; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.XmlValue; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlValue; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ResultApplElement.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ResultApplElement.java index f7071ce4..9f899179 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ResultApplElement.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ResultApplElement.java @@ -32,10 +32,10 @@ package at.gv.egiz.sl.schema; import java.math.BigInteger; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ResultElement.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ResultElement.java index 0d511989..a43b07cd 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ResultElement.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ResultElement.java @@ -32,10 +32,10 @@ package at.gv.egiz.sl.schema; import java.math.BigInteger; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/RetrievalMethodType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/RetrievalMethodType.java index 1210281b..b67441a1 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/RetrievalMethodType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/RetrievalMethodType.java @@ -31,12 +31,12 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ReturnResultType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ReturnResultType.java index bb44dd60..aae69173 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ReturnResultType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ReturnResultType.java @@ -31,9 +31,9 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlEnum; -import javax.xml.bind.annotation.XmlEnumValue; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlEnumValue; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SPKIDataType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SPKIDataType.java index 95ef23d5..bdf6daa6 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SPKIDataType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SPKIDataType.java @@ -33,12 +33,12 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElementRef; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlElementRef; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ScriptElement.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ScriptElement.java index 16591576..cc88c43a 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ScriptElement.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ScriptElement.java @@ -33,11 +33,11 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlElements; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlElements; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignatureInfoCreationType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignatureInfoCreationType.java index f0c0cdc6..f69ce01c 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignatureInfoCreationType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignatureInfoCreationType.java @@ -34,15 +34,15 @@ package at.gv.egiz.sl.schema; import java.math.BigInteger; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.XmlValue; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlValue; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignatureInfoVerificationType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignatureInfoVerificationType.java index 6fc8a860..da7f27fd 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignatureInfoVerificationType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignatureInfoVerificationType.java @@ -31,13 +31,13 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignatureMethodType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignatureMethodType.java index abf3db54..14afea57 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignatureMethodType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignatureMethodType.java @@ -34,15 +34,15 @@ package at.gv.egiz.sl.schema; import java.math.BigInteger; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElementRef; -import javax.xml.bind.annotation.XmlMixed; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElementRef; +import jakarta.xml.bind.annotation.XmlMixed; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignaturePropertiesType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignaturePropertiesType.java index 749a5308..3eff70fb 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignaturePropertiesType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignaturePropertiesType.java @@ -33,15 +33,15 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlID; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlID; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignaturePropertyType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignaturePropertyType.java index ec580768..17ab7096 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignaturePropertyType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignaturePropertyType.java @@ -33,16 +33,16 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlID; -import javax.xml.bind.annotation.XmlMixed; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlID; +import jakarta.xml.bind.annotation.XmlMixed; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.w3c.dom.Element; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignatureType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignatureType.java index 78d98b08..c8d3170c 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignatureType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignatureType.java @@ -33,15 +33,15 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlID; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlID; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignatureValueType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignatureValueType.java index 27801d15..0254a5c9 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignatureValueType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignatureValueType.java @@ -31,15 +31,15 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlID; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.XmlValue; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlID; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlValue; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignedInfoType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignedInfoType.java index c7c93520..17f7cfc8 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignedInfoType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/SignedInfoType.java @@ -33,15 +33,15 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlID; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlID; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ToBeEncryptedType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ToBeEncryptedType.java index ba1b6502..d61b2eac 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ToBeEncryptedType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/ToBeEncryptedType.java @@ -31,14 +31,14 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/TokenStatusType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/TokenStatusType.java index 64fcee0d..9281a4c8 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/TokenStatusType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/TokenStatusType.java @@ -31,9 +31,9 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlEnum; -import javax.xml.bind.annotation.XmlEnumValue; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlEnumValue; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/TransformType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/TransformType.java index dda24b88..16cc8db1 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/TransformType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/TransformType.java @@ -33,15 +33,15 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElementRef; -import javax.xml.bind.annotation.XmlMixed; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElementRef; +import jakarta.xml.bind.annotation.XmlMixed; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/TransformsInfoType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/TransformsInfoType.java index 99bb1207..eb79c520 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/TransformsInfoType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/TransformsInfoType.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/TransformsType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/TransformsType.java index 59e1bdb6..37334700 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/TransformsType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/TransformsType.java @@ -33,10 +33,10 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/UserConfirmationSimpleType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/UserConfirmationSimpleType.java index 85d5fed4..d0c10f60 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/UserConfirmationSimpleType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/UserConfirmationSimpleType.java @@ -31,9 +31,9 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlEnum; -import javax.xml.bind.annotation.XmlEnumValue; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlEnumValue; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/UserConfirmationType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/UserConfirmationType.java index c8a4f706..723f8e69 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/UserConfirmationType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/UserConfirmationType.java @@ -31,11 +31,11 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.XmlValue; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlValue; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerificationResultType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerificationResultType.java index 6d61e1c1..13f6b9c9 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerificationResultType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerificationResultType.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyCMSSignatureRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyCMSSignatureRequestType.java index c607c002..140b3766 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyCMSSignatureRequestType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyCMSSignatureRequestType.java @@ -33,12 +33,12 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; import javax.xml.datatype.XMLGregorianCalendar; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyCMSSignatureResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyCMSSignatureResponseType.java index 504023fb..bead821f 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyCMSSignatureResponseType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyCMSSignatureResponseType.java @@ -33,12 +33,12 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElementRef; -import javax.xml.bind.annotation.XmlElementRefs; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElementRef; +import jakarta.xml.bind.annotation.XmlElementRefs; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyHashInfoRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyHashInfoRequestType.java index d076014a..6c087249 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyHashInfoRequestType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyHashInfoRequestType.java @@ -31,11 +31,11 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyHashRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyHashRequestType.java index 1ca9b7f7..9dd0fad2 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyHashRequestType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyHashRequestType.java @@ -33,10 +33,10 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyHashResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyHashResponseType.java index c9dad911..af987cf6 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyHashResponseType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyHashResponseType.java @@ -33,10 +33,10 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyXMLSignatureRequestType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyXMLSignatureRequestType.java index 799c1628..28d78dcd 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyXMLSignatureRequestType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyXMLSignatureRequestType.java @@ -33,11 +33,11 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; import javax.xml.datatype.XMLGregorianCalendar; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyXMLSignatureResponseType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyXMLSignatureResponseType.java index 17121cd7..05ab3dc8 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyXMLSignatureResponseType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/VerifyXMLSignatureResponseType.java @@ -33,10 +33,10 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/X509DataType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/X509DataType.java index d377fb74..7fbf54ac 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/X509DataType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/X509DataType.java @@ -33,13 +33,13 @@ package at.gv.egiz.sl.schema; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElementRef; -import javax.xml.bind.annotation.XmlElementRefs; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlElementRef; +import jakarta.xml.bind.annotation.XmlElementRefs; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/X509IssuerSerialType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/X509IssuerSerialType.java index c0fec8a2..1b8da46b 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/X509IssuerSerialType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/X509IssuerSerialType.java @@ -32,10 +32,10 @@ package at.gv.egiz.sl.schema; import java.math.BigInteger; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/XMLContentType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/XMLContentType.java index 905109e1..ded3cac0 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/XMLContentType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/XMLContentType.java @@ -31,12 +31,12 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/XMLRecipientPublicKeyType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/XMLRecipientPublicKeyType.java index cf6c2329..9e3fa7de 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/XMLRecipientPublicKeyType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/XMLRecipientPublicKeyType.java @@ -31,10 +31,10 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/XMLToBeEncryptedNewContentType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/XMLToBeEncryptedNewContentType.java index c670b020..f7d2a69f 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/XMLToBeEncryptedNewContentType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/XMLToBeEncryptedNewContentType.java @@ -31,11 +31,11 @@ package at.gv.egiz.sl.schema; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/XMLToBeEncryptedNewType.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/XMLToBeEncryptedNewType.java index 4d61fcb2..93bc55a9 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/XMLToBeEncryptedNewType.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/XMLToBeEncryptedNewType.java @@ -32,14 +32,14 @@ package at.gv.egiz.sl.schema; import java.math.BigInteger; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/package-info.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/package-info.java index fde7efcd..5a1cd429 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/package-info.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/schema/package-info.java @@ -28,5 +28,5 @@ // Generated on: 2014.04.22 at 04:01:10 PM CEST // -@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.buergerkarte.at/namespaces/securitylayer/1.2#", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) +@jakarta.xml.bind.annotation.XmlSchema(namespace = "http://www.buergerkarte.at/namespaces/securitylayer/1.2#", elementFormDefault = jakarta.xml.bind.annotation.XmlNsForm.QUALIFIED) package at.gv.egiz.sl.schema; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/BKUSLConnector.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/BKUSLConnector.java index 2e5c972f..72aa1204 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/BKUSLConnector.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/BKUSLConnector.java @@ -30,8 +30,8 @@ import java.nio.charset.Charset; import java.util.regex.Matcher; import java.util.regex.Pattern; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.JAXBException; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.JAXBException; import org.apache.http.Header; import org.apache.http.HttpResponse; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/SLMarschaller.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/SLMarschaller.java index 8b9991fd..e25dba72 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/SLMarschaller.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl/util/SLMarschaller.java @@ -28,10 +28,10 @@ import java.io.OutputStream; import java.io.StringReader; import java.io.StringWriter; -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBException; -import javax.xml.bind.Marshaller; -import javax.xml.bind.Unmarshaller; +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.JAXBException; +import jakarta.xml.bind.Marshaller; +import jakarta.xml.bind.Unmarshaller; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/sl20/utils/SL20JSONExtractorUtils.java b/pdf-as-lib/src/main/java/at/gv/egiz/sl20/utils/SL20JSONExtractorUtils.java index 8eb7211f..03c7b0a1 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/sl20/utils/SL20JSONExtractorUtils.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/sl20/utils/SL20JSONExtractorUtils.java @@ -231,11 +231,10 @@ public class SL20JSONExtractorUtils { //dummy code try { String[] signedPayload = encryptedResult.toString().split("\\."); - JsonElement payLoad = new JsonParser().parse(new String(Base64Url.decodeToUtf8String(signedPayload[1]))); - return payLoad; + return JsonParser.parseString(Base64Url.decodeToUtf8String(signedPayload[1])); } catch (Exception e1) { - log.debug("DummyCode FAILED, Reason: " + e1.getMessage() + " Ignore it ..."); + log.debug("DummyCode FAILED, Reason: {} Ignore it ...", e1.getMessage()); throw new SL20Exception(e.getMessage(), e); } @@ -290,7 +289,7 @@ public class SL20JSONExtractorUtils { + " Starting backup process ... "); String[] split = sl20SignedPayload.getAsString().split("\\."); if (split.length == 3) { - JsonElement payLoad = new JsonParser().parse(new String(Base64Url.decodeToUtf8String(split[1]))); + JsonElement payLoad = JsonParser.parseString(Base64Url.decodeToUtf8String(split[1])); log.info("Signature verification FAILED with reason: " + e.getMessage() + " Use plain result as it is"); return new VerificationResult(payLoad.getAsJsonObject()); @@ -308,7 +307,7 @@ public class SL20JSONExtractorUtils { log.info("Received signed SL20 response, but verification IS NOT required and NOT CONFIGURATED. Skip signature verification ... "); String[] split = sl20SignedPayload.getAsString().split("\\."); if (split.length == 3) { - JsonElement payLoad = new JsonParser().parse(new String(Base64Url.decodeToUtf8String(split[1]))); + JsonElement payLoad = JsonParser.parseString(Base64Url.decodeToUtf8String(split[1])); return new VerificationResult(payLoad.getAsJsonObject()); } else { @@ -345,7 +344,7 @@ public class SL20JSONExtractorUtils { } String sl20RespString = new URIBuilder(locationHeader[0].getValue()).getQueryParams().get(0).getValue(); - sl20Resp = new JsonParser().parse(Base64Url.encode((sl20RespString.getBytes()))).getAsJsonObject(); + sl20Resp = JsonParser.parseString(Base64Url.encode((sl20RespString.getBytes()))).getAsJsonObject(); } else if (httpResp.getStatusLine().getStatusCode() == 200) { if (!httpResp.getEntity().getContentType().getValue().startsWith("application/json")) { @@ -383,7 +382,7 @@ public class SL20JSONExtractorUtils { if (resp != null && resp.getContent() != null) { String htmlRespBody = EntityUtils.toString(resp); try { - JsonElement sl20Resp = new JsonParser().parse(htmlRespBody); + JsonElement sl20Resp = JsonParser.parseString(htmlRespBody); if (sl20Resp != null && sl20Resp.isJsonObject()) { return sl20Resp.getAsJsonObject(); diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/table/Style.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/table/Style.java index e2fa7062..d575b6bd 100644 --- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/table/Style.java +++ b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/table/Style.java @@ -54,6 +54,7 @@ import java.awt.color.ICC_ColorSpace; import java.awt.color.ICC_Profile; import java.awt.color.ICC_ProfileRGB; import java.io.Serializable; +import java.util.Set; /** * This class implements an abstract style definiton used in tables or table entrys. Predefined @@ -202,6 +203,20 @@ public class Style implements Serializable { */ public final static String STRIKETHRU = "STRIKETHRU"; + /** + * Valid horizontal alignment values + */ + private static final Set<String> VALID_HALIGN_VALUES = Set.of(LEFT, CENTER, RIGHT); + + /** + * Valid vertical alignment values + */ + private static final Set<String> VALID_VALIGN_VALUES = Set.of(TOP, MIDDLE, BOTTOM); + + /** + * Valid value horizontal alignment values (includes LINECENTER) + */ + private static final Set<String> VALID_VALUE_HALIGN_VALUES = Set.of(LEFT, CENTER, RIGHT, LINECENTER); /** * all paddings initialized with the default padding value (1) @@ -286,33 +301,33 @@ public class Style implements Serializable { } if (HALIGN.equals(id)) { - if (LEFT.equals(value) || CENTER.equals(value) || RIGHT.equals(value)) { + if (VALID_HALIGN_VALUES.contains(value)) { hAlign_ = value; } } if (VALIGN.equals(id)) { - if (TOP.equals(value) || MIDDLE.equals(value) || BOTTOM.equals(value)) { + if (VALID_VALIGN_VALUES.contains(value)) { vAlign_ = value; } } //Set new align for horziontal valign of lineCenter if (VALUEHALIGN.equals(id)) { - if (LEFT.equals(value) || CENTER.equals(value) || RIGHT.equals(value)||LINECENTER.equals(value)) { + if (VALID_VALUE_HALIGN_VALUES.contains(value)) { valueHAlign_ = value; } } if (VALUEVALIGN.equals(id)) { - if (TOP.equals(value) || MIDDLE.equals(value) || BOTTOM.equals(value)) { + if (VALID_VALIGN_VALUES.contains(value)) { valueVAlign_ = value; } } if (IMAGEHALIGN.equals(id)) { - if (LEFT.equals(value) || CENTER.equals(value) || RIGHT.equals(value)) { + if (VALID_HALIGN_VALUES.contains(value)) { imageHAlign_ = value; } } if (IMAGEVALIGN.equals(id)) { - if (TOP.equals(value) || MIDDLE.equals(value) || BOTTOM.equals(value)) { + if (VALID_VALIGN_VALUES.contains(value)) { imageVAlign_ = value; } } diff --git a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/table/Table.java b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/table/Table.java index 12d0e2ee..77266488 100644 --- a/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/table/Table.java +++ b/pdf-as-lib/src/main/java/at/knowcenter/wag/egov/egiz/table/Table.java @@ -51,7 +51,6 @@ package at.knowcenter.wag.egov.egiz.table; import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; -import java.util.Iterator; import java.util.Map; import at.gv.egiz.pdfas.common.exceptions.PdfAsSettingsException; @@ -81,7 +80,7 @@ public class Table implements Serializable /** * The row definitions. */ - private Map<String, ArrayList<Entry>> rows_ = new HashMap<String, ArrayList<Entry>>(); + private Map<String, ArrayList<Entry>> rows_ = new HashMap<>(); /** * The table width. @@ -197,7 +196,7 @@ public class Table implements Serializable */ public ArrayList<ArrayList<Entry>> getRows() { - ArrayList<ArrayList<Entry>> rows = new ArrayList<ArrayList<Entry>>(); + ArrayList<ArrayList<Entry>> rows = new ArrayList<>(); for (int row_idx = 1; row_idx <= rows_.size(); row_idx++) { ArrayList<Entry> row = rows_.get(String.valueOf(row_idx)); @@ -232,16 +231,14 @@ public class Table implements Serializable private int calculateRowSize(ArrayList<Entry> newrow) { int colCount = 0; - for(int i = 0; i < newrow.size(); i++) { - colCount += newrow.get(i).getColSpan(); + for (Entry entry : newrow) { + colCount += entry.getColSpan(); } return colCount; } private void recalculateMaxCol() { - Iterator<ArrayList<Entry>> rowIt = getRows().iterator(); - while(rowIt.hasNext()) { - ArrayList<Entry> row = rowIt.next(); + for (ArrayList<Entry> row : getRows()) { calculateMaxCols(row); } } @@ -253,9 +250,7 @@ public class Table implements Serializable * @throws PdfAsSettingsException */ public void normalize() throws PdfAsSettingsException { - Iterator<ArrayList<Entry>> rowIt = getRows().iterator(); - while(rowIt.hasNext()) { - ArrayList<Entry> row = rowIt.next(); + for (ArrayList<Entry> row : getRows()) { // This row fits just fine if(row.size() == maxCols_) { @@ -293,20 +288,21 @@ public class Table implements Serializable */ public String toString() { - String the_string = "\n#### TABLE " + name_ + " BEGIN #####"; - the_string += " Width:" + width_ + " max cols:" + maxCols_ + " cols:" + colsRelativeWith_; - the_string += "\nStyle:" + style_; + StringBuilder sb = new StringBuilder(); + sb.append("\n#### TABLE ").append(name_).append(" BEGIN #####"); + sb.append(" Width:").append(width_).append(" max cols:").append(maxCols_).append(" cols:").append(colsRelativeWith_); + sb.append("\nStyle:").append(style_); ArrayList<ArrayList<Entry>> rows = getRows(); for (int row_idx = 0; row_idx < rows.size(); row_idx++) { ArrayList<Entry> row = rows.get(row_idx); String row_prefix = "\n ++ ROW " + row_idx + " ++ "; - for (int entry_idx = 0; entry_idx < row.size(); entry_idx++) + for (Entry entry : row) { - the_string += row_prefix + row.get(entry_idx).toString(); + sb.append(row_prefix).append(entry.toString()); } } - the_string += "\n#### TABLE " + name_ + " END #####"; - return the_string; + sb.append("\n#### TABLE ").append(name_).append(" END #####"); + return sb.toString(); } } diff --git a/pdf-as-lib/src/test/java/at/gv/egiz/pdfas/lib/test/SignatureTest.java b/pdf-as-lib/src/test/java/at/gv/egiz/pdfas/lib/test/SignatureTest.java new file mode 100644 index 00000000..fac1edd0 --- /dev/null +++ b/pdf-as-lib/src/test/java/at/gv/egiz/pdfas/lib/test/SignatureTest.java @@ -0,0 +1,94 @@ +package at.gv.egiz.pdfas.lib.test; + +import at.gv.egiz.pdfas.common.exceptions.PDFASError; +import at.gv.egiz.pdfas.lib.api.ByteArrayDataSource; +import at.gv.egiz.pdfas.lib.api.PdfAs; +import at.gv.egiz.pdfas.lib.api.PdfAsFactory; +import at.gv.egiz.pdfas.sigs.pades.PAdESSignerKeystore; +import lombok.val; +import org.junit.*; +import org.junit.rules.TemporaryFolder; +import org.junit.runner.RunWith; +import org.junit.runners.BlockJUnit4ClassRunner; +import org.zeroturnaround.zip.ZipUtil; + +import java.io.ByteArrayOutputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.security.KeyStore; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +@RunWith(BlockJUnit4ClassRunner.class) +public class SignatureTest { + + @ClassRule + public static TemporaryFolder tempFolder = new TemporaryFolder(); + static PdfAs pdfAs; + static KeyStore keyStore; + + @BeforeClass + public static void initialize() throws Exception { + // unzip default config to temp dir + val configDir = tempFolder.newFolder(); + ZipUtil.unpack(PdfAs.class.getResourceAsStream("/config/config.zip"), configDir); + pdfAs = PdfAsFactory.createPdfAs(configDir); + + // load keystore + keyStore = KeyStore.getInstance("PKCS12"); + keyStore.load(SignatureTest.class.getResourceAsStream("/test.p12"), "password".toCharArray()); + } + + private final static Map<String, ByteArrayDataSource> _inputPdfCache = new HashMap<>(); + public static ByteArrayDataSource getInputPdf(String filename) throws IOException { + val normalizedName = filename.endsWith(".pdf") ? filename : (filename + ".pdf"); + var existing = _inputPdfCache.get(normalizedName); + if (existing == null) { + try (val stream = SignatureTest.class.getResourceAsStream("/data/" + normalizedName)) { + existing = new ByteArrayDataSource(Objects.requireNonNull(stream).readAllBytes()); + } + _inputPdfCache.put(normalizedName, existing); + } + return existing; + } + + private final static Map<String, PAdESSignerKeystore> _keystoreSignerCache = new HashMap<>(); + public static PAdESSignerKeystore getKeystoreSigner(String keyAlias) throws PDFASError { + var existing = _keystoreSignerCache.get(keyAlias); + if (existing == null) { + existing = new PAdESSignerKeystore(keyStore, keyAlias, "password"); + _keystoreSignerCache.put(keyAlias, existing); + } + return existing; + } + + @Test + public void signatureTest() throws Exception { + val inputPdf = getInputPdf("align.pdf"); + + val param = PdfAsFactory.createSignParameter(pdfAs.getConfiguration(), inputPdf, null); + param.setPlainSigner(getKeystoreSigner("test-key")); + param.setSignatureProfileId("SIGNATURBLOCK_SMALL_EN_NOTE"); + + val outputStream1 = new ByteArrayOutputStream(); + param.setOutputStream(outputStream1); + pdfAs.sign(param); + + val outputStream2 = new ByteArrayOutputStream(); + param.setOutputStream(outputStream2); + pdfAs.sign(param); + val state1 = pdfAs.startSign(param); + val state2 = state1.setCertificate(param.getPlainSigner().getCertificate(state1.getSignParameter()).getEncoded()); + val state3 = state2.setSignature(param.getPlainSigner().sign( + state2.getSignatureData(), + state2.getSignatureDataByteRange(), + state2.getSignParameter(), + state2.getRequestedSignature())); + state3.finishSign(); + + try (FileOutputStream fos = new FileOutputStream(tempFolder.newFile())) { + fos.write(outputStream1.toByteArray()); + } + } +} diff --git a/pdf-as-lib/src/test/java/at/gv/egiz/pdfas/lib/test/stamping/CertificateAndRequestParameterResolverTest.java b/pdf-as-lib/src/test/java/at/gv/egiz/pdfas/lib/test/stamping/CertificateAndRequestParameterResolverTest.java index e94d21e8..4aa07028 100644 --- a/pdf-as-lib/src/test/java/at/gv/egiz/pdfas/lib/test/stamping/CertificateAndRequestParameterResolverTest.java +++ b/pdf-as-lib/src/test/java/at/gv/egiz/pdfas/lib/test/stamping/CertificateAndRequestParameterResolverTest.java @@ -34,7 +34,7 @@ public class CertificateAndRequestParameterResolverTest { @Before public void initialize() throws PDFASError { SignParameter signParams = new SignParameterImpl(null, null, null); - opStatus = new OperationStatus(buildDummySettings(), signParams , null); + opStatus = new OperationStatus(buildDummySettings(), signParams , null, null); sigProfileSetting = new SignatureProfileSettings("test", buildDummySettings()); diff --git a/pdf-as-lib/src/test/resources/data/align.pdf b/pdf-as-lib/src/test/resources/data/align.pdf Binary files differnew file mode 100644 index 00000000..274d28d0 --- /dev/null +++ b/pdf-as-lib/src/test/resources/data/align.pdf diff --git a/pdf-as-lib/src/test/resources/test.p12 b/pdf-as-lib/src/test/resources/test.p12 Binary files differnew file mode 100644 index 00000000..0096779d --- /dev/null +++ b/pdf-as-lib/src/test/resources/test.p12 diff --git a/pdf-as-moa/build.gradle b/pdf-as-moa/build.gradle index f7f46a1e..7885f697 100644 --- a/pdf-as-moa/build.gradle +++ b/pdf-as-moa/build.gradle @@ -13,7 +13,7 @@ buildscript { mavenLocal() mavenCentral() } - dependencies { classpath("commons-io:commons-io:2.21.0") } + dependencies { classpath("commons-io:commons-io:"+commonsIoVersion) } } sourceSets { @@ -27,7 +27,7 @@ sourceSets { configurations { ws - pdfDoclet { extendsFrom compile } + pdfDoclet { extendsFrom compileClasspath } } project.ext { @@ -47,22 +47,38 @@ repositories { dependencies { implementation project (':pdf-as-lib') implementation group: 'org.slf4j', name: 'slf4j-api', version: slf4jVersion - implementation group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1' - testImplementation group: 'junit', name: 'junit', version: '4.+' + + // Jakarta EE XML Binding (JAXB) - migrated from javax.xml.bind + implementation group: 'jakarta.xml.bind', name: 'jakarta.xml.bind-api', version: jaxbApiVersion + implementation group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: jaxbRuntimeVersion + + // Jakarta EE XML Web Services (JAX-WS) - migrated from javax.xml.ws + api group: 'jakarta.xml.ws', name: 'jakarta.xml.ws-api', version: jakartaXmlWsVersion + api group: 'jakarta.jws', name: 'jakarta.jws-api', version: jakartaJwsVersion + + // Apache Commons Codec for Base64 encoding + implementation group: 'commons-codec', name: 'commons-codec', version: commonsCodecVersion + implementation group: 'org.apache.commons', name: 'commons-lang3', version: commonsLang3Version + api group: 'org.apache.commons', name: 'commons-text', version: commonsTextVersion + + testImplementation group: 'junit', name: 'junit', version: junitVersion + + // Apache CXF tools for WSDL processing - updated to Jakarta EE compatible version ws group: 'org.apache.cxf', name: 'cxf-tools', version: cxfVersion ws group: 'org.apache.cxf', name: 'cxf-tools-wsdlto-databinding-jaxb', version: cxfVersion ws group: 'org.apache.cxf', name: 'cxf-tools-wsdlto-frontend-jaxws', version: cxfVersion - api group: 'javax.xml.ws', name: 'jaxws-api', version: '2.3.1' - api group: 'javax.jws', name: 'javax.jws-api', version: '1.1' - api group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '2.3.3'} +} task wsdl2Java() { if (!wsdlDir.listFiles()) { // do nothing } else { inputs.files wsdlDir.listFiles() - outputs.files generatedWsdlDir + outputs.dir generatedWsdlDir doLast { + // Ensure the generated directory exists + generatedWsdlDir.mkdirs() + wsdlsToGenerate.each { argsin -> argsin.add(argsin.size - 1, '-d') argsin.add(argsin.size - 1, 'src/generated/java') @@ -70,7 +86,7 @@ task wsdl2Java() { argsin.add(argsin.size - 1, '/wsdl/MOA-SPSS-2.0.0.wsdl') javaexec { classpath configurations.ws - main = 'org.apache.cxf.tools.wsdlto.WSDLToJava' + mainClass = 'org.apache.cxf.tools.wsdlto.WSDLToJava' args = argsin systemProperties = ['exitOnFinish':'TRUE'] } diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ASICResultType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ASICResultType.java index ca7bbd30..5063e46f 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ASICResultType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ASICResultType.java @@ -3,40 +3,40 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.XmlValue; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlValue; /** - * <p>Java-Klasse für ASICResultType complex type. + * <p>Java class for ASICResultType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="ASICResultType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="signedFiles" maxOccurs="unbounded" minOccurs="0"> - * <complexType> - * <simpleContent> - * <extension base="<http://www.w3.org/2001/XMLSchema>string"> - * <attribute name="hashAlgorithm" type="{http://www.w3.org/2001/XMLSchema}string" /> - * </extension> - * </simpleContent> - * </complexType> - * </element> - * <element name="XMLSignatureResult" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}VerifyASICXMLSignatureResponseType" maxOccurs="unbounded" minOccurs="0"/> - * <element name="CMSSignatureResult" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}VerifyASICCMSSignatureResponseType" maxOccurs="unbounded" minOccurs="0"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="ASICResultType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="signedFiles" maxOccurs="unbounded" minOccurs="0"> + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * <attribute name="hashAlgorithm" type="{http://www.w3.org/2001/XMLSchema}string" /> + * </extension> + * </simpleContent> + * </complexType> + * </element> + * <element name="XMLSignatureResult" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}VerifyASICXMLSignatureResponseType" maxOccurs="unbounded" minOccurs="0"/> + * <element name="CMSSignatureResult" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}VerifyASICCMSSignatureResponseType" maxOccurs="unbounded" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -57,28 +57,31 @@ public class ASICResultType { /** * Gets the value of the signedFiles property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the signedFiles property. + * This is why there is not a <CODE>set</CODE> method for the signedFiles property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getSignedFiles().add(newItem); + * getSignedFiles().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link ASICResultType.SignedFiles } + * </p> * * + * @return + * The value of the signedFiles property. */ public List<ASICResultType.SignedFiles> getSignedFiles() { if (signedFiles == null) { - signedFiles = new ArrayList<ASICResultType.SignedFiles>(); + signedFiles = new ArrayList<>(); } return this.signedFiles; } @@ -86,28 +89,31 @@ public class ASICResultType { /** * Gets the value of the xmlSignatureResult property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the xmlSignatureResult property. + * This is why there is not a <CODE>set</CODE> method for the xmlSignatureResult property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getXMLSignatureResult().add(newItem); + * getXMLSignatureResult().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link VerifyASICXMLSignatureResponseType } + * </p> * * + * @return + * The value of the xmlSignatureResult property. */ public List<VerifyASICXMLSignatureResponseType> getXMLSignatureResult() { if (xmlSignatureResult == null) { - xmlSignatureResult = new ArrayList<VerifyASICXMLSignatureResponseType>(); + xmlSignatureResult = new ArrayList<>(); } return this.xmlSignatureResult; } @@ -115,47 +121,50 @@ public class ASICResultType { /** * Gets the value of the cmsSignatureResult property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the cmsSignatureResult property. + * This is why there is not a <CODE>set</CODE> method for the cmsSignatureResult property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getCMSSignatureResult().add(newItem); + * getCMSSignatureResult().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link VerifyASICCMSSignatureResponseType } + * </p> * * + * @return + * The value of the cmsSignatureResult property. */ public List<VerifyASICCMSSignatureResponseType> getCMSSignatureResult() { if (cmsSignatureResult == null) { - cmsSignatureResult = new ArrayList<VerifyASICCMSSignatureResponseType>(); + cmsSignatureResult = new ArrayList<>(); } return this.cmsSignatureResult; } /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <simpleContent> - * <extension base="<http://www.w3.org/2001/XMLSchema>string"> - * <attribute name="hashAlgorithm" type="{http://www.w3.org/2001/XMLSchema}string" /> - * </extension> - * </simpleContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>string"> + * <attribute name="hashAlgorithm" type="{http://www.w3.org/2001/XMLSchema}string" /> + * </extension> + * </simpleContent> + * </complexType> + * }</pre> * * */ @@ -171,7 +180,7 @@ public class ASICResultType { protected String hashAlgorithm; /** - * Ruft den Wert der value-Eigenschaft ab. + * Gets the value of the value property. * * @return * possible object is @@ -183,7 +192,7 @@ public class ASICResultType { } /** - * Legt den Wert der value-Eigenschaft fest. + * Sets the value of the value property. * * @param value * allowed object is @@ -195,7 +204,7 @@ public class ASICResultType { } /** - * Ruft den Wert der hashAlgorithm-Eigenschaft ab. + * Gets the value of the hashAlgorithm property. * * @return * possible object is @@ -207,7 +216,7 @@ public class ASICResultType { } /** - * Legt den Wert der hashAlgorithm-Eigenschaft fest. + * Sets the value of the hashAlgorithm property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/AllSignatoriesType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/AllSignatoriesType.java index c4efe76e..b95ff45b 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/AllSignatoriesType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/AllSignatoriesType.java @@ -1,22 +1,24 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlEnum; -import javax.xml.bind.annotation.XmlEnumValue; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlEnumValue; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für AllSignatoriesType. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. - * <pre> - * <simpleType name="AllSignatoriesType"> - * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> - * <enumeration value="all"/> - * </restriction> - * </simpleType> - * </pre> + * + * <p>Java class for AllSignatoriesType</p>. + * + * <p>The following schema fragment specifies the expected content contained within this class.</p> + * <pre>{@code + * <simpleType name="AllSignatoriesType"> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * <enumeration value="all"/> + * </restriction> + * </simpleType> + * }</pre> * */ @XmlType(name = "AllSignatoriesType") @@ -31,10 +33,26 @@ public enum AllSignatoriesType { value = v; } + /** + * Gets the value associated to the enum constant. + * + * @return + * The value linked to the enum. + */ public String value() { return value; } + /** + * Gets the enum associated to the value passed as parameter. + * + * @param v + * The value to get the enum from. + * @return + * The enum which corresponds to the value, if it exists. + * @throws IllegalArgumentException + * If no value matches in the enum declaration. + */ public static AllSignatoriesType fromValue(String v) { for (AllSignatoriesType c: AllSignatoriesType.values()) { if (c.value.equals(v)) { diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/AnyChildrenType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/AnyChildrenType.java index 45611ed4..d34c2656 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/AnyChildrenType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/AnyChildrenType.java @@ -3,31 +3,31 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlMixed; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlMixed; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; /** - * <p>Java-Klasse für AnyChildrenType complex type. + * <p>Java class for AnyChildrenType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="AnyChildrenType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <any processContents='lax' maxOccurs="unbounded" minOccurs="0"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="AnyChildrenType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <any processContents='lax' maxOccurs="unbounded" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -49,16 +49,16 @@ public class AnyChildrenType { /** * Gets the value of the content property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the content property. + * This is why there is not a <CODE>set</CODE> method for the content property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getContent().add(newItem); + * getContent().add(newItem); * </pre> * * @@ -67,12 +67,15 @@ public class AnyChildrenType { * {@link Object } * {@link String } * {@link Element } + * </p> * * + * @return + * The value of the content property. */ public List<Object> getContent() { if (content == null) { - content = new ArrayList<Object>(); + content = new ArrayList<>(); } return this.content; } diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CMSContentBaseType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CMSContentBaseType.java index 87b0e0bf..a77b4d73 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CMSContentBaseType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CMSContentBaseType.java @@ -1,27 +1,27 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für CMSContentBaseType complex type. + * <p>Java class for CMSContentBaseType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="CMSContentBaseType"> - * <complexContent> - * <restriction base="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentOptionalRefType"> - * <choice minOccurs="0"> - * <element name="Base64Content" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> - * </choice> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="CMSContentBaseType"> + * <complexContent> + * <restriction base="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentOptionalRefType"> + * <choice minOccurs="0"> + * <element name="Base64Content" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> + * </choice> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CMSDataObjectInfoType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CMSDataObjectInfoType.java index a834a14d..acffa66f 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CMSDataObjectInfoType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CMSDataObjectInfoType.java @@ -1,45 +1,45 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für CMSDataObjectInfoType complex type. + * <p>Java class for CMSDataObjectInfoType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="CMSDataObjectInfoType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="DataObject"> - * <complexType> - * <complexContent> - * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}CMSDataObjectRequiredMetaType"> - * </extension> - * </complexContent> - * </complexType> - * </element> - * </sequence> - * <attribute name="Structure" use="required"> - * <simpleType> - * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> - * <enumeration value="detached"/> - * <enumeration value="enveloping"/> - * </restriction> - * </simpleType> - * </attribute> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="CMSDataObjectInfoType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="DataObject"> + * <complexType> + * <complexContent> + * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}CMSDataObjectRequiredMetaType"> + * </extension> + * </complexContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="Structure" use="required"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * <enumeration value="detached"/> + * <enumeration value="enveloping"/> + * </restriction> + * </simpleType> + * </attribute> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -58,7 +58,7 @@ public class CMSDataObjectInfoType { protected String structure; /** - * Ruft den Wert der dataObject-Eigenschaft ab. + * Gets the value of the dataObject property. * * @return * possible object is @@ -70,7 +70,7 @@ public class CMSDataObjectInfoType { } /** - * Legt den Wert der dataObject-Eigenschaft fest. + * Sets the value of the dataObject property. * * @param value * allowed object is @@ -82,7 +82,7 @@ public class CMSDataObjectInfoType { } /** - * Ruft den Wert der structure-Eigenschaft ab. + * Gets the value of the structure property. * * @return * possible object is @@ -94,7 +94,7 @@ public class CMSDataObjectInfoType { } /** - * Legt den Wert der structure-Eigenschaft fest. + * Sets the value of the structure property. * * @param value * allowed object is @@ -107,18 +107,18 @@ public class CMSDataObjectInfoType { /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}CMSDataObjectRequiredMetaType"> - * </extension> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}CMSDataObjectRequiredMetaType"> + * </extension> + * </complexContent> + * </complexType> + * }</pre> * * */ diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CMSDataObjectOptionalMetaType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CMSDataObjectOptionalMetaType.java index 60d3ffe1..06cdfaf9 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CMSDataObjectOptionalMetaType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CMSDataObjectOptionalMetaType.java @@ -1,29 +1,29 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für CMSDataObjectOptionalMetaType complex type. + * <p>Java class for CMSDataObjectOptionalMetaType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="CMSDataObjectOptionalMetaType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="MetaInfo" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}MetaInfoType" minOccurs="0"/> - * <element name="Content" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CMSContentBaseType"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="CMSDataObjectOptionalMetaType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="MetaInfo" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}MetaInfoType" minOccurs="0"/> + * <element name="Content" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CMSContentBaseType"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -40,7 +40,7 @@ public class CMSDataObjectOptionalMetaType { protected CMSContentBaseType content; /** - * Ruft den Wert der metaInfo-Eigenschaft ab. + * Gets the value of the metaInfo property. * * @return * possible object is @@ -52,7 +52,7 @@ public class CMSDataObjectOptionalMetaType { } /** - * Legt den Wert der metaInfo-Eigenschaft fest. + * Sets the value of the metaInfo property. * * @param value * allowed object is @@ -64,7 +64,7 @@ public class CMSDataObjectOptionalMetaType { } /** - * Ruft den Wert der content-Eigenschaft ab. + * Gets the value of the content property. * * @return * possible object is @@ -76,7 +76,7 @@ public class CMSDataObjectOptionalMetaType { } /** - * Legt den Wert der content-Eigenschaft fest. + * Sets the value of the content property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CMSDataObjectRequiredMetaType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CMSDataObjectRequiredMetaType.java index 7b4a7afd..028b95a2 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CMSDataObjectRequiredMetaType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CMSDataObjectRequiredMetaType.java @@ -1,30 +1,30 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für CMSDataObjectRequiredMetaType complex type. + * <p>Java class for CMSDataObjectRequiredMetaType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="CMSDataObjectRequiredMetaType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="MetaInfo" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}MetaInfoType"/> - * <element name="Content" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CMSContentBaseType"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="CMSDataObjectRequiredMetaType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="MetaInfo" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}MetaInfoType"/> + * <element name="Content" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CMSContentBaseType"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -44,7 +44,7 @@ public class CMSDataObjectRequiredMetaType { protected CMSContentBaseType content; /** - * Ruft den Wert der metaInfo-Eigenschaft ab. + * Gets the value of the metaInfo property. * * @return * possible object is @@ -56,7 +56,7 @@ public class CMSDataObjectRequiredMetaType { } /** - * Legt den Wert der metaInfo-Eigenschaft fest. + * Sets the value of the metaInfo property. * * @param value * allowed object is @@ -68,7 +68,7 @@ public class CMSDataObjectRequiredMetaType { } /** - * Ruft den Wert der content-Eigenschaft ab. + * Gets the value of the content property. * * @return * possible object is @@ -80,7 +80,7 @@ public class CMSDataObjectRequiredMetaType { } /** - * Legt den Wert der content-Eigenschaft fest. + * Sets the value of the content property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CheckResultType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CheckResultType.java index 84cf51e9..54c3d4be 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CheckResultType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CheckResultType.java @@ -2,31 +2,31 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.math.BigInteger; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für CheckResultType complex type. + * <p>Java class for CheckResultType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="CheckResultType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="Code" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger"/> - * <element name="Info" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}AnyChildrenType" minOccurs="0"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="CheckResultType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Code" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger"/> + * <element name="Info" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}AnyChildrenType" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -48,7 +48,7 @@ public class CheckResultType { protected AnyChildrenType info; /** - * Ruft den Wert der code-Eigenschaft ab. + * Gets the value of the code property. * * @return * possible object is @@ -60,7 +60,7 @@ public class CheckResultType { } /** - * Legt den Wert der code-Eigenschaft fest. + * Sets the value of the code property. * * @param value * allowed object is @@ -72,7 +72,7 @@ public class CheckResultType { } /** - * Ruft den Wert der info-Eigenschaft ab. + * Gets the value of the info property. * * @return * possible object is @@ -84,7 +84,7 @@ public class CheckResultType { } /** - * Legt den Wert der info-Eigenschaft fest. + * Sets the value of the info property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ContentBaseType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ContentBaseType.java index 02a83c4c..baf97213 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ContentBaseType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ContentBaseType.java @@ -1,32 +1,32 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für ContentBaseType complex type. + * <p>Java class for ContentBaseType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="ContentBaseType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <choice minOccurs="0"> - * <element name="Base64Content" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> - * <element name="XMLContent" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}XMLContentType"/> - * <element name="LocRefContent" type="{http://www.w3.org/2001/XMLSchema}anyURI"/> - * </choice> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="ContentBaseType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <choice minOccurs="0"> + * <element name="Base64Content" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> + * <element name="XMLContent" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}XMLContentType"/> + * <element name="LocRefContent" type="{http://www.w3.org/2001/XMLSchema}anyURI"/> + * </choice> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -51,7 +51,7 @@ public class ContentBaseType { protected String locRefContent; /** - * Ruft den Wert der base64Content-Eigenschaft ab. + * Gets the value of the base64Content property. * * @return * possible object is @@ -62,7 +62,7 @@ public class ContentBaseType { } /** - * Legt den Wert der base64Content-Eigenschaft fest. + * Sets the value of the base64Content property. * * @param value * allowed object is @@ -73,7 +73,7 @@ public class ContentBaseType { } /** - * Ruft den Wert der xmlContent-Eigenschaft ab. + * Gets the value of the xmlContent property. * * @return * possible object is @@ -85,7 +85,7 @@ public class ContentBaseType { } /** - * Legt den Wert der xmlContent-Eigenschaft fest. + * Sets the value of the xmlContent property. * * @param value * allowed object is @@ -97,7 +97,7 @@ public class ContentBaseType { } /** - * Ruft den Wert der locRefContent-Eigenschaft ab. + * Gets the value of the locRefContent property. * * @return * possible object is @@ -109,7 +109,7 @@ public class ContentBaseType { } /** - * Legt den Wert der locRefContent-Eigenschaft fest. + * Sets the value of the locRefContent property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ContentExLocRefBaseType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ContentExLocRefBaseType.java index 6913282f..16f57587 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ContentExLocRefBaseType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ContentExLocRefBaseType.java @@ -1,29 +1,29 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für ContentExLocRefBaseType complex type. + * <p>Java class for ContentExLocRefBaseType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="ContentExLocRefBaseType"> - * <complexContent> - * <restriction base="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentBaseType"> - * <choice minOccurs="0"> - * <element name="Base64Content" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> - * <element name="XMLContent" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}XMLContentType"/> - * </choice> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="ContentExLocRefBaseType"> + * <complexContent> + * <restriction base="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentBaseType"> + * <choice minOccurs="0"> + * <element name="Base64Content" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> + * <element name="XMLContent" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}XMLContentType"/> + * </choice> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ContentOptionalRefType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ContentOptionalRefType.java index f50865fc..17dff8cd 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ContentOptionalRefType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ContentOptionalRefType.java @@ -1,28 +1,28 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für ContentOptionalRefType complex type. + * <p>Java class for ContentOptionalRefType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="ContentOptionalRefType"> - * <complexContent> - * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentBaseType"> - * <attribute name="Reference" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> - * </extension> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="ContentOptionalRefType"> + * <complexContent> + * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentBaseType"> + * <attribute name="Reference" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * </extension> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -42,7 +42,7 @@ public class ContentOptionalRefType protected String reference; /** - * Ruft den Wert der reference-Eigenschaft ab. + * Gets the value of the reference property. * * @return * possible object is @@ -54,7 +54,7 @@ public class ContentOptionalRefType } /** - * Legt den Wert der reference-Eigenschaft fest. + * Sets the value of the reference property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ContentRequiredRefType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ContentRequiredRefType.java index 6dafba45..4d06cd64 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ContentRequiredRefType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ContentRequiredRefType.java @@ -1,30 +1,30 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für ContentRequiredRefType complex type. + * <p>Java class for ContentRequiredRefType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="ContentRequiredRefType"> - * <complexContent> - * <restriction base="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentOptionalRefType"> - * <choice minOccurs="0"> - * <element name="Base64Content" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> - * <element name="XMLContent" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}XMLContentType"/> - * <element name="LocRefContent" type="{http://www.w3.org/2001/XMLSchema}anyURI"/> - * </choice> - * <attribute name="Reference" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="ContentRequiredRefType"> + * <complexContent> + * <restriction base="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentOptionalRefType"> + * <choice minOccurs="0"> + * <element name="Base64Content" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> + * <element name="XMLContent" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}XMLContentType"/> + * <element name="LocRefContent" type="{http://www.w3.org/2001/XMLSchema}anyURI"/> + * </choice> + * <attribute name="Reference" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateCMSSignatureRequest.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateCMSSignatureRequest.java index 3d43e49f..6fe8f740 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateCMSSignatureRequest.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateCMSSignatureRequest.java @@ -1,25 +1,25 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}CreateCMSSignatureRequestType"> - * </extension> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}CreateCMSSignatureRequestType"> + * </extension> + * </complexContent> + * </complexType> + * }</pre> * * */ diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateCMSSignatureRequestType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateCMSSignatureRequestType.java index a57f3de4..2c0cc257 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateCMSSignatureRequestType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateCMSSignatureRequestType.java @@ -3,50 +3,50 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für CreateCMSSignatureRequestType complex type. + * <p>Java class for CreateCMSSignatureRequestType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="CreateCMSSignatureRequestType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="KeyIdentifier" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}KeyIdentifierType"/> - * <element name="SingleSignatureInfo" maxOccurs="unbounded"> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="DataObjectInfo"> - * <complexType> - * <complexContent> - * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}CMSDataObjectInfoType"> - * </extension> - * </complexContent> - * </complexType> - * </element> - * </sequence> - * <attribute name="SecurityLayerConformity" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /> - * <attribute name="PAdESConformity" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /> - * </restriction> - * </complexContent> - * </complexType> - * </element> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="CreateCMSSignatureRequestType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="KeyIdentifier" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}KeyIdentifierType"/> + * <element name="SingleSignatureInfo" maxOccurs="unbounded"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="DataObjectInfo"> + * <complexType> + * <complexContent> + * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}CMSDataObjectInfoType"> + * </extension> + * </complexContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="SecurityLayerConformity" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /> + * <attribute name="PAdESConformity" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -62,11 +62,16 @@ public class CreateCMSSignatureRequestType { @XmlElement(name = "KeyIdentifier", required = true) protected String keyIdentifier; + /** + * Ermöglichung der Stapelsignatur durch + * wiederholte Angabe dieses Elements + * + */ @XmlElement(name = "SingleSignatureInfo", required = true) protected List<CreateCMSSignatureRequestType.SingleSignatureInfo> singleSignatureInfo; /** - * Ruft den Wert der keyIdentifier-Eigenschaft ab. + * Gets the value of the keyIdentifier property. * * @return * possible object is @@ -78,7 +83,7 @@ public class CreateCMSSignatureRequestType { } /** - * Legt den Wert der keyIdentifier-Eigenschaft fest. + * Sets the value of the keyIdentifier property. * * @param value * allowed object is @@ -90,60 +95,66 @@ public class CreateCMSSignatureRequestType { } /** + * Ermöglichung der Stapelsignatur durch + * wiederholte Angabe dieses Elements + * * Gets the value of the singleSignatureInfo property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the singleSignatureInfo property. + * This is why there is not a <CODE>set</CODE> method for the singleSignatureInfo property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getSingleSignatureInfo().add(newItem); + * getSingleSignatureInfo().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link CreateCMSSignatureRequestType.SingleSignatureInfo } + * </p> * * + * @return + * The value of the singleSignatureInfo property. */ public List<CreateCMSSignatureRequestType.SingleSignatureInfo> getSingleSignatureInfo() { if (singleSignatureInfo == null) { - singleSignatureInfo = new ArrayList<CreateCMSSignatureRequestType.SingleSignatureInfo>(); + singleSignatureInfo = new ArrayList<>(); } return this.singleSignatureInfo; } /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="DataObjectInfo"> - * <complexType> - * <complexContent> - * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}CMSDataObjectInfoType"> - * </extension> - * </complexContent> - * </complexType> - * </element> - * </sequence> - * <attribute name="SecurityLayerConformity" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /> - * <attribute name="PAdESConformity" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="DataObjectInfo"> + * <complexType> + * <complexContent> + * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}CMSDataObjectInfoType"> + * </extension> + * </complexContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="SecurityLayerConformity" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /> + * <attribute name="PAdESConformity" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -161,7 +172,7 @@ public class CreateCMSSignatureRequestType { protected Boolean pAdESConformity; /** - * Ruft den Wert der dataObjectInfo-Eigenschaft ab. + * Gets the value of the dataObjectInfo property. * * @return * possible object is @@ -173,7 +184,7 @@ public class CreateCMSSignatureRequestType { } /** - * Legt den Wert der dataObjectInfo-Eigenschaft fest. + * Sets the value of the dataObjectInfo property. * * @param value * allowed object is @@ -185,7 +196,7 @@ public class CreateCMSSignatureRequestType { } /** - * Ruft den Wert der securityLayerConformity-Eigenschaft ab. + * Gets the value of the securityLayerConformity property. * * @return * possible object is @@ -201,7 +212,7 @@ public class CreateCMSSignatureRequestType { } /** - * Legt den Wert der securityLayerConformity-Eigenschaft fest. + * Sets the value of the securityLayerConformity property. * * @param value * allowed object is @@ -213,7 +224,7 @@ public class CreateCMSSignatureRequestType { } /** - * Ruft den Wert der pAdESConformity-Eigenschaft ab. + * Gets the value of the pAdESConformity property. * * @return * possible object is @@ -229,7 +240,7 @@ public class CreateCMSSignatureRequestType { } /** - * Legt den Wert der pAdESConformity-Eigenschaft fest. + * Sets the value of the pAdESConformity property. * * @param value * allowed object is @@ -242,18 +253,18 @@ public class CreateCMSSignatureRequestType { /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}CMSDataObjectInfoType"> - * </extension> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}CMSDataObjectInfoType"> + * </extension> + * </complexContent> + * </complexType> + * }</pre> * * */ diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateCMSSignatureResponseType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateCMSSignatureResponseType.java index 0a643ba4..48500e7f 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateCMSSignatureResponseType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateCMSSignatureResponseType.java @@ -3,30 +3,30 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlElements; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlElements; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für CreateCMSSignatureResponseType complex type. + * <p>Java class for CreateCMSSignatureResponseType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="CreateCMSSignatureResponseType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <choice maxOccurs="unbounded"> - * <element name="CMSSignature" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> - * <element ref="{http://reference.e-government.gv.at/namespace/moa/20020822#}ErrorResponse"/> - * </choice> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="CreateCMSSignatureResponseType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <choice maxOccurs="unbounded"> + * <element name="CMSSignature" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> + * <element ref="{http://reference.e-government.gv.at/namespace/moa/20020822#}ErrorResponse"/> + * </choice> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -36,6 +36,11 @@ import javax.xml.bind.annotation.XmlType; }) public class CreateCMSSignatureResponseType { + /** + * Kardinalität 1..oo erlaubt die Antwort auf eine + * Stapelsignatur-Anfrage + * + */ @XmlElements({ @XmlElement(name = "CMSSignature", type = byte[].class), @XmlElement(name = "ErrorResponse", type = ErrorResponseType.class) @@ -43,30 +48,36 @@ public class CreateCMSSignatureResponseType { protected List<Object> cmsSignatureOrErrorResponse; /** + * Kardinalität 1..oo erlaubt die Antwort auf eine + * Stapelsignatur-Anfrage + * * Gets the value of the cmsSignatureOrErrorResponse property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the cmsSignatureOrErrorResponse property. + * This is why there is not a <CODE>set</CODE> method for the cmsSignatureOrErrorResponse property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getCMSSignatureOrErrorResponse().add(newItem); + * getCMSSignatureOrErrorResponse().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link ErrorResponseType } - * byte[] + * byte[]</p> + * * + * @return + * The value of the cmsSignatureOrErrorResponse property. */ public List<Object> getCMSSignatureOrErrorResponse() { if (cmsSignatureOrErrorResponse == null) { - cmsSignatureOrErrorResponse = new ArrayList<Object>(); + cmsSignatureOrErrorResponse = new ArrayList<>(); } return this.cmsSignatureOrErrorResponse; } diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreatePDFSignatureRequest.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreatePDFSignatureRequest.java index e0d34d3e..59c60459 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreatePDFSignatureRequest.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreatePDFSignatureRequest.java @@ -1,25 +1,25 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}CreatePDFSignatureRequestType"> - * </extension> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}CreatePDFSignatureRequestType"> + * </extension> + * </complexContent> + * </complexType> + * }</pre> * * */ diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreatePDFSignatureRequestType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreatePDFSignatureRequestType.java index 586067c2..07836f48 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreatePDFSignatureRequestType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreatePDFSignatureRequestType.java @@ -3,43 +3,43 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für CreatePDFSignatureRequestType complex type. + * <p>Java class for CreatePDFSignatureRequestType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="CreatePDFSignatureRequestType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="KeyIdentifier" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}KeyIdentifierType"/> - * <element name="SingleSignatureInfo" maxOccurs="unbounded"> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="PDFDocument" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> - * <element name="SignatureProfile" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> - * <element name="SignaturePosition" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> - * <element name="SignatureID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </element> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="CreatePDFSignatureRequestType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="KeyIdentifier" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}KeyIdentifierType"/> + * <element name="SingleSignatureInfo" maxOccurs="unbounded"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="PDFDocument" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> + * <element name="SignatureProfile" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> + * <element name="SignaturePosition" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> + * <element name="SignatureID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -55,11 +55,16 @@ public class CreatePDFSignatureRequestType { @XmlElement(name = "KeyIdentifier", required = true) protected String keyIdentifier; + /** + * Ermöglichung der Stapelsignatur durch + * wiederholte Angabe dieses Elements + * + */ @XmlElement(name = "SingleSignatureInfo", required = true) protected List<CreatePDFSignatureRequestType.SingleSignatureInfo> singleSignatureInfo; /** - * Ruft den Wert der keyIdentifier-Eigenschaft ab. + * Gets the value of the keyIdentifier property. * * @return * possible object is @@ -71,7 +76,7 @@ public class CreatePDFSignatureRequestType { } /** - * Legt den Wert der keyIdentifier-Eigenschaft fest. + * Sets the value of the keyIdentifier property. * * @param value * allowed object is @@ -83,54 +88,60 @@ public class CreatePDFSignatureRequestType { } /** + * Ermöglichung der Stapelsignatur durch + * wiederholte Angabe dieses Elements + * * Gets the value of the singleSignatureInfo property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the singleSignatureInfo property. + * This is why there is not a <CODE>set</CODE> method for the singleSignatureInfo property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getSingleSignatureInfo().add(newItem); + * getSingleSignatureInfo().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link CreatePDFSignatureRequestType.SingleSignatureInfo } + * </p> * * + * @return + * The value of the singleSignatureInfo property. */ public List<CreatePDFSignatureRequestType.SingleSignatureInfo> getSingleSignatureInfo() { if (singleSignatureInfo == null) { - singleSignatureInfo = new ArrayList<CreatePDFSignatureRequestType.SingleSignatureInfo>(); + singleSignatureInfo = new ArrayList<>(); } return this.singleSignatureInfo; } /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="PDFDocument" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> - * <element name="SignatureProfile" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> - * <element name="SignaturePosition" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> - * <element name="SignatureID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="PDFDocument" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> + * <element name="SignatureProfile" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> + * <element name="SignaturePosition" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> + * <element name="SignatureID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -153,7 +164,7 @@ public class CreatePDFSignatureRequestType { protected String signatureID; /** - * Ruft den Wert der pdfDocument-Eigenschaft ab. + * Gets the value of the pdfDocument property. * * @return * possible object is @@ -164,7 +175,7 @@ public class CreatePDFSignatureRequestType { } /** - * Legt den Wert der pdfDocument-Eigenschaft fest. + * Sets the value of the pdfDocument property. * * @param value * allowed object is @@ -175,7 +186,7 @@ public class CreatePDFSignatureRequestType { } /** - * Ruft den Wert der signatureProfile-Eigenschaft ab. + * Gets the value of the signatureProfile property. * * @return * possible object is @@ -187,7 +198,7 @@ public class CreatePDFSignatureRequestType { } /** - * Legt den Wert der signatureProfile-Eigenschaft fest. + * Sets the value of the signatureProfile property. * * @param value * allowed object is @@ -199,7 +210,7 @@ public class CreatePDFSignatureRequestType { } /** - * Ruft den Wert der signaturePosition-Eigenschaft ab. + * Gets the value of the signaturePosition property. * * @return * possible object is @@ -211,7 +222,7 @@ public class CreatePDFSignatureRequestType { } /** - * Legt den Wert der signaturePosition-Eigenschaft fest. + * Sets the value of the signaturePosition property. * * @param value * allowed object is @@ -223,7 +234,7 @@ public class CreatePDFSignatureRequestType { } /** - * Ruft den Wert der signatureID-Eigenschaft ab. + * Gets the value of the signatureID property. * * @return * possible object is @@ -235,7 +246,7 @@ public class CreatePDFSignatureRequestType { } /** - * Legt den Wert der signatureID-Eigenschaft fest. + * Sets the value of the signatureID property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreatePDFSignatureResponseType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreatePDFSignatureResponseType.java index aff44b12..a00af5e8 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreatePDFSignatureResponseType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreatePDFSignatureResponseType.java @@ -3,28 +3,28 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für CreatePDFSignatureResponseType complex type. + * <p>Java class for CreatePDFSignatureResponseType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="CreatePDFSignatureResponseType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="PDFSignature" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}PDFSignedRepsonse" maxOccurs="unbounded"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="CreatePDFSignatureResponseType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="PDFSignature" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}PDFSignedRepsonse" maxOccurs="unbounded"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -40,28 +40,31 @@ public class CreatePDFSignatureResponseType { /** * Gets the value of the pdfSignature property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the pdfSignature property. + * This is why there is not a <CODE>set</CODE> method for the pdfSignature property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getPDFSignature().add(newItem); + * getPDFSignature().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link PDFSignedRepsonse } + * </p> * * + * @return + * The value of the pdfSignature property. */ public List<PDFSignedRepsonse> getPDFSignature() { if (pdfSignature == null) { - pdfSignature = new ArrayList<PDFSignedRepsonse>(); + pdfSignature = new ArrayList<>(); } return this.pdfSignature; } diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateSignatureEnvironmentProfile.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateSignatureEnvironmentProfile.java index 70802c2d..8fe91609 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateSignatureEnvironmentProfile.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateSignatureEnvironmentProfile.java @@ -3,30 +3,30 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="CreateSignatureLocation" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CreateSignatureLocationType"/> - * <element name="Supplement" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}XMLDataObjectAssociationType" maxOccurs="unbounded" minOccurs="0"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="CreateSignatureLocation" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CreateSignatureLocationType"/> + * <element name="Supplement" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}XMLDataObjectAssociationType" maxOccurs="unbounded" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -44,7 +44,7 @@ public class CreateSignatureEnvironmentProfile { protected List<XMLDataObjectAssociationType> supplement; /** - * Ruft den Wert der createSignatureLocation-Eigenschaft ab. + * Gets the value of the createSignatureLocation property. * * @return * possible object is @@ -56,7 +56,7 @@ public class CreateSignatureEnvironmentProfile { } /** - * Legt den Wert der createSignatureLocation-Eigenschaft fest. + * Sets the value of the createSignatureLocation property. * * @param value * allowed object is @@ -70,28 +70,31 @@ public class CreateSignatureEnvironmentProfile { /** * Gets the value of the supplement property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the supplement property. + * This is why there is not a <CODE>set</CODE> method for the supplement property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getSupplement().add(newItem); + * getSupplement().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link XMLDataObjectAssociationType } + * </p> * * + * @return + * The value of the supplement property. */ public List<XMLDataObjectAssociationType> getSupplement() { if (supplement == null) { - supplement = new ArrayList<XMLDataObjectAssociationType>(); + supplement = new ArrayList<>(); } return this.supplement; } diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateSignatureLocationType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateSignatureLocationType.java index 7a0fe306..92e1b568 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateSignatureLocationType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateSignatureLocationType.java @@ -2,30 +2,30 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.math.BigInteger; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.XmlValue; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlValue; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** - * <p>Java-Klasse für CreateSignatureLocationType complex type. + * <p>Java class for CreateSignatureLocationType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="CreateSignatureLocationType"> - * <simpleContent> - * <extension base="<http://www.w3.org/2001/XMLSchema>token"> - * <attribute name="Index" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" /> - * </extension> - * </simpleContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="CreateSignatureLocationType"> + * <simpleContent> + * <extension base="<http://www.w3.org/2001/XMLSchema>token"> + * <attribute name="Index" use="required" type="{http://www.w3.org/2001/XMLSchema}integer" /> + * </extension> + * </simpleContent> + * </complexType> + * }</pre> * * */ @@ -43,7 +43,7 @@ public class CreateSignatureLocationType { protected BigInteger index; /** - * Ruft den Wert der value-Eigenschaft ab. + * Gets the value of the value property. * * @return * possible object is @@ -55,7 +55,7 @@ public class CreateSignatureLocationType { } /** - * Legt den Wert der value-Eigenschaft fest. + * Sets the value of the value property. * * @param value * allowed object is @@ -67,7 +67,7 @@ public class CreateSignatureLocationType { } /** - * Ruft den Wert der index-Eigenschaft ab. + * Gets the value of the index property. * * @return * possible object is @@ -79,7 +79,7 @@ public class CreateSignatureLocationType { } /** - * Legt den Wert der index-Eigenschaft fest. + * Sets the value of the index property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateTransformsInfoProfile.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateTransformsInfoProfile.java index aa7e1b1b..0a6626a7 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateTransformsInfoProfile.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateTransformsInfoProfile.java @@ -3,30 +3,30 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="CreateTransformsInfo" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}TransformsInfoType"/> - * <element ref="{http://reference.e-government.gv.at/namespace/moa/20020822#}Supplement" maxOccurs="unbounded" minOccurs="0"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="CreateTransformsInfo" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}TransformsInfoType"/> + * <element ref="{http://reference.e-government.gv.at/namespace/moa/20020822#}Supplement" maxOccurs="unbounded" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -44,7 +44,7 @@ public class CreateTransformsInfoProfile { protected List<XMLDataObjectAssociationType> supplement; /** - * Ruft den Wert der createTransformsInfo-Eigenschaft ab. + * Gets the value of the createTransformsInfo property. * * @return * possible object is @@ -56,7 +56,7 @@ public class CreateTransformsInfoProfile { } /** - * Legt den Wert der createTransformsInfo-Eigenschaft fest. + * Sets the value of the createTransformsInfo property. * * @param value * allowed object is @@ -70,28 +70,31 @@ public class CreateTransformsInfoProfile { /** * Gets the value of the supplement property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the supplement property. + * This is why there is not a <CODE>set</CODE> method for the supplement property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getSupplement().add(newItem); + * getSupplement().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link XMLDataObjectAssociationType } + * </p> * * + * @return + * The value of the supplement property. */ public List<XMLDataObjectAssociationType> getSupplement() { if (supplement == null) { - supplement = new ArrayList<XMLDataObjectAssociationType>(); + supplement = new ArrayList<>(); } return this.supplement; } diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateXMLSignatureRequest.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateXMLSignatureRequest.java index 27b6746a..11a5cb47 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateXMLSignatureRequest.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateXMLSignatureRequest.java @@ -1,25 +1,25 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}CreateXMLSignatureRequestType"> - * </extension> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}CreateXMLSignatureRequestType"> + * </extension> + * </complexContent> + * </complexType> + * }</pre> * * */ diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateXMLSignatureRequestType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateXMLSignatureRequestType.java index d796d23b..91375653 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateXMLSignatureRequestType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateXMLSignatureRequestType.java @@ -3,68 +3,68 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** - * <p>Java-Klasse für CreateXMLSignatureRequestType complex type. + * <p>Java class for CreateXMLSignatureRequestType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="CreateXMLSignatureRequestType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="KeyIdentifier" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}KeyIdentifierType"/> - * <element name="SingleSignatureInfo" maxOccurs="unbounded"> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="DataObjectInfo" maxOccurs="unbounded"> - * <complexType> - * <complexContent> - * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}DataObjectInfoType"> - * <attribute name="ChildOfManifest" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /> - * </extension> - * </complexContent> - * </complexType> - * </element> - * <element name="CreateSignatureInfo" minOccurs="0"> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="CreateSignatureEnvironment" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentOptionalRefType"/> - * <choice> - * <element ref="{http://reference.e-government.gv.at/namespace/moa/20020822#}CreateSignatureEnvironmentProfile"/> - * <element name="CreateSignatureEnvironmentProfileID" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ProfileIdentifierType"/> - * </choice> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </element> - * </sequence> - * <attribute name="SecurityLayerConformity" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /> - * </restriction> - * </complexContent> - * </complexType> - * </element> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="CreateXMLSignatureRequestType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="KeyIdentifier" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}KeyIdentifierType"/> + * <element name="SingleSignatureInfo" maxOccurs="unbounded"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="DataObjectInfo" maxOccurs="unbounded"> + * <complexType> + * <complexContent> + * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}DataObjectInfoType"> + * <attribute name="ChildOfManifest" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /> + * </extension> + * </complexContent> + * </complexType> + * </element> + * <element name="CreateSignatureInfo" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="CreateSignatureEnvironment" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentOptionalRefType"/> + * <choice> + * <element ref="{http://reference.e-government.gv.at/namespace/moa/20020822#}CreateSignatureEnvironmentProfile"/> + * <element name="CreateSignatureEnvironmentProfileID" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ProfileIdentifierType"/> + * </choice> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="SecurityLayerConformity" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -80,11 +80,16 @@ public class CreateXMLSignatureRequestType { @XmlElement(name = "KeyIdentifier", required = true) protected String keyIdentifier; + /** + * Ermöglichung der Stapelsignatur durch + * wiederholte Angabe dieses Elements + * + */ @XmlElement(name = "SingleSignatureInfo", required = true) protected List<CreateXMLSignatureRequestType.SingleSignatureInfo> singleSignatureInfo; /** - * Ruft den Wert der keyIdentifier-Eigenschaft ab. + * Gets the value of the keyIdentifier property. * * @return * possible object is @@ -96,7 +101,7 @@ public class CreateXMLSignatureRequestType { } /** - * Legt den Wert der keyIdentifier-Eigenschaft fest. + * Sets the value of the keyIdentifier property. * * @param value * allowed object is @@ -108,75 +113,81 @@ public class CreateXMLSignatureRequestType { } /** + * Ermöglichung der Stapelsignatur durch + * wiederholte Angabe dieses Elements + * * Gets the value of the singleSignatureInfo property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the singleSignatureInfo property. + * This is why there is not a <CODE>set</CODE> method for the singleSignatureInfo property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getSingleSignatureInfo().add(newItem); + * getSingleSignatureInfo().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link CreateXMLSignatureRequestType.SingleSignatureInfo } + * </p> * * + * @return + * The value of the singleSignatureInfo property. */ public List<CreateXMLSignatureRequestType.SingleSignatureInfo> getSingleSignatureInfo() { if (singleSignatureInfo == null) { - singleSignatureInfo = new ArrayList<CreateXMLSignatureRequestType.SingleSignatureInfo>(); + singleSignatureInfo = new ArrayList<>(); } return this.singleSignatureInfo; } /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="DataObjectInfo" maxOccurs="unbounded"> - * <complexType> - * <complexContent> - * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}DataObjectInfoType"> - * <attribute name="ChildOfManifest" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /> - * </extension> - * </complexContent> - * </complexType> - * </element> - * <element name="CreateSignatureInfo" minOccurs="0"> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="CreateSignatureEnvironment" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentOptionalRefType"/> - * <choice> - * <element ref="{http://reference.e-government.gv.at/namespace/moa/20020822#}CreateSignatureEnvironmentProfile"/> - * <element name="CreateSignatureEnvironmentProfileID" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ProfileIdentifierType"/> - * </choice> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </element> - * </sequence> - * <attribute name="SecurityLayerConformity" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="DataObjectInfo" maxOccurs="unbounded"> + * <complexType> + * <complexContent> + * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}DataObjectInfoType"> + * <attribute name="ChildOfManifest" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /> + * </extension> + * </complexContent> + * </complexType> + * </element> + * <element name="CreateSignatureInfo" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="CreateSignatureEnvironment" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentOptionalRefType"/> + * <choice> + * <element ref="{http://reference.e-government.gv.at/namespace/moa/20020822#}CreateSignatureEnvironmentProfile"/> + * <element name="CreateSignatureEnvironmentProfileID" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ProfileIdentifierType"/> + * </choice> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * </sequence> + * <attribute name="SecurityLayerConformity" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -197,34 +208,37 @@ public class CreateXMLSignatureRequestType { /** * Gets the value of the dataObjectInfo property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the dataObjectInfo property. + * This is why there is not a <CODE>set</CODE> method for the dataObjectInfo property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getDataObjectInfo().add(newItem); + * getDataObjectInfo().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link CreateXMLSignatureRequestType.SingleSignatureInfo.DataObjectInfo } + * </p> * * + * @return + * The value of the dataObjectInfo property. */ public List<CreateXMLSignatureRequestType.SingleSignatureInfo.DataObjectInfo> getDataObjectInfo() { if (dataObjectInfo == null) { - dataObjectInfo = new ArrayList<CreateXMLSignatureRequestType.SingleSignatureInfo.DataObjectInfo>(); + dataObjectInfo = new ArrayList<>(); } return this.dataObjectInfo; } /** - * Ruft den Wert der createSignatureInfo-Eigenschaft ab. + * Gets the value of the createSignatureInfo property. * * @return * possible object is @@ -236,7 +250,7 @@ public class CreateXMLSignatureRequestType { } /** - * Legt den Wert der createSignatureInfo-Eigenschaft fest. + * Sets the value of the createSignatureInfo property. * * @param value * allowed object is @@ -248,7 +262,7 @@ public class CreateXMLSignatureRequestType { } /** - * Ruft den Wert der securityLayerConformity-Eigenschaft ab. + * Gets the value of the securityLayerConformity property. * * @return * possible object is @@ -264,7 +278,7 @@ public class CreateXMLSignatureRequestType { } /** - * Legt den Wert der securityLayerConformity-Eigenschaft fest. + * Sets the value of the securityLayerConformity property. * * @param value * allowed object is @@ -277,25 +291,25 @@ public class CreateXMLSignatureRequestType { /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="CreateSignatureEnvironment" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentOptionalRefType"/> - * <choice> - * <element ref="{http://reference.e-government.gv.at/namespace/moa/20020822#}CreateSignatureEnvironmentProfile"/> - * <element name="CreateSignatureEnvironmentProfileID" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ProfileIdentifierType"/> - * </choice> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="CreateSignatureEnvironment" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentOptionalRefType"/> + * <choice> + * <element ref="{http://reference.e-government.gv.at/namespace/moa/20020822#}CreateSignatureEnvironmentProfile"/> + * <element name="CreateSignatureEnvironmentProfileID" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ProfileIdentifierType"/> + * </choice> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -317,7 +331,7 @@ public class CreateXMLSignatureRequestType { protected String createSignatureEnvironmentProfileID; /** - * Ruft den Wert der createSignatureEnvironment-Eigenschaft ab. + * Gets the value of the createSignatureEnvironment property. * * @return * possible object is @@ -329,7 +343,7 @@ public class CreateXMLSignatureRequestType { } /** - * Legt den Wert der createSignatureEnvironment-Eigenschaft fest. + * Sets the value of the createSignatureEnvironment property. * * @param value * allowed object is @@ -341,7 +355,7 @@ public class CreateXMLSignatureRequestType { } /** - * Ruft den Wert der createSignatureEnvironmentProfile-Eigenschaft ab. + * Gets the value of the createSignatureEnvironmentProfile property. * * @return * possible object is @@ -353,7 +367,7 @@ public class CreateXMLSignatureRequestType { } /** - * Legt den Wert der createSignatureEnvironmentProfile-Eigenschaft fest. + * Sets the value of the createSignatureEnvironmentProfile property. * * @param value * allowed object is @@ -365,7 +379,7 @@ public class CreateXMLSignatureRequestType { } /** - * Ruft den Wert der createSignatureEnvironmentProfileID-Eigenschaft ab. + * Gets the value of the createSignatureEnvironmentProfileID property. * * @return * possible object is @@ -377,7 +391,7 @@ public class CreateXMLSignatureRequestType { } /** - * Legt den Wert der createSignatureEnvironmentProfileID-Eigenschaft fest. + * Sets the value of the createSignatureEnvironmentProfileID property. * * @param value * allowed object is @@ -392,19 +406,19 @@ public class CreateXMLSignatureRequestType { /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}DataObjectInfoType"> - * <attribute name="ChildOfManifest" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /> - * </extension> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}DataObjectInfoType"> + * <attribute name="ChildOfManifest" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" /> + * </extension> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -418,7 +432,7 @@ public class CreateXMLSignatureRequestType { protected Boolean childOfManifest; /** - * Ruft den Wert der childOfManifest-Eigenschaft ab. + * Gets the value of the childOfManifest property. * * @return * possible object is @@ -434,7 +448,7 @@ public class CreateXMLSignatureRequestType { } /** - * Legt den Wert der childOfManifest-Eigenschaft fest. + * Sets the value of the childOfManifest property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateXMLSignatureResponseType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateXMLSignatureResponseType.java index e27da519..038e5f94 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateXMLSignatureResponseType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/CreateXMLSignatureResponseType.java @@ -3,42 +3,42 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlElements; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlElements; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; /** - * <p>Java-Klasse für CreateXMLSignatureResponseType complex type. + * <p>Java class for CreateXMLSignatureResponseType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="CreateXMLSignatureResponseType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <choice maxOccurs="unbounded"> - * <element name="SignatureEnvironment"> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <any processContents='lax'/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </element> - * <element ref="{http://reference.e-government.gv.at/namespace/moa/20020822#}ErrorResponse"/> - * </choice> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="CreateXMLSignatureResponseType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <choice maxOccurs="unbounded"> + * <element name="SignatureEnvironment"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <any processContents='lax'/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element ref="{http://reference.e-government.gv.at/namespace/moa/20020822#}ErrorResponse"/> + * </choice> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -48,6 +48,11 @@ import org.w3c.dom.Element; }) public class CreateXMLSignatureResponseType { + /** + * Kardinalität 1..oo erlaubt die Antwort auf eine + * Stapelsignatur-Anfrage + * + */ @XmlElements({ @XmlElement(name = "SignatureEnvironment", type = CreateXMLSignatureResponseType.SignatureEnvironment.class), @XmlElement(name = "ErrorResponse", type = ErrorResponseType.class) @@ -55,18 +60,21 @@ public class CreateXMLSignatureResponseType { protected List<Object> signatureEnvironmentOrErrorResponse; /** + * Kardinalität 1..oo erlaubt die Antwort auf eine + * Stapelsignatur-Anfrage + * * Gets the value of the signatureEnvironmentOrErrorResponse property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the signatureEnvironmentOrErrorResponse property. + * This is why there is not a <CODE>set</CODE> method for the signatureEnvironmentOrErrorResponse property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getSignatureEnvironmentOrErrorResponse().add(newItem); + * getSignatureEnvironmentOrErrorResponse().add(newItem); * </pre> * * @@ -74,33 +82,36 @@ public class CreateXMLSignatureResponseType { * Objects of the following type(s) are allowed in the list * {@link CreateXMLSignatureResponseType.SignatureEnvironment } * {@link ErrorResponseType } + * </p> * * + * @return + * The value of the signatureEnvironmentOrErrorResponse property. */ public List<Object> getSignatureEnvironmentOrErrorResponse() { if (signatureEnvironmentOrErrorResponse == null) { - signatureEnvironmentOrErrorResponse = new ArrayList<Object>(); + signatureEnvironmentOrErrorResponse = new ArrayList<>(); } return this.signatureEnvironmentOrErrorResponse; } /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <any processContents='lax'/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <any processContents='lax'/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -114,7 +125,7 @@ public class CreateXMLSignatureResponseType { protected Object any; /** - * Ruft den Wert der any-Eigenschaft ab. + * Gets the value of the any property. * * @return * possible object is @@ -127,7 +138,7 @@ public class CreateXMLSignatureResponseType { } /** - * Legt den Wert der any-Eigenschaft fest. + * Sets the value of the any property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/DataObjectInfoType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/DataObjectInfoType.java index d41f944e..6a798499 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/DataObjectInfoType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/DataObjectInfoType.java @@ -1,52 +1,52 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** - * <p>Java-Klasse für DataObjectInfoType complex type. + * <p>Java class for DataObjectInfoType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="DataObjectInfoType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="DataObject"> - * <complexType> - * <complexContent> - * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentOptionalRefType"> - * </extension> - * </complexContent> - * </complexType> - * </element> - * <choice> - * <element ref="{http://reference.e-government.gv.at/namespace/moa/20020822#}CreateTransformsInfoProfile"/> - * <element name="CreateTransformsInfoProfileID" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ProfileIdentifierType"/> - * </choice> - * </sequence> - * <attribute name="Structure" use="required"> - * <simpleType> - * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> - * <enumeration value="detached"/> - * <enumeration value="enveloping"/> - * </restriction> - * </simpleType> - * </attribute> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="DataObjectInfoType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="DataObject"> + * <complexType> + * <complexContent> + * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentOptionalRefType"> + * </extension> + * </complexContent> + * </complexType> + * </element> + * <choice> + * <element ref="{http://reference.e-government.gv.at/namespace/moa/20020822#}CreateTransformsInfoProfile"/> + * <element name="CreateTransformsInfoProfileID" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ProfileIdentifierType"/> + * </choice> + * </sequence> + * <attribute name="Structure" use="required"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * <enumeration value="detached"/> + * <enumeration value="enveloping"/> + * </restriction> + * </simpleType> + * </attribute> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -73,7 +73,7 @@ public class DataObjectInfoType { protected String structure; /** - * Ruft den Wert der dataObject-Eigenschaft ab. + * Gets the value of the dataObject property. * * @return * possible object is @@ -85,7 +85,7 @@ public class DataObjectInfoType { } /** - * Legt den Wert der dataObject-Eigenschaft fest. + * Sets the value of the dataObject property. * * @param value * allowed object is @@ -97,7 +97,7 @@ public class DataObjectInfoType { } /** - * Ruft den Wert der createTransformsInfoProfile-Eigenschaft ab. + * Gets the value of the createTransformsInfoProfile property. * * @return * possible object is @@ -109,7 +109,7 @@ public class DataObjectInfoType { } /** - * Legt den Wert der createTransformsInfoProfile-Eigenschaft fest. + * Sets the value of the createTransformsInfoProfile property. * * @param value * allowed object is @@ -121,7 +121,7 @@ public class DataObjectInfoType { } /** - * Ruft den Wert der createTransformsInfoProfileID-Eigenschaft ab. + * Gets the value of the createTransformsInfoProfileID property. * * @return * possible object is @@ -133,7 +133,7 @@ public class DataObjectInfoType { } /** - * Legt den Wert der createTransformsInfoProfileID-Eigenschaft fest. + * Sets the value of the createTransformsInfoProfileID property. * * @param value * allowed object is @@ -145,7 +145,7 @@ public class DataObjectInfoType { } /** - * Ruft den Wert der structure-Eigenschaft ab. + * Gets the value of the structure property. * * @return * possible object is @@ -157,7 +157,7 @@ public class DataObjectInfoType { } /** - * Legt den Wert der structure-Eigenschaft fest. + * Sets the value of the structure property. * * @param value * allowed object is @@ -170,18 +170,18 @@ public class DataObjectInfoType { /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentOptionalRefType"> - * </extension> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentOptionalRefType"> + * </extension> + * </complexContent> + * </complexType> + * }</pre> * * */ diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ErrorResponseType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ErrorResponseType.java index 42a2a4e5..5c362c57 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ErrorResponseType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ErrorResponseType.java @@ -2,29 +2,29 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.math.BigInteger; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für ErrorResponseType complex type. + * <p>Java class for ErrorResponseType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="ErrorResponseType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="ErrorCode" type="{http://www.w3.org/2001/XMLSchema}integer"/> - * <element name="Info" type="{http://www.w3.org/2001/XMLSchema}string"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="ErrorResponseType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="ErrorCode" type="{http://www.w3.org/2001/XMLSchema}integer"/> + * <element name="Info" type="{http://www.w3.org/2001/XMLSchema}string"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -41,7 +41,7 @@ public class ErrorResponseType { protected String info; /** - * Ruft den Wert der errorCode-Eigenschaft ab. + * Gets the value of the errorCode property. * * @return * possible object is @@ -53,7 +53,7 @@ public class ErrorResponseType { } /** - * Legt den Wert der errorCode-Eigenschaft fest. + * Sets the value of the errorCode property. * * @param value * allowed object is @@ -65,7 +65,7 @@ public class ErrorResponseType { } /** - * Ruft den Wert der info-Eigenschaft ab. + * Gets the value of the info property. * * @return * possible object is @@ -77,7 +77,7 @@ public class ErrorResponseType { } /** - * Legt den Wert der info-Eigenschaft fest. + * Sets the value of the info property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ExtendedCertificateCheckResultType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ExtendedCertificateCheckResultType.java index 88cead17..6cc2efab 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ExtendedCertificateCheckResultType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ExtendedCertificateCheckResultType.java @@ -1,29 +1,29 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für ExtendedCertificateCheckResultType complex type. + * <p>Java class for ExtendedCertificateCheckResultType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="ExtendedCertificateCheckResultType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="Major" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}IndicationResultType"/> - * <element name="Minor" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}IndicationResultType" minOccurs="0"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="ExtendedCertificateCheckResultType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Major" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}IndicationResultType"/> + * <element name="Minor" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}IndicationResultType" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -40,7 +40,7 @@ public class ExtendedCertificateCheckResultType { protected IndicationResultType minor; /** - * Ruft den Wert der major-Eigenschaft ab. + * Gets the value of the major property. * * @return * possible object is @@ -52,7 +52,7 @@ public class ExtendedCertificateCheckResultType { } /** - * Legt den Wert der major-Eigenschaft fest. + * Sets the value of the major property. * * @param value * allowed object is @@ -64,7 +64,7 @@ public class ExtendedCertificateCheckResultType { } /** - * Ruft den Wert der minor-Eigenschaft ab. + * Gets the value of the minor property. * * @return * possible object is @@ -76,7 +76,7 @@ public class ExtendedCertificateCheckResultType { } /** - * Legt den Wert der minor-Eigenschaft fest. + * Sets the value of the minor property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/FinalDataMetaInfoType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/FinalDataMetaInfoType.java index 440be0b8..7c19c7a4 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/FinalDataMetaInfoType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/FinalDataMetaInfoType.java @@ -1,29 +1,29 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für FinalDataMetaInfoType complex type. + * <p>Java class for FinalDataMetaInfoType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="FinalDataMetaInfoType"> - * <complexContent> - * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}MetaInfoType"> - * <sequence> - * <element name="Type" type="{http://www.w3.org/2001/XMLSchema}anyURI" minOccurs="0"/> - * </sequence> - * </extension> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="FinalDataMetaInfoType"> + * <complexContent> + * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}MetaInfoType"> + * <sequence> + * <element name="Type" type="{http://www.w3.org/2001/XMLSchema}anyURI" minOccurs="0"/> + * </sequence> + * </extension> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -40,7 +40,7 @@ public class FinalDataMetaInfoType protected String type; /** - * Ruft den Wert der type-Eigenschaft ab. + * Gets the value of the type property. * * @return * possible object is @@ -52,7 +52,7 @@ public class FinalDataMetaInfoType } /** - * Legt den Wert der type-Eigenschaft fest. + * Sets the value of the type property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/FormResultType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/FormResultType.java index 338ad4fd..8ed2e9a6 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/FormResultType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/FormResultType.java @@ -2,30 +2,30 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.math.BigInteger; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für FormResultType complex type. + * <p>Java class for FormResultType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="FormResultType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="Code" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger"/> - * <element name="Name" type="{http://www.w3.org/2001/XMLSchema}string"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="FormResultType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Code" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger"/> + * <element name="Name" type="{http://www.w3.org/2001/XMLSchema}string"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -43,7 +43,7 @@ public class FormResultType { protected String name; /** - * Ruft den Wert der code-Eigenschaft ab. + * Gets the value of the code property. * * @return * possible object is @@ -55,7 +55,7 @@ public class FormResultType { } /** - * Legt den Wert der code-Eigenschaft fest. + * Sets the value of the code property. * * @param value * allowed object is @@ -67,7 +67,7 @@ public class FormResultType { } /** - * Ruft den Wert der name-Eigenschaft ab. + * Gets the value of the name property. * * @return * possible object is @@ -79,7 +79,7 @@ public class FormResultType { } /** - * Legt den Wert der name-Eigenschaft fest. + * Sets the value of the name property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/IndicationResultType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/IndicationResultType.java index 248a58bb..9f1f8202 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/IndicationResultType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/IndicationResultType.java @@ -2,30 +2,30 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.math.BigInteger; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für IndicationResultType complex type. + * <p>Java class for IndicationResultType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="IndicationResultType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="Code" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger"/> - * <element name="Name" type="{http://www.w3.org/2001/XMLSchema}string"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="IndicationResultType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Code" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger"/> + * <element name="Name" type="{http://www.w3.org/2001/XMLSchema}string"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -43,7 +43,7 @@ public class IndicationResultType { protected String name; /** - * Ruft den Wert der code-Eigenschaft ab. + * Gets the value of the code property. * * @return * possible object is @@ -55,7 +55,7 @@ public class IndicationResultType { } /** - * Legt den Wert der code-Eigenschaft fest. + * Sets the value of the code property. * * @param value * allowed object is @@ -67,7 +67,7 @@ public class IndicationResultType { } /** - * Ruft den Wert der name-Eigenschaft ab. + * Gets the value of the name property. * * @return * possible object is @@ -79,7 +79,7 @@ public class IndicationResultType { } /** - * Legt den Wert der name-Eigenschaft fest. + * Sets the value of the name property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/InputDataType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/InputDataType.java index 069cfaa7..dc11cfdd 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/InputDataType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/InputDataType.java @@ -2,38 +2,38 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.math.BigInteger; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** - * <p>Java-Klasse für InputDataType complex type. + * <p>Java class for InputDataType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="InputDataType"> - * <complexContent> - * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentExLocRefBaseType"> - * <attribute name="PartOf" default="SignedInfo"> - * <simpleType> - * <restriction base="{http://www.w3.org/2001/XMLSchema}token"> - * <enumeration value="SignedInfo"/> - * <enumeration value="XMLDSIGManifest"/> - * </restriction> - * </simpleType> - * </attribute> - * <attribute name="ReferringSigReference" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" /> - * <attribute name="HashAlgorithm" type="{http://www.w3.org/2001/XMLSchema}string" /> - * </extension> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="InputDataType"> + * <complexContent> + * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentExLocRefBaseType"> + * <attribute name="PartOf" default="SignedInfo"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}token"> + * <enumeration value="SignedInfo"/> + * <enumeration value="XMLDSIGManifest"/> + * </restriction> + * </simpleType> + * </attribute> + * <attribute name="ReferringSigReference" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger" /> + * <attribute name="HashAlgorithm" type="{http://www.w3.org/2001/XMLSchema}string" /> + * </extension> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -53,7 +53,7 @@ public class InputDataType protected String hashAlgorithm; /** - * Ruft den Wert der partOf-Eigenschaft ab. + * Gets the value of the partOf property. * * @return * possible object is @@ -69,7 +69,7 @@ public class InputDataType } /** - * Legt den Wert der partOf-Eigenschaft fest. + * Sets the value of the partOf property. * * @param value * allowed object is @@ -81,7 +81,7 @@ public class InputDataType } /** - * Ruft den Wert der referringSigReference-Eigenschaft ab. + * Gets the value of the referringSigReference property. * * @return * possible object is @@ -93,7 +93,7 @@ public class InputDataType } /** - * Legt den Wert der referringSigReference-Eigenschaft fest. + * Sets the value of the referringSigReference property. * * @param value * allowed object is @@ -105,7 +105,7 @@ public class InputDataType } /** - * Ruft den Wert der hashAlgorithm-Eigenschaft ab. + * Gets the value of the hashAlgorithm property. * * @return * possible object is @@ -117,7 +117,7 @@ public class InputDataType } /** - * Legt den Wert der hashAlgorithm-Eigenschaft fest. + * Sets the value of the hashAlgorithm property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/KeyStorageType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/KeyStorageType.java index 7bbd78cd..b7d3157e 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/KeyStorageType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/KeyStorageType.java @@ -1,23 +1,25 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlEnum; -import javax.xml.bind.annotation.XmlEnumValue; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlEnumValue; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für KeyStorageType. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. - * <pre> - * <simpleType name="KeyStorageType"> - * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> - * <enumeration value="Software"/> - * <enumeration value="Hardware"/> - * </restriction> - * </simpleType> - * </pre> + * + * <p>Java class for KeyStorageType</p>. + * + * <p>The following schema fragment specifies the expected content contained within this class.</p> + * <pre>{@code + * <simpleType name="KeyStorageType"> + * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> + * <enumeration value="Software"/> + * <enumeration value="Hardware"/> + * </restriction> + * </simpleType> + * }</pre> * */ @XmlType(name = "KeyStorageType") @@ -34,10 +36,26 @@ public enum KeyStorageType { value = v; } + /** + * Gets the value associated to the enum constant. + * + * @return + * The value linked to the enum. + */ public String value() { return value; } + /** + * Gets the enum associated to the value passed as parameter. + * + * @param v + * The value to get the enum from. + * @return + * The enum which corresponds to the value, if it exists. + * @throws IllegalArgumentException + * If no value matches in the enum declaration. + */ public static KeyStorageType fromValue(String v) { for (KeyStorageType c: KeyStorageType.values()) { if (c.value.equals(v)) { diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/MOAFault.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/MOAFault.java index 44a32b08..f1864516 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/MOAFault.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/MOAFault.java @@ -1,13 +1,13 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.ws.WebFault; +import jakarta.xml.ws.WebFault; /** - * This class was generated by Apache CXF 3.5.8 - * 2024-07-22T14:45:18.252+02:00 - * Generated source version: 3.5.8 + * This class was generated by Apache CXF 4.1.0 + * 2025-07-16T16:47:50.597+02:00 + * Generated source version: 4.1.0 */ @WebFault(name = "ErrorResponse", targetNamespace = "http://reference.e-government.gv.at/namespace/moa/20020822#") diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ManifestRefsCheckResultInfoType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ManifestRefsCheckResultInfoType.java index 2c9db452..ce017445 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ManifestRefsCheckResultInfoType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ManifestRefsCheckResultInfoType.java @@ -1,29 +1,29 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für ManifestRefsCheckResultInfoType complex type. + * <p>Java class for ManifestRefsCheckResultInfoType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="ManifestRefsCheckResultInfoType"> - * <complexContent> - * <restriction base="{http://reference.e-government.gv.at/namespace/moa/20020822#}AnyChildrenType"> - * <sequence> - * <any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/> - * <element name="FailedReference" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" maxOccurs="unbounded" minOccurs="0"/> - * <element name="ReferringSigReference" type="{http://www.w3.org/2001/XMLSchema}positiveInteger"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="ManifestRefsCheckResultInfoType"> + * <complexContent> + * <restriction base="{http://reference.e-government.gv.at/namespace/moa/20020822#}AnyChildrenType"> + * <sequence> + * <any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/> + * <element name="FailedReference" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" maxOccurs="unbounded" minOccurs="0"/> + * <element name="ReferringSigReference" type="{http://www.w3.org/2001/XMLSchema}positiveInteger"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ManifestRefsCheckResultType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ManifestRefsCheckResultType.java index 7694cbb8..54a555b0 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ManifestRefsCheckResultType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ManifestRefsCheckResultType.java @@ -1,28 +1,28 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für ManifestRefsCheckResultType complex type. + * <p>Java class for ManifestRefsCheckResultType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="ManifestRefsCheckResultType"> - * <complexContent> - * <restriction base="{http://reference.e-government.gv.at/namespace/moa/20020822#}CheckResultType"> - * <sequence> - * <element name="Code" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger"/> - * <element name="Info" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ManifestRefsCheckResultInfoType"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="ManifestRefsCheckResultType"> + * <complexContent> + * <restriction base="{http://reference.e-government.gv.at/namespace/moa/20020822#}CheckResultType"> + * <sequence> + * <element name="Code" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger"/> + * <element name="Info" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ManifestRefsCheckResultInfoType"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/MetaInfoType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/MetaInfoType.java index b73e98b3..4363ecac 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/MetaInfoType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/MetaInfoType.java @@ -3,35 +3,35 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** - * <p>Java-Klasse für MetaInfoType complex type. + * <p>Java class for MetaInfoType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="MetaInfoType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="MimeType" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}MimeTypeType"/> - * <element name="Description" type="{http://www.w3.org/2001/XMLSchema}anyURI" minOccurs="0"/> - * <any namespace='##other' maxOccurs="unbounded" minOccurs="0"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="MetaInfoType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="MimeType" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}MimeTypeType"/> + * <element name="Description" type="{http://www.w3.org/2001/XMLSchema}anyURI" minOccurs="0"/> + * <any namespace='##other' maxOccurs="unbounded" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -57,7 +57,7 @@ public class MetaInfoType { protected List<Object> any; /** - * Ruft den Wert der mimeType-Eigenschaft ab. + * Gets the value of the mimeType property. * * @return * possible object is @@ -69,7 +69,7 @@ public class MetaInfoType { } /** - * Legt den Wert der mimeType-Eigenschaft fest. + * Sets the value of the mimeType property. * * @param value * allowed object is @@ -81,7 +81,7 @@ public class MetaInfoType { } /** - * Ruft den Wert der description-Eigenschaft ab. + * Gets the value of the description property. * * @return * possible object is @@ -93,7 +93,7 @@ public class MetaInfoType { } /** - * Legt den Wert der description-Eigenschaft fest. + * Sets the value of the description property. * * @param value * allowed object is @@ -107,28 +107,31 @@ public class MetaInfoType { /** * Gets the value of the any property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the any property. + * This is why there is not a <CODE>set</CODE> method for the any property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getAny().add(newItem); + * getAny().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link Object } + * </p> * * + * @return + * The value of the any property. */ public List<Object> getAny() { if (any == null) { - any = new ArrayList<Object>(); + any = new ArrayList<>(); } return this.any; } diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ObjectFactory.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ObjectFactory.java index 17b1707d..224a2b64 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ObjectFactory.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ObjectFactory.java @@ -1,13 +1,13 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlElementDecl; -import javax.xml.bind.annotation.XmlRegistry; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import javax.xml.datatype.XMLGregorianCalendar; import javax.xml.namespace.QName; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlElementDecl; +import jakarta.xml.bind.annotation.XmlRegistry; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.w3._2000._09.xmldsig_.KeyInfoType; @@ -15,7 +15,7 @@ import org.w3._2000._09.xmldsig_.KeyInfoType; * This object contains factory methods for each * Java content interface and Java element interface * generated in the at.gv.e_government.reference.namespace.moa._20020822_ package. - * <p>An ObjectFactory allows you to programatically + * <p>An ObjectFactory allows you to programmatically * construct new instances of the Java representation * for XML content. The Java representation of XML * content can consist of schema derived interfaces @@ -28,26 +28,26 @@ import org.w3._2000._09.xmldsig_.KeyInfoType; @XmlRegistry public class ObjectFactory { - private final static QName _CreateCMSSignatureResponse_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "CreateCMSSignatureResponse"); - private final static QName _CreateXMLSignatureResponse_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "CreateXMLSignatureResponse"); - private final static QName _CreatePDFSignatureResponse_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "CreatePDFSignatureResponse"); - private final static QName _VerifyCMSSignatureResponse_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "VerifyCMSSignatureResponse"); - private final static QName _VerifyASICSignatureResponse_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "VerifyASICSignatureResponse"); - private final static QName _VerifyPDFSignatureResponse_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "VerifyPDFSignatureResponse"); - private final static QName _VerifyXMLSignatureRequest_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "VerifyXMLSignatureRequest"); - private final static QName _VerifyXMLSignatureResponse_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "VerifyXMLSignatureResponse"); - private final static QName _ErrorResponse_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "ErrorResponse"); - private final static QName _IssuingCountry_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "IssuingCountry"); - private final static QName _PublicAuthority_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "PublicAuthority"); - private final static QName _Supplement_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "Supplement"); - private final static QName _SupplementProfile_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "SupplementProfile"); - private final static QName _VerifyASICCMSSignatureResponseTypeSignerInfo_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "SignerInfo"); - private final static QName _VerifyASICCMSSignatureResponseTypeSigningTime_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "SigningTime"); - private final static QName _VerifyASICCMSSignatureResponseTypeSignatureCheck_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "SignatureCheck"); - private final static QName _VerifyASICCMSSignatureResponseTypeCertificateCheck_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "CertificateCheck"); - private final static QName _VerifyASICCMSSignatureResponseTypeFormCheckResult_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "FormCheckResult"); - private final static QName _VerifyASICCMSSignatureResponseTypeExtendedCertificateCheck_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "ExtendedCertificateCheck"); - private final static QName _VerifyCMSSignatureResponseTypeSignatureAlgorithm_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "SignatureAlgorithm"); + private static final QName _CreateCMSSignatureResponse_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "CreateCMSSignatureResponse"); + private static final QName _CreateXMLSignatureResponse_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "CreateXMLSignatureResponse"); + private static final QName _CreatePDFSignatureResponse_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "CreatePDFSignatureResponse"); + private static final QName _VerifyCMSSignatureResponse_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "VerifyCMSSignatureResponse"); + private static final QName _VerifyASICSignatureResponse_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "VerifyASICSignatureResponse"); + private static final QName _VerifyPDFSignatureResponse_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "VerifyPDFSignatureResponse"); + private static final QName _VerifyXMLSignatureRequest_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "VerifyXMLSignatureRequest"); + private static final QName _VerifyXMLSignatureResponse_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "VerifyXMLSignatureResponse"); + private static final QName _ErrorResponse_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "ErrorResponse"); + private static final QName _IssuingCountry_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "IssuingCountry"); + private static final QName _PublicAuthority_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "PublicAuthority"); + private static final QName _Supplement_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "Supplement"); + private static final QName _SupplementProfile_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "SupplementProfile"); + private static final QName _VerifyASICCMSSignatureResponseTypeSignerInfo_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "SignerInfo"); + private static final QName _VerifyASICCMSSignatureResponseTypeSigningTime_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "SigningTime"); + private static final QName _VerifyASICCMSSignatureResponseTypeSignatureCheck_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "SignatureCheck"); + private static final QName _VerifyASICCMSSignatureResponseTypeCertificateCheck_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "CertificateCheck"); + private static final QName _VerifyASICCMSSignatureResponseTypeFormCheckResult_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "FormCheckResult"); + private static final QName _VerifyASICCMSSignatureResponseTypeExtendedCertificateCheck_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "ExtendedCertificateCheck"); + private static final QName _VerifyCMSSignatureResponseTypeSignatureAlgorithm_QNAME = new QName("http://reference.e-government.gv.at/namespace/moa/20020822#", "SignatureAlgorithm"); /** * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: at.gv.e_government.reference.namespace.moa._20020822_ @@ -59,6 +59,8 @@ public class ObjectFactory { /** * Create an instance of {@link CreateCMSSignatureRequestType } * + * @return + * the new instance of {@link CreateCMSSignatureRequestType } */ public CreateCMSSignatureRequestType createCreateCMSSignatureRequestType() { return new CreateCMSSignatureRequestType(); @@ -67,6 +69,8 @@ public class ObjectFactory { /** * Create an instance of {@link CreateXMLSignatureRequestType } * + * @return + * the new instance of {@link CreateXMLSignatureRequestType } */ public CreateXMLSignatureRequestType createCreateXMLSignatureRequestType() { return new CreateXMLSignatureRequestType(); @@ -75,6 +79,8 @@ public class ObjectFactory { /** * Create an instance of {@link CreatePDFSignatureRequestType } * + * @return + * the new instance of {@link CreatePDFSignatureRequestType } */ public CreatePDFSignatureRequestType createCreatePDFSignatureRequestType() { return new CreatePDFSignatureRequestType(); @@ -83,6 +89,8 @@ public class ObjectFactory { /** * Create an instance of {@link CMSDataObjectInfoType } * + * @return + * the new instance of {@link CMSDataObjectInfoType } */ public CMSDataObjectInfoType createCMSDataObjectInfoType() { return new CMSDataObjectInfoType(); @@ -91,6 +99,8 @@ public class ObjectFactory { /** * Create an instance of {@link DataObjectInfoType } * + * @return + * the new instance of {@link DataObjectInfoType } */ public DataObjectInfoType createDataObjectInfoType() { return new DataObjectInfoType(); @@ -99,6 +109,8 @@ public class ObjectFactory { /** * Create an instance of {@link ASICResultType } * + * @return + * the new instance of {@link ASICResultType } */ public ASICResultType createASICResultType() { return new ASICResultType(); @@ -107,6 +119,8 @@ public class ObjectFactory { /** * Create an instance of {@link TransformParameterType } * + * @return + * the new instance of {@link TransformParameterType } */ public TransformParameterType createTransformParameterType() { return new TransformParameterType(); @@ -115,6 +129,8 @@ public class ObjectFactory { /** * Create an instance of {@link VerifyXMLSignatureRequestType } * + * @return + * the new instance of {@link VerifyXMLSignatureRequestType } */ public VerifyXMLSignatureRequestType createVerifyXMLSignatureRequestType() { return new VerifyXMLSignatureRequestType(); @@ -123,6 +139,8 @@ public class ObjectFactory { /** * Create an instance of {@link CreateXMLSignatureResponseType } * + * @return + * the new instance of {@link CreateXMLSignatureResponseType } */ public CreateXMLSignatureResponseType createCreateXMLSignatureResponseType() { return new CreateXMLSignatureResponseType(); @@ -131,6 +149,8 @@ public class ObjectFactory { /** * Create an instance of {@link CreateXMLSignatureRequestType.SingleSignatureInfo } * + * @return + * the new instance of {@link CreateXMLSignatureRequestType.SingleSignatureInfo } */ public CreateXMLSignatureRequestType.SingleSignatureInfo createCreateXMLSignatureRequestTypeSingleSignatureInfo() { return new CreateXMLSignatureRequestType.SingleSignatureInfo(); @@ -139,6 +159,8 @@ public class ObjectFactory { /** * Create an instance of {@link CreateCMSSignatureRequestType.SingleSignatureInfo } * + * @return + * the new instance of {@link CreateCMSSignatureRequestType.SingleSignatureInfo } */ public CreateCMSSignatureRequestType.SingleSignatureInfo createCreateCMSSignatureRequestTypeSingleSignatureInfo() { return new CreateCMSSignatureRequestType.SingleSignatureInfo(); @@ -147,6 +169,8 @@ public class ObjectFactory { /** * Create an instance of {@link CreateCMSSignatureRequest } * + * @return + * the new instance of {@link CreateCMSSignatureRequest } */ public CreateCMSSignatureRequest createCreateCMSSignatureRequest() { return new CreateCMSSignatureRequest(); @@ -155,6 +179,8 @@ public class ObjectFactory { /** * Create an instance of {@link CreateCMSSignatureResponseType } * + * @return + * the new instance of {@link CreateCMSSignatureResponseType } */ public CreateCMSSignatureResponseType createCreateCMSSignatureResponseType() { return new CreateCMSSignatureResponseType(); @@ -163,6 +189,8 @@ public class ObjectFactory { /** * Create an instance of {@link CreateXMLSignatureRequest } * + * @return + * the new instance of {@link CreateXMLSignatureRequest } */ public CreateXMLSignatureRequest createCreateXMLSignatureRequest() { return new CreateXMLSignatureRequest(); @@ -171,6 +199,8 @@ public class ObjectFactory { /** * Create an instance of {@link CreatePDFSignatureRequest } * + * @return + * the new instance of {@link CreatePDFSignatureRequest } */ public CreatePDFSignatureRequest createCreatePDFSignatureRequest() { return new CreatePDFSignatureRequest(); @@ -179,6 +209,8 @@ public class ObjectFactory { /** * Create an instance of {@link CreatePDFSignatureRequestType.SingleSignatureInfo } * + * @return + * the new instance of {@link CreatePDFSignatureRequestType.SingleSignatureInfo } */ public CreatePDFSignatureRequestType.SingleSignatureInfo createCreatePDFSignatureRequestTypeSingleSignatureInfo() { return new CreatePDFSignatureRequestType.SingleSignatureInfo(); @@ -187,6 +219,8 @@ public class ObjectFactory { /** * Create an instance of {@link CreatePDFSignatureResponseType } * + * @return + * the new instance of {@link CreatePDFSignatureResponseType } */ public CreatePDFSignatureResponseType createCreatePDFSignatureResponseType() { return new CreatePDFSignatureResponseType(); @@ -195,6 +229,8 @@ public class ObjectFactory { /** * Create an instance of {@link VerifyCMSSignatureRequest } * + * @return + * the new instance of {@link VerifyCMSSignatureRequest } */ public VerifyCMSSignatureRequest createVerifyCMSSignatureRequest() { return new VerifyCMSSignatureRequest(); @@ -203,6 +239,8 @@ public class ObjectFactory { /** * Create an instance of {@link VerifyCMSSignatureRequestType } * + * @return + * the new instance of {@link VerifyCMSSignatureRequestType } */ public VerifyCMSSignatureRequestType createVerifyCMSSignatureRequestType() { return new VerifyCMSSignatureRequestType(); @@ -211,6 +249,8 @@ public class ObjectFactory { /** * Create an instance of {@link CMSDataObjectOptionalMetaType } * + * @return + * the new instance of {@link CMSDataObjectOptionalMetaType } */ public CMSDataObjectOptionalMetaType createCMSDataObjectOptionalMetaType() { return new CMSDataObjectOptionalMetaType(); @@ -219,6 +259,8 @@ public class ObjectFactory { /** * Create an instance of {@link VerifyCMSSignatureResponseType } * + * @return + * the new instance of {@link VerifyCMSSignatureResponseType } */ public VerifyCMSSignatureResponseType createVerifyCMSSignatureResponseType() { return new VerifyCMSSignatureResponseType(); @@ -227,6 +269,8 @@ public class ObjectFactory { /** * Create an instance of {@link VerifyPDFSignatureRequest } * + * @return + * the new instance of {@link VerifyPDFSignatureRequest } */ public VerifyPDFSignatureRequest createVerifyPDFSignatureRequest() { return new VerifyPDFSignatureRequest(); @@ -235,6 +279,8 @@ public class ObjectFactory { /** * Create an instance of {@link VerifyPDFSignatureRequestType } * + * @return + * the new instance of {@link VerifyPDFSignatureRequestType } */ public VerifyPDFSignatureRequestType createVerifyPDFSignatureRequestType() { return new VerifyPDFSignatureRequestType(); @@ -243,6 +289,8 @@ public class ObjectFactory { /** * Create an instance of {@link VerifyASICSignatureRequest } * + * @return + * the new instance of {@link VerifyASICSignatureRequest } */ public VerifyASICSignatureRequest createVerifyASICSignatureRequest() { return new VerifyASICSignatureRequest(); @@ -251,6 +299,8 @@ public class ObjectFactory { /** * Create an instance of {@link VerifyASICSignatureRequestType } * + * @return + * the new instance of {@link VerifyASICSignatureRequestType } */ public VerifyASICSignatureRequestType createVerifyASICSignatureRequestType() { return new VerifyASICSignatureRequestType(); @@ -259,6 +309,8 @@ public class ObjectFactory { /** * Create an instance of {@link VerifyASICSignatureResponseType } * + * @return + * the new instance of {@link VerifyASICSignatureResponseType } */ public VerifyASICSignatureResponseType createVerifyASICSignatureResponseType() { return new VerifyASICSignatureResponseType(); @@ -267,6 +319,8 @@ public class ObjectFactory { /** * Create an instance of {@link VerifyPDFSignatureResponseType } * + * @return + * the new instance of {@link VerifyPDFSignatureResponseType } */ public VerifyPDFSignatureResponseType createVerifyPDFSignatureResponseType() { return new VerifyPDFSignatureResponseType(); @@ -275,6 +329,8 @@ public class ObjectFactory { /** * Create an instance of {@link VerifyXMLSignatureResponseType } * + * @return + * the new instance of {@link VerifyXMLSignatureResponseType } */ public VerifyXMLSignatureResponseType createVerifyXMLSignatureResponseType() { return new VerifyXMLSignatureResponseType(); @@ -283,6 +339,8 @@ public class ObjectFactory { /** * Create an instance of {@link ErrorResponseType } * + * @return + * the new instance of {@link ErrorResponseType } */ public ErrorResponseType createErrorResponseType() { return new ErrorResponseType(); @@ -291,6 +349,8 @@ public class ObjectFactory { /** * Create an instance of {@link QualifiedCertificate } * + * @return + * the new instance of {@link QualifiedCertificate } */ public QualifiedCertificate createQualifiedCertificate() { return new QualifiedCertificate(); @@ -299,6 +359,8 @@ public class ObjectFactory { /** * Create an instance of {@link SecureSignatureCreationDevice } * + * @return + * the new instance of {@link SecureSignatureCreationDevice } */ public SecureSignatureCreationDevice createSecureSignatureCreationDevice() { return new SecureSignatureCreationDevice(); @@ -307,6 +369,8 @@ public class ObjectFactory { /** * Create an instance of {@link PublicAuthorityType } * + * @return + * the new instance of {@link PublicAuthorityType } */ public PublicAuthorityType createPublicAuthorityType() { return new PublicAuthorityType(); @@ -315,6 +379,8 @@ public class ObjectFactory { /** * Create an instance of {@link CreateSignatureEnvironmentProfile } * + * @return + * the new instance of {@link CreateSignatureEnvironmentProfile } */ public CreateSignatureEnvironmentProfile createCreateSignatureEnvironmentProfile() { return new CreateSignatureEnvironmentProfile(); @@ -323,6 +389,8 @@ public class ObjectFactory { /** * Create an instance of {@link CreateSignatureLocationType } * + * @return + * the new instance of {@link CreateSignatureLocationType } */ public CreateSignatureLocationType createCreateSignatureLocationType() { return new CreateSignatureLocationType(); @@ -331,6 +399,8 @@ public class ObjectFactory { /** * Create an instance of {@link XMLDataObjectAssociationType } * + * @return + * the new instance of {@link XMLDataObjectAssociationType } */ public XMLDataObjectAssociationType createXMLDataObjectAssociationType() { return new XMLDataObjectAssociationType(); @@ -339,6 +409,8 @@ public class ObjectFactory { /** * Create an instance of {@link VerifyTransformsInfoProfile } * + * @return + * the new instance of {@link VerifyTransformsInfoProfile } */ public VerifyTransformsInfoProfile createVerifyTransformsInfoProfile() { return new VerifyTransformsInfoProfile(); @@ -347,6 +419,8 @@ public class ObjectFactory { /** * Create an instance of {@link CreateTransformsInfoProfile } * + * @return + * the new instance of {@link CreateTransformsInfoProfile } */ public CreateTransformsInfoProfile createCreateTransformsInfoProfile() { return new CreateTransformsInfoProfile(); @@ -355,6 +429,8 @@ public class ObjectFactory { /** * Create an instance of {@link TransformsInfoType } * + * @return + * the new instance of {@link TransformsInfoType } */ public TransformsInfoType createTransformsInfoType() { return new TransformsInfoType(); @@ -363,6 +439,8 @@ public class ObjectFactory { /** * Create an instance of {@link VerifyASICCMSSignatureResponseType } * + * @return + * the new instance of {@link VerifyASICCMSSignatureResponseType } */ public VerifyASICCMSSignatureResponseType createVerifyASICCMSSignatureResponseType() { return new VerifyASICCMSSignatureResponseType(); @@ -371,6 +449,8 @@ public class ObjectFactory { /** * Create an instance of {@link PDFSignatureResultType } * + * @return + * the new instance of {@link PDFSignatureResultType } */ public PDFSignatureResultType createPDFSignatureResultType() { return new PDFSignatureResultType(); @@ -379,6 +459,8 @@ public class ObjectFactory { /** * Create an instance of {@link PDFSignatureProperties } * + * @return + * the new instance of {@link PDFSignatureProperties } */ public PDFSignatureProperties createPDFSignatureProperties() { return new PDFSignatureProperties(); @@ -387,6 +469,8 @@ public class ObjectFactory { /** * Create an instance of {@link VerifyASICXMLSignatureResponseType } * + * @return + * the new instance of {@link VerifyASICXMLSignatureResponseType } */ public VerifyASICXMLSignatureResponseType createVerifyASICXMLSignatureResponseType() { return new VerifyASICXMLSignatureResponseType(); @@ -395,6 +479,8 @@ public class ObjectFactory { /** * Create an instance of {@link InputDataType } * + * @return + * the new instance of {@link InputDataType } */ public InputDataType createInputDataType() { return new InputDataType(); @@ -403,6 +489,8 @@ public class ObjectFactory { /** * Create an instance of {@link MetaInfoType } * + * @return + * the new instance of {@link MetaInfoType } */ public MetaInfoType createMetaInfoType() { return new MetaInfoType(); @@ -411,6 +499,8 @@ public class ObjectFactory { /** * Create an instance of {@link FinalDataMetaInfoType } * + * @return + * the new instance of {@link FinalDataMetaInfoType } */ public FinalDataMetaInfoType createFinalDataMetaInfoType() { return new FinalDataMetaInfoType(); @@ -419,6 +509,8 @@ public class ObjectFactory { /** * Create an instance of {@link PDFSignedRepsonse } * + * @return + * the new instance of {@link PDFSignedRepsonse } */ public PDFSignedRepsonse createPDFSignedRepsonse() { return new PDFSignedRepsonse(); @@ -427,6 +519,8 @@ public class ObjectFactory { /** * Create an instance of {@link CMSDataObjectRequiredMetaType } * + * @return + * the new instance of {@link CMSDataObjectRequiredMetaType } */ public CMSDataObjectRequiredMetaType createCMSDataObjectRequiredMetaType() { return new CMSDataObjectRequiredMetaType(); @@ -435,6 +529,8 @@ public class ObjectFactory { /** * Create an instance of {@link CMSContentBaseType } * + * @return + * the new instance of {@link CMSContentBaseType } */ public CMSContentBaseType createCMSContentBaseType() { return new CMSContentBaseType(); @@ -443,6 +539,8 @@ public class ObjectFactory { /** * Create an instance of {@link CheckResultType } * + * @return + * the new instance of {@link CheckResultType } */ public CheckResultType createCheckResultType() { return new CheckResultType(); @@ -451,6 +549,8 @@ public class ObjectFactory { /** * Create an instance of {@link FormResultType } * + * @return + * the new instance of {@link FormResultType } */ public FormResultType createFormResultType() { return new FormResultType(); @@ -459,6 +559,8 @@ public class ObjectFactory { /** * Create an instance of {@link IndicationResultType } * + * @return + * the new instance of {@link IndicationResultType } */ public IndicationResultType createIndicationResultType() { return new IndicationResultType(); @@ -467,6 +569,8 @@ public class ObjectFactory { /** * Create an instance of {@link ExtendedCertificateCheckResultType } * + * @return + * the new instance of {@link ExtendedCertificateCheckResultType } */ public ExtendedCertificateCheckResultType createExtendedCertificateCheckResultType() { return new ExtendedCertificateCheckResultType(); @@ -475,6 +579,8 @@ public class ObjectFactory { /** * Create an instance of {@link ReferencesCheckResultType } * + * @return + * the new instance of {@link ReferencesCheckResultType } */ public ReferencesCheckResultType createReferencesCheckResultType() { return new ReferencesCheckResultType(); @@ -483,6 +589,8 @@ public class ObjectFactory { /** * Create an instance of {@link ReferencesCheckResultInfoType } * + * @return + * the new instance of {@link ReferencesCheckResultInfoType } */ public ReferencesCheckResultInfoType createReferencesCheckResultInfoType() { return new ReferencesCheckResultInfoType(); @@ -491,6 +599,8 @@ public class ObjectFactory { /** * Create an instance of {@link ManifestRefsCheckResultType } * + * @return + * the new instance of {@link ManifestRefsCheckResultType } */ public ManifestRefsCheckResultType createManifestRefsCheckResultType() { return new ManifestRefsCheckResultType(); @@ -499,6 +609,8 @@ public class ObjectFactory { /** * Create an instance of {@link ManifestRefsCheckResultInfoType } * + * @return + * the new instance of {@link ManifestRefsCheckResultInfoType } */ public ManifestRefsCheckResultInfoType createManifestRefsCheckResultInfoType() { return new ManifestRefsCheckResultInfoType(); @@ -507,6 +619,8 @@ public class ObjectFactory { /** * Create an instance of {@link AnyChildrenType } * + * @return + * the new instance of {@link AnyChildrenType } */ public AnyChildrenType createAnyChildrenType() { return new AnyChildrenType(); @@ -515,6 +629,8 @@ public class ObjectFactory { /** * Create an instance of {@link XMLContentType } * + * @return + * the new instance of {@link XMLContentType } */ public XMLContentType createXMLContentType() { return new XMLContentType(); @@ -523,6 +639,8 @@ public class ObjectFactory { /** * Create an instance of {@link ContentBaseType } * + * @return + * the new instance of {@link ContentBaseType } */ public ContentBaseType createContentBaseType() { return new ContentBaseType(); @@ -531,6 +649,8 @@ public class ObjectFactory { /** * Create an instance of {@link ContentExLocRefBaseType } * + * @return + * the new instance of {@link ContentExLocRefBaseType } */ public ContentExLocRefBaseType createContentExLocRefBaseType() { return new ContentExLocRefBaseType(); @@ -539,6 +659,8 @@ public class ObjectFactory { /** * Create an instance of {@link ContentOptionalRefType } * + * @return + * the new instance of {@link ContentOptionalRefType } */ public ContentOptionalRefType createContentOptionalRefType() { return new ContentOptionalRefType(); @@ -547,6 +669,8 @@ public class ObjectFactory { /** * Create an instance of {@link ContentRequiredRefType } * + * @return + * the new instance of {@link ContentRequiredRefType } */ public ContentRequiredRefType createContentRequiredRefType() { return new ContentRequiredRefType(); @@ -555,6 +679,8 @@ public class ObjectFactory { /** * Create an instance of {@link VerifyTransformsDataType } * + * @return + * the new instance of {@link VerifyTransformsDataType } */ public VerifyTransformsDataType createVerifyTransformsDataType() { return new VerifyTransformsDataType(); @@ -563,6 +689,8 @@ public class ObjectFactory { /** * Create an instance of {@link CMSDataObjectInfoType.DataObject } * + * @return + * the new instance of {@link CMSDataObjectInfoType.DataObject } */ public CMSDataObjectInfoType.DataObject createCMSDataObjectInfoTypeDataObject() { return new CMSDataObjectInfoType.DataObject(); @@ -571,6 +699,8 @@ public class ObjectFactory { /** * Create an instance of {@link DataObjectInfoType.DataObject } * + * @return + * the new instance of {@link DataObjectInfoType.DataObject } */ public DataObjectInfoType.DataObject createDataObjectInfoTypeDataObject() { return new DataObjectInfoType.DataObject(); @@ -579,6 +709,8 @@ public class ObjectFactory { /** * Create an instance of {@link ASICResultType.SignedFiles } * + * @return + * the new instance of {@link ASICResultType.SignedFiles } */ public ASICResultType.SignedFiles createASICResultTypeSignedFiles() { return new ASICResultType.SignedFiles(); @@ -587,6 +719,8 @@ public class ObjectFactory { /** * Create an instance of {@link TransformParameterType.Hash } * + * @return + * the new instance of {@link TransformParameterType.Hash } */ public TransformParameterType.Hash createTransformParameterTypeHash() { return new TransformParameterType.Hash(); @@ -595,6 +729,8 @@ public class ObjectFactory { /** * Create an instance of {@link VerifyXMLSignatureRequestType.VerifySignatureInfo } * + * @return + * the new instance of {@link VerifyXMLSignatureRequestType.VerifySignatureInfo } */ public VerifyXMLSignatureRequestType.VerifySignatureInfo createVerifyXMLSignatureRequestTypeVerifySignatureInfo() { return new VerifyXMLSignatureRequestType.VerifySignatureInfo(); @@ -603,6 +739,8 @@ public class ObjectFactory { /** * Create an instance of {@link VerifyXMLSignatureRequestType.SignatureManifestCheckParams } * + * @return + * the new instance of {@link VerifyXMLSignatureRequestType.SignatureManifestCheckParams } */ public VerifyXMLSignatureRequestType.SignatureManifestCheckParams createVerifyXMLSignatureRequestTypeSignatureManifestCheckParams() { return new VerifyXMLSignatureRequestType.SignatureManifestCheckParams(); @@ -611,6 +749,8 @@ public class ObjectFactory { /** * Create an instance of {@link CreateXMLSignatureResponseType.SignatureEnvironment } * + * @return + * the new instance of {@link CreateXMLSignatureResponseType.SignatureEnvironment } */ public CreateXMLSignatureResponseType.SignatureEnvironment createCreateXMLSignatureResponseTypeSignatureEnvironment() { return new CreateXMLSignatureResponseType.SignatureEnvironment(); @@ -619,6 +759,8 @@ public class ObjectFactory { /** * Create an instance of {@link CreateXMLSignatureRequestType.SingleSignatureInfo.DataObjectInfo } * + * @return + * the new instance of {@link CreateXMLSignatureRequestType.SingleSignatureInfo.DataObjectInfo } */ public CreateXMLSignatureRequestType.SingleSignatureInfo.DataObjectInfo createCreateXMLSignatureRequestTypeSingleSignatureInfoDataObjectInfo() { return new CreateXMLSignatureRequestType.SingleSignatureInfo.DataObjectInfo(); @@ -627,6 +769,8 @@ public class ObjectFactory { /** * Create an instance of {@link CreateXMLSignatureRequestType.SingleSignatureInfo.CreateSignatureInfo } * + * @return + * the new instance of {@link CreateXMLSignatureRequestType.SingleSignatureInfo.CreateSignatureInfo } */ public CreateXMLSignatureRequestType.SingleSignatureInfo.CreateSignatureInfo createCreateXMLSignatureRequestTypeSingleSignatureInfoCreateSignatureInfo() { return new CreateXMLSignatureRequestType.SingleSignatureInfo.CreateSignatureInfo(); @@ -635,6 +779,8 @@ public class ObjectFactory { /** * Create an instance of {@link CreateCMSSignatureRequestType.SingleSignatureInfo.DataObjectInfo } * + * @return + * the new instance of {@link CreateCMSSignatureRequestType.SingleSignatureInfo.DataObjectInfo } */ public CreateCMSSignatureRequestType.SingleSignatureInfo.DataObjectInfo createCreateCMSSignatureRequestTypeSingleSignatureInfoDataObjectInfo() { return new CreateCMSSignatureRequestType.SingleSignatureInfo.DataObjectInfo(); @@ -650,7 +796,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "CreateCMSSignatureResponse") public JAXBElement<CreateCMSSignatureResponseType> createCreateCMSSignatureResponse(CreateCMSSignatureResponseType value) { - return new JAXBElement<CreateCMSSignatureResponseType>(_CreateCMSSignatureResponse_QNAME, CreateCMSSignatureResponseType.class, null, value); + return new JAXBElement<>(_CreateCMSSignatureResponse_QNAME, CreateCMSSignatureResponseType.class, null, value); } /** @@ -663,7 +809,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "CreateXMLSignatureResponse") public JAXBElement<CreateXMLSignatureResponseType> createCreateXMLSignatureResponse(CreateXMLSignatureResponseType value) { - return new JAXBElement<CreateXMLSignatureResponseType>(_CreateXMLSignatureResponse_QNAME, CreateXMLSignatureResponseType.class, null, value); + return new JAXBElement<>(_CreateXMLSignatureResponse_QNAME, CreateXMLSignatureResponseType.class, null, value); } /** @@ -676,7 +822,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "CreatePDFSignatureResponse") public JAXBElement<CreatePDFSignatureResponseType> createCreatePDFSignatureResponse(CreatePDFSignatureResponseType value) { - return new JAXBElement<CreatePDFSignatureResponseType>(_CreatePDFSignatureResponse_QNAME, CreatePDFSignatureResponseType.class, null, value); + return new JAXBElement<>(_CreatePDFSignatureResponse_QNAME, CreatePDFSignatureResponseType.class, null, value); } /** @@ -689,7 +835,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "VerifyCMSSignatureResponse") public JAXBElement<VerifyCMSSignatureResponseType> createVerifyCMSSignatureResponse(VerifyCMSSignatureResponseType value) { - return new JAXBElement<VerifyCMSSignatureResponseType>(_VerifyCMSSignatureResponse_QNAME, VerifyCMSSignatureResponseType.class, null, value); + return new JAXBElement<>(_VerifyCMSSignatureResponse_QNAME, VerifyCMSSignatureResponseType.class, null, value); } /** @@ -702,7 +848,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "VerifyASICSignatureResponse") public JAXBElement<VerifyASICSignatureResponseType> createVerifyASICSignatureResponse(VerifyASICSignatureResponseType value) { - return new JAXBElement<VerifyASICSignatureResponseType>(_VerifyASICSignatureResponse_QNAME, VerifyASICSignatureResponseType.class, null, value); + return new JAXBElement<>(_VerifyASICSignatureResponse_QNAME, VerifyASICSignatureResponseType.class, null, value); } /** @@ -715,7 +861,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "VerifyPDFSignatureResponse") public JAXBElement<VerifyPDFSignatureResponseType> createVerifyPDFSignatureResponse(VerifyPDFSignatureResponseType value) { - return new JAXBElement<VerifyPDFSignatureResponseType>(_VerifyPDFSignatureResponse_QNAME, VerifyPDFSignatureResponseType.class, null, value); + return new JAXBElement<>(_VerifyPDFSignatureResponse_QNAME, VerifyPDFSignatureResponseType.class, null, value); } /** @@ -728,7 +874,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "VerifyXMLSignatureRequest") public JAXBElement<VerifyXMLSignatureRequestType> createVerifyXMLSignatureRequest(VerifyXMLSignatureRequestType value) { - return new JAXBElement<VerifyXMLSignatureRequestType>(_VerifyXMLSignatureRequest_QNAME, VerifyXMLSignatureRequestType.class, null, value); + return new JAXBElement<>(_VerifyXMLSignatureRequest_QNAME, VerifyXMLSignatureRequestType.class, null, value); } /** @@ -741,7 +887,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "VerifyXMLSignatureResponse") public JAXBElement<VerifyXMLSignatureResponseType> createVerifyXMLSignatureResponse(VerifyXMLSignatureResponseType value) { - return new JAXBElement<VerifyXMLSignatureResponseType>(_VerifyXMLSignatureResponse_QNAME, VerifyXMLSignatureResponseType.class, null, value); + return new JAXBElement<>(_VerifyXMLSignatureResponse_QNAME, VerifyXMLSignatureResponseType.class, null, value); } /** @@ -754,7 +900,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "ErrorResponse") public JAXBElement<ErrorResponseType> createErrorResponse(ErrorResponseType value) { - return new JAXBElement<ErrorResponseType>(_ErrorResponse_QNAME, ErrorResponseType.class, null, value); + return new JAXBElement<>(_ErrorResponse_QNAME, ErrorResponseType.class, null, value); } /** @@ -768,7 +914,7 @@ public class ObjectFactory { @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "IssuingCountry") @XmlJavaTypeAdapter(CollapsedStringAdapter.class) public JAXBElement<String> createIssuingCountry(String value) { - return new JAXBElement<String>(_IssuingCountry_QNAME, String.class, null, value); + return new JAXBElement<>(_IssuingCountry_QNAME, String.class, null, value); } /** @@ -781,7 +927,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "PublicAuthority") public JAXBElement<PublicAuthorityType> createPublicAuthority(PublicAuthorityType value) { - return new JAXBElement<PublicAuthorityType>(_PublicAuthority_QNAME, PublicAuthorityType.class, null, value); + return new JAXBElement<>(_PublicAuthority_QNAME, PublicAuthorityType.class, null, value); } /** @@ -794,7 +940,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "Supplement") public JAXBElement<XMLDataObjectAssociationType> createSupplement(XMLDataObjectAssociationType value) { - return new JAXBElement<XMLDataObjectAssociationType>(_Supplement_QNAME, XMLDataObjectAssociationType.class, null, value); + return new JAXBElement<>(_Supplement_QNAME, XMLDataObjectAssociationType.class, null, value); } /** @@ -807,7 +953,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "SupplementProfile") public JAXBElement<XMLDataObjectAssociationType> createSupplementProfile(XMLDataObjectAssociationType value) { - return new JAXBElement<XMLDataObjectAssociationType>(_SupplementProfile_QNAME, XMLDataObjectAssociationType.class, null, value); + return new JAXBElement<>(_SupplementProfile_QNAME, XMLDataObjectAssociationType.class, null, value); } /** @@ -820,7 +966,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "SignerInfo", scope = VerifyASICCMSSignatureResponseType.class) public JAXBElement<KeyInfoType> createVerifyASICCMSSignatureResponseTypeSignerInfo(KeyInfoType value) { - return new JAXBElement<KeyInfoType>(_VerifyASICCMSSignatureResponseTypeSignerInfo_QNAME, KeyInfoType.class, VerifyASICCMSSignatureResponseType.class, value); + return new JAXBElement<>(_VerifyASICCMSSignatureResponseTypeSignerInfo_QNAME, KeyInfoType.class, VerifyASICCMSSignatureResponseType.class, value); } /** @@ -833,7 +979,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "SigningTime", scope = VerifyASICCMSSignatureResponseType.class) public JAXBElement<XMLGregorianCalendar> createVerifyASICCMSSignatureResponseTypeSigningTime(XMLGregorianCalendar value) { - return new JAXBElement<XMLGregorianCalendar>(_VerifyASICCMSSignatureResponseTypeSigningTime_QNAME, XMLGregorianCalendar.class, VerifyASICCMSSignatureResponseType.class, value); + return new JAXBElement<>(_VerifyASICCMSSignatureResponseTypeSigningTime_QNAME, XMLGregorianCalendar.class, VerifyASICCMSSignatureResponseType.class, value); } /** @@ -846,7 +992,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "SignatureCheck", scope = VerifyASICCMSSignatureResponseType.class) public JAXBElement<CheckResultType> createVerifyASICCMSSignatureResponseTypeSignatureCheck(CheckResultType value) { - return new JAXBElement<CheckResultType>(_VerifyASICCMSSignatureResponseTypeSignatureCheck_QNAME, CheckResultType.class, VerifyASICCMSSignatureResponseType.class, value); + return new JAXBElement<>(_VerifyASICCMSSignatureResponseTypeSignatureCheck_QNAME, CheckResultType.class, VerifyASICCMSSignatureResponseType.class, value); } /** @@ -859,7 +1005,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "CertificateCheck", scope = VerifyASICCMSSignatureResponseType.class) public JAXBElement<CheckResultType> createVerifyASICCMSSignatureResponseTypeCertificateCheck(CheckResultType value) { - return new JAXBElement<CheckResultType>(_VerifyASICCMSSignatureResponseTypeCertificateCheck_QNAME, CheckResultType.class, VerifyASICCMSSignatureResponseType.class, value); + return new JAXBElement<>(_VerifyASICCMSSignatureResponseTypeCertificateCheck_QNAME, CheckResultType.class, VerifyASICCMSSignatureResponseType.class, value); } /** @@ -872,7 +1018,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "FormCheckResult", scope = VerifyASICCMSSignatureResponseType.class) public JAXBElement<FormResultType> createVerifyASICCMSSignatureResponseTypeFormCheckResult(FormResultType value) { - return new JAXBElement<FormResultType>(_VerifyASICCMSSignatureResponseTypeFormCheckResult_QNAME, FormResultType.class, VerifyASICCMSSignatureResponseType.class, value); + return new JAXBElement<>(_VerifyASICCMSSignatureResponseTypeFormCheckResult_QNAME, FormResultType.class, VerifyASICCMSSignatureResponseType.class, value); } /** @@ -885,7 +1031,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "ExtendedCertificateCheck", scope = VerifyASICCMSSignatureResponseType.class) public JAXBElement<ExtendedCertificateCheckResultType> createVerifyASICCMSSignatureResponseTypeExtendedCertificateCheck(ExtendedCertificateCheckResultType value) { - return new JAXBElement<ExtendedCertificateCheckResultType>(_VerifyASICCMSSignatureResponseTypeExtendedCertificateCheck_QNAME, ExtendedCertificateCheckResultType.class, VerifyASICCMSSignatureResponseType.class, value); + return new JAXBElement<>(_VerifyASICCMSSignatureResponseTypeExtendedCertificateCheck_QNAME, ExtendedCertificateCheckResultType.class, VerifyASICCMSSignatureResponseType.class, value); } /** @@ -898,7 +1044,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "SignerInfo", scope = VerifyCMSSignatureResponseType.class) public JAXBElement<KeyInfoType> createVerifyCMSSignatureResponseTypeSignerInfo(KeyInfoType value) { - return new JAXBElement<KeyInfoType>(_VerifyASICCMSSignatureResponseTypeSignerInfo_QNAME, KeyInfoType.class, VerifyCMSSignatureResponseType.class, value); + return new JAXBElement<>(_VerifyASICCMSSignatureResponseTypeSignerInfo_QNAME, KeyInfoType.class, VerifyCMSSignatureResponseType.class, value); } /** @@ -911,7 +1057,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "SignatureAlgorithm", scope = VerifyCMSSignatureResponseType.class) public JAXBElement<String> createVerifyCMSSignatureResponseTypeSignatureAlgorithm(String value) { - return new JAXBElement<String>(_VerifyCMSSignatureResponseTypeSignatureAlgorithm_QNAME, String.class, VerifyCMSSignatureResponseType.class, value); + return new JAXBElement<>(_VerifyCMSSignatureResponseTypeSignatureAlgorithm_QNAME, String.class, VerifyCMSSignatureResponseType.class, value); } /** @@ -924,7 +1070,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "SignatureCheck", scope = VerifyCMSSignatureResponseType.class) public JAXBElement<CheckResultType> createVerifyCMSSignatureResponseTypeSignatureCheck(CheckResultType value) { - return new JAXBElement<CheckResultType>(_VerifyASICCMSSignatureResponseTypeSignatureCheck_QNAME, CheckResultType.class, VerifyCMSSignatureResponseType.class, value); + return new JAXBElement<>(_VerifyASICCMSSignatureResponseTypeSignatureCheck_QNAME, CheckResultType.class, VerifyCMSSignatureResponseType.class, value); } /** @@ -937,7 +1083,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "CertificateCheck", scope = VerifyCMSSignatureResponseType.class) public JAXBElement<CheckResultType> createVerifyCMSSignatureResponseTypeCertificateCheck(CheckResultType value) { - return new JAXBElement<CheckResultType>(_VerifyASICCMSSignatureResponseTypeCertificateCheck_QNAME, CheckResultType.class, VerifyCMSSignatureResponseType.class, value); + return new JAXBElement<>(_VerifyASICCMSSignatureResponseTypeCertificateCheck_QNAME, CheckResultType.class, VerifyCMSSignatureResponseType.class, value); } /** @@ -950,7 +1096,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "FormCheckResult", scope = VerifyCMSSignatureResponseType.class) public JAXBElement<FormResultType> createVerifyCMSSignatureResponseTypeFormCheckResult(FormResultType value) { - return new JAXBElement<FormResultType>(_VerifyASICCMSSignatureResponseTypeFormCheckResult_QNAME, FormResultType.class, VerifyCMSSignatureResponseType.class, value); + return new JAXBElement<>(_VerifyASICCMSSignatureResponseTypeFormCheckResult_QNAME, FormResultType.class, VerifyCMSSignatureResponseType.class, value); } /** @@ -963,7 +1109,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "ExtendedCertificateCheck", scope = VerifyCMSSignatureResponseType.class) public JAXBElement<ExtendedCertificateCheckResultType> createVerifyCMSSignatureResponseTypeExtendedCertificateCheck(ExtendedCertificateCheckResultType value) { - return new JAXBElement<ExtendedCertificateCheckResultType>(_VerifyASICCMSSignatureResponseTypeExtendedCertificateCheck_QNAME, ExtendedCertificateCheckResultType.class, VerifyCMSSignatureResponseType.class, value); + return new JAXBElement<>(_VerifyASICCMSSignatureResponseTypeExtendedCertificateCheck_QNAME, ExtendedCertificateCheckResultType.class, VerifyCMSSignatureResponseType.class, value); } } diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/PDFSignatureProperties.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/PDFSignatureProperties.java index 18143994..8bf8c5a9 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/PDFSignatureProperties.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/PDFSignatureProperties.java @@ -1,29 +1,29 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für PDFSignatureProperties complex type. + * <p>Java class for PDFSignatureProperties complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="PDFSignatureProperties"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="SignatureCoversFullPDF" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/> - * <element name="SignatureByteRange" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="PDFSignatureProperties"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="SignatureCoversFullPDF" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/> + * <element name="SignatureByteRange" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -40,7 +40,7 @@ public class PDFSignatureProperties { protected String signatureByteRange; /** - * Ruft den Wert der signatureCoversFullPDF-Eigenschaft ab. + * Gets the value of the signatureCoversFullPDF property. * * @return * possible object is @@ -52,7 +52,7 @@ public class PDFSignatureProperties { } /** - * Legt den Wert der signatureCoversFullPDF-Eigenschaft fest. + * Sets the value of the signatureCoversFullPDF property. * * @param value * allowed object is @@ -64,7 +64,7 @@ public class PDFSignatureProperties { } /** - * Ruft den Wert der signatureByteRange-Eigenschaft ab. + * Gets the value of the signatureByteRange property. * * @return * possible object is @@ -76,7 +76,7 @@ public class PDFSignatureProperties { } /** - * Legt den Wert der signatureByteRange-Eigenschaft fest. + * Sets the value of the signatureByteRange property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/PDFSignatureResultType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/PDFSignatureResultType.java index 17d643b9..07d5a5e0 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/PDFSignatureResultType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/PDFSignatureResultType.java @@ -3,38 +3,38 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; import javax.xml.datatype.XMLGregorianCalendar; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; import org.w3._2000._09.xmldsig_.KeyInfoType; /** - * <p>Java-Klasse für PDFSignatureResultType complex type. + * <p>Java class for PDFSignatureResultType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="PDFSignatureResultType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="SignerInfo" type="{http://www.w3.org/2000/09/xmldsig#}KeyInfoType" minOccurs="0"/> - * <element name="SigningTime" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/> - * <element name="SignatureAlgorithm" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> - * <element name="SignatureCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CheckResultType"/> - * <element name="CertificateCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CheckResultType"/> - * <element name="FormCheckResult" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}FormResultType" maxOccurs="unbounded" minOccurs="0"/> - * <element name="ExtendedCertificateCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ExtendedCertificateCheckResultType" minOccurs="0"/> - * <element name="SignatureProperties" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}PDFSignatureProperties" minOccurs="0"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="PDFSignatureResultType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="SignerInfo" type="{http://www.w3.org/2000/09/xmldsig#}KeyInfoType" minOccurs="0"/> + * <element name="SigningTime" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/> + * <element name="SignatureAlgorithm" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> + * <element name="SignatureCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CheckResultType"/> + * <element name="CertificateCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CheckResultType"/> + * <element name="FormCheckResult" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}FormResultType" maxOccurs="unbounded" minOccurs="0"/> + * <element name="ExtendedCertificateCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ExtendedCertificateCheckResultType" minOccurs="0"/> + * <element name="SignatureProperties" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}PDFSignatureProperties" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -51,6 +51,14 @@ import org.w3._2000._09.xmldsig_.KeyInfoType; }) public class PDFSignatureResultType { + /** + * only ds:X509Data and RetrievalMethod is + * supported; QualifiedCertificate is included as + * X509Data/any;publicAuthority is included as X509Data/any; + * SecureSignatureCreationDevice is included as X509Data/any, + * IssuingCountry is included as X509Data/any + * + */ @XmlElement(name = "SignerInfo") protected KeyInfoType signerInfo; @XmlElement(name = "SigningTime") @@ -70,7 +78,11 @@ public class PDFSignatureResultType { protected PDFSignatureProperties signatureProperties; /** - * Ruft den Wert der signerInfo-Eigenschaft ab. + * only ds:X509Data and RetrievalMethod is + * supported; QualifiedCertificate is included as + * X509Data/any;publicAuthority is included as X509Data/any; + * SecureSignatureCreationDevice is included as X509Data/any, + * IssuingCountry is included as X509Data/any * * @return * possible object is @@ -82,19 +94,20 @@ public class PDFSignatureResultType { } /** - * Legt den Wert der signerInfo-Eigenschaft fest. + * Sets the value of the signerInfo property. * * @param value * allowed object is * {@link KeyInfoType } * + * @see #getSignerInfo() */ public void setSignerInfo(KeyInfoType value) { this.signerInfo = value; } /** - * Ruft den Wert der signingTime-Eigenschaft ab. + * Gets the value of the signingTime property. * * @return * possible object is @@ -106,7 +119,7 @@ public class PDFSignatureResultType { } /** - * Legt den Wert der signingTime-Eigenschaft fest. + * Sets the value of the signingTime property. * * @param value * allowed object is @@ -118,7 +131,7 @@ public class PDFSignatureResultType { } /** - * Ruft den Wert der signatureAlgorithm-Eigenschaft ab. + * Gets the value of the signatureAlgorithm property. * * @return * possible object is @@ -130,7 +143,7 @@ public class PDFSignatureResultType { } /** - * Legt den Wert der signatureAlgorithm-Eigenschaft fest. + * Sets the value of the signatureAlgorithm property. * * @param value * allowed object is @@ -142,7 +155,7 @@ public class PDFSignatureResultType { } /** - * Ruft den Wert der signatureCheck-Eigenschaft ab. + * Gets the value of the signatureCheck property. * * @return * possible object is @@ -154,7 +167,7 @@ public class PDFSignatureResultType { } /** - * Legt den Wert der signatureCheck-Eigenschaft fest. + * Sets the value of the signatureCheck property. * * @param value * allowed object is @@ -166,7 +179,7 @@ public class PDFSignatureResultType { } /** - * Ruft den Wert der certificateCheck-Eigenschaft ab. + * Gets the value of the certificateCheck property. * * @return * possible object is @@ -178,7 +191,7 @@ public class PDFSignatureResultType { } /** - * Legt den Wert der certificateCheck-Eigenschaft fest. + * Sets the value of the certificateCheck property. * * @param value * allowed object is @@ -192,34 +205,37 @@ public class PDFSignatureResultType { /** * Gets the value of the formCheckResult property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the formCheckResult property. + * This is why there is not a <CODE>set</CODE> method for the formCheckResult property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getFormCheckResult().add(newItem); + * getFormCheckResult().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link FormResultType } + * </p> * * + * @return + * The value of the formCheckResult property. */ public List<FormResultType> getFormCheckResult() { if (formCheckResult == null) { - formCheckResult = new ArrayList<FormResultType>(); + formCheckResult = new ArrayList<>(); } return this.formCheckResult; } /** - * Ruft den Wert der extendedCertificateCheck-Eigenschaft ab. + * Gets the value of the extendedCertificateCheck property. * * @return * possible object is @@ -231,7 +247,7 @@ public class PDFSignatureResultType { } /** - * Legt den Wert der extendedCertificateCheck-Eigenschaft fest. + * Sets the value of the extendedCertificateCheck property. * * @param value * allowed object is @@ -243,7 +259,7 @@ public class PDFSignatureResultType { } /** - * Ruft den Wert der signatureProperties-Eigenschaft ab. + * Gets the value of the signatureProperties property. * * @return * possible object is @@ -255,7 +271,7 @@ public class PDFSignatureResultType { } /** - * Legt den Wert der signatureProperties-Eigenschaft fest. + * Sets the value of the signatureProperties property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/PDFSignedRepsonse.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/PDFSignedRepsonse.java index 5c47371c..66d91951 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/PDFSignedRepsonse.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/PDFSignedRepsonse.java @@ -1,32 +1,32 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für PDFSignedRepsonse complex type. + * <p>Java class for PDFSignedRepsonse complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="PDFSignedRepsonse"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="SignatureID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> - * <choice> - * <element name="PDFSignature" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> - * <element ref="{http://reference.e-government.gv.at/namespace/moa/20020822#}ErrorResponse"/> - * </choice> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="PDFSignedRepsonse"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="SignatureID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> + * <choice> + * <element name="PDFSignature" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> + * <element ref="{http://reference.e-government.gv.at/namespace/moa/20020822#}ErrorResponse"/> + * </choice> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -40,13 +40,23 @@ public class PDFSignedRepsonse { @XmlElement(name = "SignatureID") protected String signatureID; + /** + * Resultat, falls die Signaturerstellung + * erfolgreich war + * + */ @XmlElement(name = "PDFSignature") protected byte[] pdfSignature; + /** + * Resultat, falls die Signaturerstellung gescheitert + * ist + * + */ @XmlElement(name = "ErrorResponse") protected ErrorResponseType errorResponse; /** - * Ruft den Wert der signatureID-Eigenschaft ab. + * Gets the value of the signatureID property. * * @return * possible object is @@ -58,7 +68,7 @@ public class PDFSignedRepsonse { } /** - * Legt den Wert der signatureID-Eigenschaft fest. + * Sets the value of the signatureID property. * * @param value * allowed object is @@ -70,7 +80,8 @@ public class PDFSignedRepsonse { } /** - * Ruft den Wert der pdfSignature-Eigenschaft ab. + * Resultat, falls die Signaturerstellung + * erfolgreich war * * @return * possible object is @@ -81,18 +92,20 @@ public class PDFSignedRepsonse { } /** - * Legt den Wert der pdfSignature-Eigenschaft fest. + * Sets the value of the pdfSignature property. * * @param value * allowed object is * byte[] + * @see #getPDFSignature() */ public void setPDFSignature(byte[] value) { this.pdfSignature = value; } /** - * Ruft den Wert der errorResponse-Eigenschaft ab. + * Resultat, falls die Signaturerstellung gescheitert + * ist * * @return * possible object is @@ -104,12 +117,13 @@ public class PDFSignedRepsonse { } /** - * Legt den Wert der errorResponse-Eigenschaft fest. + * Sets the value of the errorResponse property. * * @param value * allowed object is * {@link ErrorResponseType } * + * @see #getErrorResponse() */ public void setErrorResponse(ErrorResponseType value) { this.errorResponse = value; diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/PublicAuthorityType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/PublicAuthorityType.java index d157035c..ec06bcf2 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/PublicAuthorityType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/PublicAuthorityType.java @@ -1,28 +1,28 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für PublicAuthorityType complex type. + * <p>Java class for PublicAuthorityType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="PublicAuthorityType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="Code" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="PublicAuthorityType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Code" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -36,7 +36,7 @@ public class PublicAuthorityType { protected String code; /** - * Ruft den Wert der code-Eigenschaft ab. + * Gets the value of the code property. * * @return * possible object is @@ -48,7 +48,7 @@ public class PublicAuthorityType { } /** - * Legt den Wert der code-Eigenschaft fest. + * Sets the value of the code property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/QualifiedCertificate.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/QualifiedCertificate.java index dc15a228..d0a4751e 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/QualifiedCertificate.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/QualifiedCertificate.java @@ -1,36 +1,36 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <attribute name="source"> - * <simpleType> - * <restriction base="{http://www.w3.org/2001/XMLSchema}token"> - * <enumeration value="TSL"/> - * <enumeration value="Certificate"/> - * </restriction> - * </simpleType> - * </attribute> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <attribute name="source"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}token"> + * <enumeration value="TSL"/> + * <enumeration value="Certificate"/> + * </restriction> + * </simpleType> + * </attribute> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -44,7 +44,7 @@ public class QualifiedCertificate { protected String source; /** - * Ruft den Wert der source-Eigenschaft ab. + * Gets the value of the source property. * * @return * possible object is @@ -56,7 +56,7 @@ public class QualifiedCertificate { } /** - * Legt den Wert der source-Eigenschaft fest. + * Sets the value of the source property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ReferencesCheckResultInfoType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ReferencesCheckResultInfoType.java index b0290384..1f60c44d 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ReferencesCheckResultInfoType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ReferencesCheckResultInfoType.java @@ -1,28 +1,28 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für ReferencesCheckResultInfoType complex type. + * <p>Java class for ReferencesCheckResultInfoType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="ReferencesCheckResultInfoType"> - * <complexContent> - * <restriction base="{http://reference.e-government.gv.at/namespace/moa/20020822#}AnyChildrenType"> - * <sequence> - * <any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/> - * <element name="FailedReference" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" maxOccurs="unbounded" minOccurs="0"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="ReferencesCheckResultInfoType"> + * <complexContent> + * <restriction base="{http://reference.e-government.gv.at/namespace/moa/20020822#}AnyChildrenType"> + * <sequence> + * <any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/> + * <element name="FailedReference" type="{http://www.w3.org/2001/XMLSchema}positiveInteger" maxOccurs="unbounded" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ReferencesCheckResultType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ReferencesCheckResultType.java index 953705a8..16a02cc9 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ReferencesCheckResultType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/ReferencesCheckResultType.java @@ -1,28 +1,28 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für ReferencesCheckResultType complex type. + * <p>Java class for ReferencesCheckResultType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="ReferencesCheckResultType"> - * <complexContent> - * <restriction base="{http://reference.e-government.gv.at/namespace/moa/20020822#}CheckResultType"> - * <sequence> - * <element name="Code" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger"/> - * <element name="Info" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ReferencesCheckResultInfoType" minOccurs="0"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="ReferencesCheckResultType"> + * <complexContent> + * <restriction base="{http://reference.e-government.gv.at/namespace/moa/20020822#}CheckResultType"> + * <sequence> + * <element name="Code" type="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger"/> + * <element name="Info" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ReferencesCheckResultInfoType" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/SecureSignatureCreationDevice.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/SecureSignatureCreationDevice.java index 1b370cc2..455c82db 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/SecureSignatureCreationDevice.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/SecureSignatureCreationDevice.java @@ -1,36 +1,36 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <attribute name="source"> - * <simpleType> - * <restriction base="{http://www.w3.org/2001/XMLSchema}token"> - * <enumeration value="TSL"/> - * <enumeration value="Certificate"/> - * </restriction> - * </simpleType> - * </attribute> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <attribute name="source"> + * <simpleType> + * <restriction base="{http://www.w3.org/2001/XMLSchema}token"> + * <enumeration value="TSL"/> + * <enumeration value="Certificate"/> + * </restriction> + * </simpleType> + * </attribute> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -44,7 +44,7 @@ public class SecureSignatureCreationDevice { protected String source; /** - * Ruft den Wert der source-Eigenschaft ab. + * Gets the value of the source property. * * @return * possible object is @@ -56,7 +56,7 @@ public class SecureSignatureCreationDevice { } /** - * Legt den Wert der source-Eigenschaft fest. + * Sets the value of the source property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/SignatureCreationPortType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/SignatureCreationPortType.java index a6953bc2..c8071f5b 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/SignatureCreationPortType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/SignatureCreationPortType.java @@ -1,16 +1,16 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebResult; -import javax.jws.WebService; -import javax.jws.soap.SOAPBinding; -import javax.xml.bind.annotation.XmlSeeAlso; +import jakarta.jws.WebMethod; +import jakarta.jws.WebParam; +import jakarta.jws.WebResult; +import jakarta.jws.WebService; +import jakarta.jws.soap.SOAPBinding; +import jakarta.xml.bind.annotation.XmlSeeAlso; /** - * This class was generated by Apache CXF 3.5.8 - * 2024-07-22T14:45:18.261+02:00 - * Generated source version: 3.5.8 + * This class was generated by Apache CXF 4.1.0 + * 2025-07-16T16:47:50.603+02:00 + * Generated source version: 4.1.0 * */ @WebService(targetNamespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "SignatureCreationPortType") diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/SignatureCreationService.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/SignatureCreationService.java index 7317f145..e3701ef9 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/SignatureCreationService.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/SignatureCreationService.java @@ -2,15 +2,15 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.net.URL; import javax.xml.namespace.QName; -import javax.xml.ws.WebEndpoint; -import javax.xml.ws.WebServiceClient; -import javax.xml.ws.WebServiceFeature; -import javax.xml.ws.Service; +import jakarta.xml.ws.WebEndpoint; +import jakarta.xml.ws.WebServiceClient; +import jakarta.xml.ws.WebServiceFeature; +import jakarta.xml.ws.Service; /** - * This class was generated by Apache CXF 3.5.8 - * 2024-07-22T14:45:18.281+02:00 - * Generated source version: 3.5.8 + * This class was generated by Apache CXF 4.1.0 + * 2025-07-16T16:47:50.614+02:00 + * Generated source version: 4.1.0 * */ @WebServiceClient(name = "SignatureCreationService", @@ -75,7 +75,7 @@ public class SignatureCreationService extends Service { /** * * @param features - * A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the <code>features</code> parameter will have their default values. + * A list of {@link jakarta.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the <code>features</code> parameter will have their default values. * @return * returns SignatureCreationPortType */ diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/SignatureVerificationPortType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/SignatureVerificationPortType.java index 15119f0e..7672fc4c 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/SignatureVerificationPortType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/SignatureVerificationPortType.java @@ -1,16 +1,16 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebResult; -import javax.jws.WebService; -import javax.jws.soap.SOAPBinding; -import javax.xml.bind.annotation.XmlSeeAlso; +import jakarta.jws.WebMethod; +import jakarta.jws.WebParam; +import jakarta.jws.WebResult; +import jakarta.jws.WebService; +import jakarta.jws.soap.SOAPBinding; +import jakarta.xml.bind.annotation.XmlSeeAlso; /** - * This class was generated by Apache CXF 3.5.8 - * 2024-07-22T14:45:18.275+02:00 - * Generated source version: 3.5.8 + * This class was generated by Apache CXF 4.1.0 + * 2025-07-16T16:47:50.610+02:00 + * Generated source version: 4.1.0 * */ @WebService(targetNamespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", name = "SignatureVerificationPortType") diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/SignatureVerificationService.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/SignatureVerificationService.java index 11ff29e7..9e9200bd 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/SignatureVerificationService.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/SignatureVerificationService.java @@ -2,15 +2,15 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.net.URL; import javax.xml.namespace.QName; -import javax.xml.ws.WebEndpoint; -import javax.xml.ws.WebServiceClient; -import javax.xml.ws.WebServiceFeature; -import javax.xml.ws.Service; +import jakarta.xml.ws.WebEndpoint; +import jakarta.xml.ws.WebServiceClient; +import jakarta.xml.ws.WebServiceFeature; +import jakarta.xml.ws.Service; /** - * This class was generated by Apache CXF 3.5.8 - * 2024-07-22T14:45:18.301+02:00 - * Generated source version: 3.5.8 + * This class was generated by Apache CXF 4.1.0 + * 2025-07-16T16:47:50.624+02:00 + * Generated source version: 4.1.0 * */ @WebServiceClient(name = "SignatureVerificationService", @@ -75,7 +75,7 @@ public class SignatureVerificationService extends Service { /** * * @param features - * A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the <code>features</code> parameter will have their default values. + * A list of {@link jakarta.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the <code>features</code> parameter will have their default values. * @return * returns SignatureVerificationPortType */ diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/TransformParameterType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/TransformParameterType.java index 67cad009..23eebf92 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/TransformParameterType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/TransformParameterType.java @@ -1,44 +1,44 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; import org.w3._2000._09.xmldsig_.DigestMethodType; /** - * <p>Java-Klasse für TransformParameterType complex type. + * <p>Java class for TransformParameterType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="TransformParameterType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <choice minOccurs="0"> - * <element name="Base64Content" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> - * <element name="Hash"> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}DigestMethod"/> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}DigestValue"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </element> - * </choice> - * <attribute name="URI" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="TransformParameterType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <choice minOccurs="0"> + * <element name="Base64Content" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> + * <element name="Hash"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}DigestMethod"/> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}DigestValue"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * </choice> + * <attribute name="URI" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -49,8 +49,16 @@ import org.w3._2000._09.xmldsig_.DigestMethodType; }) public class TransformParameterType { + /** + * Der Transformationsparameter explizit angegeben. + * + */ @XmlElement(name = "Base64Content") protected byte[] base64Content; + /** + * Der Hashwert des Transformationsparameters. + * + */ @XmlElement(name = "Hash") protected TransformParameterType.Hash hash; @XmlAttribute(name = "URI", required = true) @@ -58,7 +66,7 @@ public class TransformParameterType { protected String uri; /** - * Ruft den Wert der base64Content-Eigenschaft ab. + * Der Transformationsparameter explizit angegeben. * * @return * possible object is @@ -69,18 +77,19 @@ public class TransformParameterType { } /** - * Legt den Wert der base64Content-Eigenschaft fest. + * Sets the value of the base64Content property. * * @param value * allowed object is * byte[] + * @see #getBase64Content() */ public void setBase64Content(byte[] value) { this.base64Content = value; } /** - * Ruft den Wert der hash-Eigenschaft ab. + * Der Hashwert des Transformationsparameters. * * @return * possible object is @@ -92,19 +101,20 @@ public class TransformParameterType { } /** - * Legt den Wert der hash-Eigenschaft fest. + * Sets the value of the hash property. * * @param value * allowed object is * {@link TransformParameterType.Hash } * + * @see #getHash() */ public void setHash(TransformParameterType.Hash value) { this.hash = value; } /** - * Ruft den Wert der uri-Eigenschaft ab. + * Gets the value of the uri property. * * @return * possible object is @@ -116,7 +126,7 @@ public class TransformParameterType { } /** - * Legt den Wert der uri-Eigenschaft fest. + * Sets the value of the uri property. * * @param value * allowed object is @@ -129,22 +139,22 @@ public class TransformParameterType { /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}DigestMethod"/> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}DigestValue"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}DigestMethod"/> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}DigestValue"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -161,7 +171,7 @@ public class TransformParameterType { protected String digestValue; /** - * Ruft den Wert der digestMethod-Eigenschaft ab. + * Gets the value of the digestMethod property. * * @return * possible object is @@ -173,7 +183,7 @@ public class TransformParameterType { } /** - * Legt den Wert der digestMethod-Eigenschaft fest. + * Sets the value of the digestMethod property. * * @param value * allowed object is @@ -185,7 +195,7 @@ public class TransformParameterType { } /** - * Ruft den Wert der digestValue-Eigenschaft ab. + * Gets the value of the digestValue property. * * @return * possible object is @@ -197,7 +207,7 @@ public class TransformParameterType { } /** - * Legt den Wert der digestValue-Eigenschaft fest. + * Sets the value of the digestValue property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/TransformsInfoType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/TransformsInfoType.java index 3c40039d..3504c468 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/TransformsInfoType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/TransformsInfoType.java @@ -1,30 +1,30 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; import org.w3._2000._09.xmldsig_.TransformsType; /** - * <p>Java-Klasse für TransformsInfoType complex type. + * <p>Java class for TransformsInfoType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="TransformsInfoType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}Transforms" minOccurs="0"/> - * <element name="FinalDataMetaInfo" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}FinalDataMetaInfoType"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="TransformsInfoType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}Transforms" minOccurs="0"/> + * <element name="FinalDataMetaInfo" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}FinalDataMetaInfoType"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -41,7 +41,7 @@ public class TransformsInfoType { protected FinalDataMetaInfoType finalDataMetaInfo; /** - * Ruft den Wert der transforms-Eigenschaft ab. + * Gets the value of the transforms property. * * @return * possible object is @@ -53,7 +53,7 @@ public class TransformsInfoType { } /** - * Legt den Wert der transforms-Eigenschaft fest. + * Sets the value of the transforms property. * * @param value * allowed object is @@ -65,7 +65,7 @@ public class TransformsInfoType { } /** - * Ruft den Wert der finalDataMetaInfo-Eigenschaft ab. + * Gets the value of the finalDataMetaInfo property. * * @return * possible object is @@ -77,7 +77,7 @@ public class TransformsInfoType { } /** - * Legt den Wert der finalDataMetaInfo-Eigenschaft fest. + * Sets the value of the finalDataMetaInfo property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyASICCMSSignatureResponseType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyASICCMSSignatureResponseType.java index 6d74e9c8..f1580d11 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyASICCMSSignatureResponseType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyASICCMSSignatureResponseType.java @@ -3,37 +3,37 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElementRef; -import javax.xml.bind.annotation.XmlElementRefs; -import javax.xml.bind.annotation.XmlType; import javax.xml.datatype.XMLGregorianCalendar; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElementRef; +import jakarta.xml.bind.annotation.XmlElementRefs; +import jakarta.xml.bind.annotation.XmlType; import org.w3._2000._09.xmldsig_.KeyInfoType; /** - * <p>Java-Klasse für VerifyASICCMSSignatureResponseType complex type. + * <p>Java class for VerifyASICCMSSignatureResponseType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="VerifyASICCMSSignatureResponseType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence maxOccurs="unbounded"> - * <element name="SignerInfo" type="{http://www.w3.org/2000/09/xmldsig#}KeyInfoType"/> - * <element name="SigningTime" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/> - * <element name="SignatureCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CheckResultType"/> - * <element name="CertificateCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CheckResultType"/> - * <element name="FormCheckResult" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}FormResultType" maxOccurs="unbounded" minOccurs="0"/> - * <element name="ExtendedCertificateCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ExtendedCertificateCheckResultType" minOccurs="0"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="VerifyASICCMSSignatureResponseType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence maxOccurs="unbounded"> + * <element name="SignerInfo" type="{http://www.w3.org/2000/09/xmldsig#}KeyInfoType"/> + * <element name="SigningTime" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/> + * <element name="SignatureCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CheckResultType"/> + * <element name="CertificateCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CheckResultType"/> + * <element name="FormCheckResult" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}FormResultType" maxOccurs="unbounded" minOccurs="0"/> + * <element name="ExtendedCertificateCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ExtendedCertificateCheckResultType" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -56,16 +56,16 @@ public class VerifyASICCMSSignatureResponseType { /** * Gets the value of the signerInfoAndSigningTimeAndSignatureCheck property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the signerInfoAndSigningTimeAndSignatureCheck property. + * This is why there is not a <CODE>set</CODE> method for the signerInfoAndSigningTimeAndSignatureCheck property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getSignerInfoAndSigningTimeAndSignatureCheck().add(newItem); + * getSignerInfoAndSigningTimeAndSignatureCheck().add(newItem); * </pre> * * @@ -77,12 +77,15 @@ public class VerifyASICCMSSignatureResponseType { * {@link JAXBElement }{@code <}{@link FormResultType }{@code >} * {@link JAXBElement }{@code <}{@link XMLGregorianCalendar }{@code >} * {@link JAXBElement }{@code <}{@link KeyInfoType }{@code >} + * </p> * * + * @return + * The value of the signerInfoAndSigningTimeAndSignatureCheck property. */ public List<JAXBElement<?>> getSignerInfoAndSigningTimeAndSignatureCheck() { if (signerInfoAndSigningTimeAndSignatureCheck == null) { - signerInfoAndSigningTimeAndSignatureCheck = new ArrayList<JAXBElement<?>>(); + signerInfoAndSigningTimeAndSignatureCheck = new ArrayList<>(); } return this.signerInfoAndSigningTimeAndSignatureCheck; } diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyASICSignatureRequest.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyASICSignatureRequest.java index 4ba31ac2..6430aec3 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyASICSignatureRequest.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyASICSignatureRequest.java @@ -1,25 +1,25 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}VerifyASICSignatureRequestType"> - * </extension> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}VerifyASICSignatureRequestType"> + * </extension> + * </complexContent> + * </complexType> + * }</pre> * * */ diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyASICSignatureRequestType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyASICSignatureRequestType.java index 1870dbc5..f3ffa427 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyASICSignatureRequestType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyASICSignatureRequestType.java @@ -1,37 +1,37 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import javax.xml.datatype.XMLGregorianCalendar; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** - * <p>Java-Klasse für VerifyASICSignatureRequestType complex type. + * <p>Java class for VerifyASICSignatureRequestType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="VerifyASICSignatureRequestType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="DateTime" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/> - * <element name="ExtendedValidation" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/> - * <element name="ASICSignature" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> - * <element name="ASICExtension" type="{http://www.w3.org/2001/XMLSchema}string"/> - * <element name="TrustProfileID" type="{http://www.w3.org/2001/XMLSchema}token"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="VerifyASICSignatureRequestType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="DateTime" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/> + * <element name="ExtendedValidation" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/> + * <element name="ASICSignature" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> + * <element name="ASICExtension" type="{http://www.w3.org/2001/XMLSchema}string"/> + * <element name="TrustProfileID" type="{http://www.w3.org/2001/XMLSchema}token"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -55,15 +55,24 @@ public class VerifyASICSignatureRequestType { protected Boolean extendedValidation; @XmlElement(name = "ASICSignature", required = true) protected byte[] asicSignature; + /** + * asics or asice + * + */ @XmlElement(name = "ASICExtension", required = true) protected String asicExtension; + /** + * mit diesem Profil wird eine Menge von + * vertrauenswürdigen Wurzelzertifikaten spezifiziert + * + */ @XmlElement(name = "TrustProfileID", required = true) @XmlJavaTypeAdapter(CollapsedStringAdapter.class) @XmlSchemaType(name = "token") protected String trustProfileID; /** - * Ruft den Wert der dateTime-Eigenschaft ab. + * Gets the value of the dateTime property. * * @return * possible object is @@ -75,7 +84,7 @@ public class VerifyASICSignatureRequestType { } /** - * Legt den Wert der dateTime-Eigenschaft fest. + * Sets the value of the dateTime property. * * @param value * allowed object is @@ -87,7 +96,7 @@ public class VerifyASICSignatureRequestType { } /** - * Ruft den Wert der extendedValidation-Eigenschaft ab. + * Gets the value of the extendedValidation property. * * @return * possible object is @@ -99,7 +108,7 @@ public class VerifyASICSignatureRequestType { } /** - * Legt den Wert der extendedValidation-Eigenschaft fest. + * Sets the value of the extendedValidation property. * * @param value * allowed object is @@ -111,7 +120,7 @@ public class VerifyASICSignatureRequestType { } /** - * Ruft den Wert der asicSignature-Eigenschaft ab. + * Gets the value of the asicSignature property. * * @return * possible object is @@ -122,7 +131,7 @@ public class VerifyASICSignatureRequestType { } /** - * Legt den Wert der asicSignature-Eigenschaft fest. + * Sets the value of the asicSignature property. * * @param value * allowed object is @@ -133,7 +142,7 @@ public class VerifyASICSignatureRequestType { } /** - * Ruft den Wert der asicExtension-Eigenschaft ab. + * asics or asice * * @return * possible object is @@ -145,19 +154,21 @@ public class VerifyASICSignatureRequestType { } /** - * Legt den Wert der asicExtension-Eigenschaft fest. + * Sets the value of the asicExtension property. * * @param value * allowed object is * {@link String } * + * @see #getASICExtension() */ public void setASICExtension(String value) { this.asicExtension = value; } /** - * Ruft den Wert der trustProfileID-Eigenschaft ab. + * mit diesem Profil wird eine Menge von + * vertrauenswürdigen Wurzelzertifikaten spezifiziert * * @return * possible object is @@ -169,12 +180,13 @@ public class VerifyASICSignatureRequestType { } /** - * Legt den Wert der trustProfileID-Eigenschaft fest. + * Sets the value of the trustProfileID property. * * @param value * allowed object is * {@link String } * + * @see #getTrustProfileID() */ public void setTrustProfileID(String value) { this.trustProfileID = value; diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyASICSignatureResponseType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyASICSignatureResponseType.java index 063f2eaf..cf9f2387 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyASICSignatureResponseType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyASICSignatureResponseType.java @@ -3,28 +3,28 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für VerifyASICSignatureResponseType complex type. + * <p>Java class for VerifyASICSignatureResponseType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="VerifyASICSignatureResponseType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="ASiCSignatureResult" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ASICResultType" maxOccurs="unbounded" minOccurs="0"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="VerifyASICSignatureResponseType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="ASiCSignatureResult" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ASICResultType" maxOccurs="unbounded" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -40,28 +40,31 @@ public class VerifyASICSignatureResponseType { /** * Gets the value of the aSiCSignatureResult property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the aSiCSignatureResult property. + * This is why there is not a <CODE>set</CODE> method for the aSiCSignatureResult property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getASiCSignatureResult().add(newItem); + * getASiCSignatureResult().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link ASICResultType } + * </p> * * + * @return + * The value of the aSiCSignatureResult property. */ public List<ASICResultType> getASiCSignatureResult() { if (aSiCSignatureResult == null) { - aSiCSignatureResult = new ArrayList<ASICResultType>(); + aSiCSignatureResult = new ArrayList<>(); } return this.aSiCSignatureResult; } diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyASICXMLSignatureResponseType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyASICXMLSignatureResponseType.java index 09fc9be9..97ad57d5 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyASICXMLSignatureResponseType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyASICXMLSignatureResponseType.java @@ -3,40 +3,40 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; import javax.xml.datatype.XMLGregorianCalendar; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; import org.w3._2000._09.xmldsig_.KeyInfoType; /** - * <p>Java-Klasse für VerifyASICXMLSignatureResponseType complex type. + * <p>Java class for VerifyASICXMLSignatureResponseType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="VerifyASICXMLSignatureResponseType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="SignerInfo" type="{http://www.w3.org/2000/09/xmldsig#}KeyInfoType"/> - * <element name="SigningTime" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/> - * <element name="HashInputData" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}InputDataType" maxOccurs="unbounded" minOccurs="0"/> - * <element name="ReferenceInputData" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}InputDataType" maxOccurs="unbounded" minOccurs="0"/> - * <element name="SignatureCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ReferencesCheckResultType"/> - * <element name="SignatureManifestCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ReferencesCheckResultType" minOccurs="0"/> - * <element name="XMLDSIGManifestCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ManifestRefsCheckResultType" maxOccurs="unbounded" minOccurs="0"/> - * <element name="CertificateCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CheckResultType"/> - * <element name="FormCheckResult" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}FormResultType" maxOccurs="unbounded" minOccurs="0"/> - * <element name="ExtendedCertificateCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ExtendedCertificateCheckResultType" minOccurs="0"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="VerifyASICXMLSignatureResponseType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="SignerInfo" type="{http://www.w3.org/2000/09/xmldsig#}KeyInfoType"/> + * <element name="SigningTime" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/> + * <element name="HashInputData" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}InputDataType" maxOccurs="unbounded" minOccurs="0"/> + * <element name="ReferenceInputData" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}InputDataType" maxOccurs="unbounded" minOccurs="0"/> + * <element name="SignatureCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ReferencesCheckResultType"/> + * <element name="SignatureManifestCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ReferencesCheckResultType" minOccurs="0"/> + * <element name="XMLDSIGManifestCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ManifestRefsCheckResultType" maxOccurs="unbounded" minOccurs="0"/> + * <element name="CertificateCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CheckResultType"/> + * <element name="FormCheckResult" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}FormResultType" maxOccurs="unbounded" minOccurs="0"/> + * <element name="ExtendedCertificateCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ExtendedCertificateCheckResultType" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -55,6 +55,14 @@ import org.w3._2000._09.xmldsig_.KeyInfoType; }) public class VerifyASICXMLSignatureResponseType { + /** + * only ds:X509Data and ds:RetrievalMethod is + * supported; QualifiedCertificate is included as X509Data/any; + * PublicAuthority is included as X509Data/any; + * SecureSignatureCreationDevice is included as X509Data/any, + * IssuingCountry is included as X509Data/any + * + */ @XmlElement(name = "SignerInfo", required = true) protected KeyInfoType signerInfo; @XmlElement(name = "SigningTime") @@ -78,7 +86,11 @@ public class VerifyASICXMLSignatureResponseType { protected ExtendedCertificateCheckResultType extendedCertificateCheck; /** - * Ruft den Wert der signerInfo-Eigenschaft ab. + * only ds:X509Data and ds:RetrievalMethod is + * supported; QualifiedCertificate is included as X509Data/any; + * PublicAuthority is included as X509Data/any; + * SecureSignatureCreationDevice is included as X509Data/any, + * IssuingCountry is included as X509Data/any * * @return * possible object is @@ -90,19 +102,20 @@ public class VerifyASICXMLSignatureResponseType { } /** - * Legt den Wert der signerInfo-Eigenschaft fest. + * Sets the value of the signerInfo property. * * @param value * allowed object is * {@link KeyInfoType } * + * @see #getSignerInfo() */ public void setSignerInfo(KeyInfoType value) { this.signerInfo = value; } /** - * Ruft den Wert der signingTime-Eigenschaft ab. + * Gets the value of the signingTime property. * * @return * possible object is @@ -114,7 +127,7 @@ public class VerifyASICXMLSignatureResponseType { } /** - * Legt den Wert der signingTime-Eigenschaft fest. + * Sets the value of the signingTime property. * * @param value * allowed object is @@ -128,28 +141,31 @@ public class VerifyASICXMLSignatureResponseType { /** * Gets the value of the hashInputData property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the hashInputData property. + * This is why there is not a <CODE>set</CODE> method for the hashInputData property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getHashInputData().add(newItem); + * getHashInputData().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link InputDataType } + * </p> * * + * @return + * The value of the hashInputData property. */ public List<InputDataType> getHashInputData() { if (hashInputData == null) { - hashInputData = new ArrayList<InputDataType>(); + hashInputData = new ArrayList<>(); } return this.hashInputData; } @@ -157,34 +173,37 @@ public class VerifyASICXMLSignatureResponseType { /** * Gets the value of the referenceInputData property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the referenceInputData property. + * This is why there is not a <CODE>set</CODE> method for the referenceInputData property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getReferenceInputData().add(newItem); + * getReferenceInputData().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link InputDataType } + * </p> * * + * @return + * The value of the referenceInputData property. */ public List<InputDataType> getReferenceInputData() { if (referenceInputData == null) { - referenceInputData = new ArrayList<InputDataType>(); + referenceInputData = new ArrayList<>(); } return this.referenceInputData; } /** - * Ruft den Wert der signatureCheck-Eigenschaft ab. + * Gets the value of the signatureCheck property. * * @return * possible object is @@ -196,7 +215,7 @@ public class VerifyASICXMLSignatureResponseType { } /** - * Legt den Wert der signatureCheck-Eigenschaft fest. + * Sets the value of the signatureCheck property. * * @param value * allowed object is @@ -208,7 +227,7 @@ public class VerifyASICXMLSignatureResponseType { } /** - * Ruft den Wert der signatureManifestCheck-Eigenschaft ab. + * Gets the value of the signatureManifestCheck property. * * @return * possible object is @@ -220,7 +239,7 @@ public class VerifyASICXMLSignatureResponseType { } /** - * Legt den Wert der signatureManifestCheck-Eigenschaft fest. + * Sets the value of the signatureManifestCheck property. * * @param value * allowed object is @@ -234,34 +253,37 @@ public class VerifyASICXMLSignatureResponseType { /** * Gets the value of the xmldsigManifestCheck property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the xmldsigManifestCheck property. + * This is why there is not a <CODE>set</CODE> method for the xmldsigManifestCheck property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getXMLDSIGManifestCheck().add(newItem); + * getXMLDSIGManifestCheck().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link ManifestRefsCheckResultType } + * </p> * * + * @return + * The value of the xmldsigManifestCheck property. */ public List<ManifestRefsCheckResultType> getXMLDSIGManifestCheck() { if (xmldsigManifestCheck == null) { - xmldsigManifestCheck = new ArrayList<ManifestRefsCheckResultType>(); + xmldsigManifestCheck = new ArrayList<>(); } return this.xmldsigManifestCheck; } /** - * Ruft den Wert der certificateCheck-Eigenschaft ab. + * Gets the value of the certificateCheck property. * * @return * possible object is @@ -273,7 +295,7 @@ public class VerifyASICXMLSignatureResponseType { } /** - * Legt den Wert der certificateCheck-Eigenschaft fest. + * Sets the value of the certificateCheck property. * * @param value * allowed object is @@ -287,34 +309,37 @@ public class VerifyASICXMLSignatureResponseType { /** * Gets the value of the formCheckResult property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the formCheckResult property. + * This is why there is not a <CODE>set</CODE> method for the formCheckResult property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getFormCheckResult().add(newItem); + * getFormCheckResult().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link FormResultType } + * </p> * * + * @return + * The value of the formCheckResult property. */ public List<FormResultType> getFormCheckResult() { if (formCheckResult == null) { - formCheckResult = new ArrayList<FormResultType>(); + formCheckResult = new ArrayList<>(); } return this.formCheckResult; } /** - * Ruft den Wert der extendedCertificateCheck-Eigenschaft ab. + * Gets the value of the extendedCertificateCheck property. * * @return * possible object is @@ -326,7 +351,7 @@ public class VerifyASICXMLSignatureResponseType { } /** - * Legt den Wert der extendedCertificateCheck-Eigenschaft fest. + * Sets the value of the extendedCertificateCheck property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyCMSSignatureRequest.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyCMSSignatureRequest.java index b323873a..2b7b8ea4 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyCMSSignatureRequest.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyCMSSignatureRequest.java @@ -3,27 +3,27 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}VerifyCMSSignatureRequestType"> - * <attribute name="Signatories" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}SignatoriesType" default="1" /> - * </extension> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}VerifyCMSSignatureRequestType"> + * <attribute name="Signatories" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}SignatoriesType" default="1" /> + * </extension> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -40,28 +40,31 @@ public class VerifyCMSSignatureRequest /** * Gets the value of the signatories property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the signatories property. + * This is why there is not a <CODE>set</CODE> method for the signatories property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getSignatories().add(newItem); + * getSignatories().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link String } + * </p> * * + * @return + * The value of the signatories property. */ public List<String> getSignatories() { if (signatories == null) { - signatories = new ArrayList<String>(); + signatories = new ArrayList<>(); } return this.signatories; } diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyCMSSignatureRequestType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyCMSSignatureRequestType.java index 327ff846..468b8e9c 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyCMSSignatureRequestType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyCMSSignatureRequestType.java @@ -1,37 +1,37 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import javax.xml.datatype.XMLGregorianCalendar; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** - * <p>Java-Klasse für VerifyCMSSignatureRequestType complex type. + * <p>Java class for VerifyCMSSignatureRequestType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="VerifyCMSSignatureRequestType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="DateTime" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/> - * <element name="ExtendedValidation" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/> - * <element name="CMSSignature" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> - * <element name="DataObject" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CMSDataObjectOptionalMetaType" minOccurs="0"/> - * <element name="TrustProfileID" type="{http://www.w3.org/2001/XMLSchema}token"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="VerifyCMSSignatureRequestType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="DateTime" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/> + * <element name="ExtendedValidation" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/> + * <element name="CMSSignature" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> + * <element name="DataObject" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CMSDataObjectOptionalMetaType" minOccurs="0"/> + * <element name="TrustProfileID" type="{http://www.w3.org/2001/XMLSchema}token"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -57,13 +57,18 @@ public class VerifyCMSSignatureRequestType { protected byte[] cmsSignature; @XmlElement(name = "DataObject") protected CMSDataObjectOptionalMetaType dataObject; + /** + * mit diesem Profil wird eine Menge von + * vertrauenswürdigen Wurzelzertifikaten spezifiziert + * + */ @XmlElement(name = "TrustProfileID", required = true) @XmlJavaTypeAdapter(CollapsedStringAdapter.class) @XmlSchemaType(name = "token") protected String trustProfileID; /** - * Ruft den Wert der dateTime-Eigenschaft ab. + * Gets the value of the dateTime property. * * @return * possible object is @@ -75,7 +80,7 @@ public class VerifyCMSSignatureRequestType { } /** - * Legt den Wert der dateTime-Eigenschaft fest. + * Sets the value of the dateTime property. * * @param value * allowed object is @@ -87,7 +92,7 @@ public class VerifyCMSSignatureRequestType { } /** - * Ruft den Wert der extendedValidation-Eigenschaft ab. + * Gets the value of the extendedValidation property. * * @return * possible object is @@ -99,7 +104,7 @@ public class VerifyCMSSignatureRequestType { } /** - * Legt den Wert der extendedValidation-Eigenschaft fest. + * Sets the value of the extendedValidation property. * * @param value * allowed object is @@ -111,7 +116,7 @@ public class VerifyCMSSignatureRequestType { } /** - * Ruft den Wert der cmsSignature-Eigenschaft ab. + * Gets the value of the cmsSignature property. * * @return * possible object is @@ -122,7 +127,7 @@ public class VerifyCMSSignatureRequestType { } /** - * Legt den Wert der cmsSignature-Eigenschaft fest. + * Sets the value of the cmsSignature property. * * @param value * allowed object is @@ -133,7 +138,7 @@ public class VerifyCMSSignatureRequestType { } /** - * Ruft den Wert der dataObject-Eigenschaft ab. + * Gets the value of the dataObject property. * * @return * possible object is @@ -145,7 +150,7 @@ public class VerifyCMSSignatureRequestType { } /** - * Legt den Wert der dataObject-Eigenschaft fest. + * Sets the value of the dataObject property. * * @param value * allowed object is @@ -157,7 +162,8 @@ public class VerifyCMSSignatureRequestType { } /** - * Ruft den Wert der trustProfileID-Eigenschaft ab. + * mit diesem Profil wird eine Menge von + * vertrauenswürdigen Wurzelzertifikaten spezifiziert * * @return * possible object is @@ -169,12 +175,13 @@ public class VerifyCMSSignatureRequestType { } /** - * Legt den Wert der trustProfileID-Eigenschaft fest. + * Sets the value of the trustProfileID property. * * @param value * allowed object is * {@link String } * + * @see #getTrustProfileID() */ public void setTrustProfileID(String value) { this.trustProfileID = value; diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyCMSSignatureResponseType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyCMSSignatureResponseType.java index 16c5fa22..5f1f7354 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyCMSSignatureResponseType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyCMSSignatureResponseType.java @@ -3,36 +3,36 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElementRef; -import javax.xml.bind.annotation.XmlElementRefs; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElementRef; +import jakarta.xml.bind.annotation.XmlElementRefs; +import jakarta.xml.bind.annotation.XmlType; import org.w3._2000._09.xmldsig_.KeyInfoType; /** - * <p>Java-Klasse für VerifyCMSSignatureResponseType complex type. + * <p>Java class for VerifyCMSSignatureResponseType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="VerifyCMSSignatureResponseType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence maxOccurs="unbounded"> - * <element name="SignerInfo" type="{http://www.w3.org/2000/09/xmldsig#}KeyInfoType"/> - * <element name="SignatureAlgorithm" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> - * <element name="SignatureCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CheckResultType"/> - * <element name="CertificateCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CheckResultType"/> - * <element name="FormCheckResult" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}FormResultType" maxOccurs="unbounded" minOccurs="0"/> - * <element name="ExtendedCertificateCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ExtendedCertificateCheckResultType" minOccurs="0"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="VerifyCMSSignatureResponseType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence maxOccurs="unbounded"> + * <element name="SignerInfo" type="{http://www.w3.org/2000/09/xmldsig#}KeyInfoType"/> + * <element name="SignatureAlgorithm" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> + * <element name="SignatureCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CheckResultType"/> + * <element name="CertificateCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CheckResultType"/> + * <element name="FormCheckResult" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}FormResultType" maxOccurs="unbounded" minOccurs="0"/> + * <element name="ExtendedCertificateCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ExtendedCertificateCheckResultType" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -55,16 +55,16 @@ public class VerifyCMSSignatureResponseType { /** * Gets the value of the signerInfoAndSignatureAlgorithmAndSignatureCheck property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the signerInfoAndSignatureAlgorithmAndSignatureCheck property. + * This is why there is not a <CODE>set</CODE> method for the signerInfoAndSignatureAlgorithmAndSignatureCheck property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getSignerInfoAndSignatureAlgorithmAndSignatureCheck().add(newItem); + * getSignerInfoAndSignatureAlgorithmAndSignatureCheck().add(newItem); * </pre> * * @@ -76,12 +76,15 @@ public class VerifyCMSSignatureResponseType { * {@link JAXBElement }{@code <}{@link FormResultType }{@code >} * {@link JAXBElement }{@code <}{@link String }{@code >} * {@link JAXBElement }{@code <}{@link KeyInfoType }{@code >} + * </p> * * + * @return + * The value of the signerInfoAndSignatureAlgorithmAndSignatureCheck property. */ public List<JAXBElement<?>> getSignerInfoAndSignatureAlgorithmAndSignatureCheck() { if (signerInfoAndSignatureAlgorithmAndSignatureCheck == null) { - signerInfoAndSignatureAlgorithmAndSignatureCheck = new ArrayList<JAXBElement<?>>(); + signerInfoAndSignatureAlgorithmAndSignatureCheck = new ArrayList<>(); } return this.signerInfoAndSignatureAlgorithmAndSignatureCheck; } diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyPDFSignatureRequest.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyPDFSignatureRequest.java index 656ea240..7f458f9a 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyPDFSignatureRequest.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyPDFSignatureRequest.java @@ -3,27 +3,27 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}VerifyPDFSignatureRequestType"> - * <attribute name="Signatories" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}SignatoriesType" default="1" /> - * </extension> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}VerifyPDFSignatureRequestType"> + * <attribute name="Signatories" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}SignatoriesType" default="1" /> + * </extension> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -40,28 +40,31 @@ public class VerifyPDFSignatureRequest /** * Gets the value of the signatories property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the signatories property. + * This is why there is not a <CODE>set</CODE> method for the signatories property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getSignatories().add(newItem); + * getSignatories().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link String } + * </p> * * + * @return + * The value of the signatories property. */ public List<String> getSignatories() { if (signatories == null) { - signatories = new ArrayList<String>(); + signatories = new ArrayList<>(); } return this.signatories; } diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyPDFSignatureRequestType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyPDFSignatureRequestType.java index 4536ac2e..ee8eb400 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyPDFSignatureRequestType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyPDFSignatureRequestType.java @@ -1,36 +1,36 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlSeeAlso; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import javax.xml.datatype.XMLGregorianCalendar; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlSeeAlso; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** - * <p>Java-Klasse für VerifyPDFSignatureRequestType complex type. + * <p>Java class for VerifyPDFSignatureRequestType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="VerifyPDFSignatureRequestType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="DateTime" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/> - * <element name="ExtendedValidation" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/> - * <element name="PDFSignature" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> - * <element name="TrustProfileID" type="{http://www.w3.org/2001/XMLSchema}token"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="VerifyPDFSignatureRequestType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="DateTime" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/> + * <element name="ExtendedValidation" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/> + * <element name="PDFSignature" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/> + * <element name="TrustProfileID" type="{http://www.w3.org/2001/XMLSchema}token"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -53,13 +53,18 @@ public class VerifyPDFSignatureRequestType { protected Boolean extendedValidation; @XmlElement(name = "PDFSignature", required = true) protected byte[] pdfSignature; + /** + * mit diesem Profil wird eine Menge von + * vertrauenswürdigen Wurzelzertifikaten spezifiziert + * + */ @XmlElement(name = "TrustProfileID", required = true) @XmlJavaTypeAdapter(CollapsedStringAdapter.class) @XmlSchemaType(name = "token") protected String trustProfileID; /** - * Ruft den Wert der dateTime-Eigenschaft ab. + * Gets the value of the dateTime property. * * @return * possible object is @@ -71,7 +76,7 @@ public class VerifyPDFSignatureRequestType { } /** - * Legt den Wert der dateTime-Eigenschaft fest. + * Sets the value of the dateTime property. * * @param value * allowed object is @@ -83,7 +88,7 @@ public class VerifyPDFSignatureRequestType { } /** - * Ruft den Wert der extendedValidation-Eigenschaft ab. + * Gets the value of the extendedValidation property. * * @return * possible object is @@ -95,7 +100,7 @@ public class VerifyPDFSignatureRequestType { } /** - * Legt den Wert der extendedValidation-Eigenschaft fest. + * Sets the value of the extendedValidation property. * * @param value * allowed object is @@ -107,7 +112,7 @@ public class VerifyPDFSignatureRequestType { } /** - * Ruft den Wert der pdfSignature-Eigenschaft ab. + * Gets the value of the pdfSignature property. * * @return * possible object is @@ -118,7 +123,7 @@ public class VerifyPDFSignatureRequestType { } /** - * Legt den Wert der pdfSignature-Eigenschaft fest. + * Sets the value of the pdfSignature property. * * @param value * allowed object is @@ -129,7 +134,8 @@ public class VerifyPDFSignatureRequestType { } /** - * Ruft den Wert der trustProfileID-Eigenschaft ab. + * mit diesem Profil wird eine Menge von + * vertrauenswürdigen Wurzelzertifikaten spezifiziert * * @return * possible object is @@ -141,12 +147,13 @@ public class VerifyPDFSignatureRequestType { } /** - * Legt den Wert der trustProfileID-Eigenschaft fest. + * Sets the value of the trustProfileID property. * * @param value * allowed object is * {@link String } * + * @see #getTrustProfileID() */ public void setTrustProfileID(String value) { this.trustProfileID = value; diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyPDFSignatureResponseType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyPDFSignatureResponseType.java index 151c6f97..de36f998 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyPDFSignatureResponseType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyPDFSignatureResponseType.java @@ -3,28 +3,28 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für VerifyPDFSignatureResponseType complex type. + * <p>Java class for VerifyPDFSignatureResponseType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="VerifyPDFSignatureResponseType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence maxOccurs="unbounded"> - * <element name="SignatureResult" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}PDFSignatureResultType"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="VerifyPDFSignatureResponseType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence maxOccurs="unbounded"> + * <element name="SignatureResult" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}PDFSignatureResultType"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -40,28 +40,31 @@ public class VerifyPDFSignatureResponseType { /** * Gets the value of the signatureResult property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the signatureResult property. + * This is why there is not a <CODE>set</CODE> method for the signatureResult property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getSignatureResult().add(newItem); + * getSignatureResult().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link PDFSignatureResultType } + * </p> * * + * @return + * The value of the signatureResult property. */ public List<PDFSignatureResultType> getSignatureResult() { if (signatureResult == null) { - signatureResult = new ArrayList<PDFSignatureResultType>(); + signatureResult = new ArrayList<>(); } return this.signatureResult; } diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyTransformsDataType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyTransformsDataType.java index 3a057075..4c4fe239 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyTransformsDataType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyTransformsDataType.java @@ -3,30 +3,30 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlElements; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlElements; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für VerifyTransformsDataType complex type. + * <p>Java class for VerifyTransformsDataType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="VerifyTransformsDataType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <choice maxOccurs="unbounded"> - * <element ref="{http://reference.e-government.gv.at/namespace/moa/20020822#}VerifyTransformsInfoProfile"/> - * <element name="VerifyTransformsInfoProfileID" type="{http://www.w3.org/2001/XMLSchema}string"/> - * </choice> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="VerifyTransformsDataType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <choice maxOccurs="unbounded"> + * <element ref="{http://reference.e-government.gv.at/namespace/moa/20020822#}VerifyTransformsInfoProfile"/> + * <element name="VerifyTransformsInfoProfileID" type="{http://www.w3.org/2001/XMLSchema}string"/> + * </choice> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -36,6 +36,13 @@ import javax.xml.bind.annotation.XmlType; }) public class VerifyTransformsDataType { + /** + * Ein oder mehrere Transformationswege können von + * der Applikation an MOA mitgeteilt werden. Die zu prüfende Signatur + * hat zumindest einem dieser Transformationswege zu entsprechen. Die + * Angabe kann explizit oder als Profilbezeichner erfolgen. + * + */ @XmlElements({ @XmlElement(name = "VerifyTransformsInfoProfile", type = VerifyTransformsInfoProfile.class), @XmlElement(name = "VerifyTransformsInfoProfileID", type = String.class) @@ -43,18 +50,23 @@ public class VerifyTransformsDataType { protected List<Object> verifyTransformsInfoProfileOrVerifyTransformsInfoProfileID; /** + * Ein oder mehrere Transformationswege können von + * der Applikation an MOA mitgeteilt werden. Die zu prüfende Signatur + * hat zumindest einem dieser Transformationswege zu entsprechen. Die + * Angabe kann explizit oder als Profilbezeichner erfolgen. + * * Gets the value of the verifyTransformsInfoProfileOrVerifyTransformsInfoProfileID property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the verifyTransformsInfoProfileOrVerifyTransformsInfoProfileID property. + * This is why there is not a <CODE>set</CODE> method for the verifyTransformsInfoProfileOrVerifyTransformsInfoProfileID property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getVerifyTransformsInfoProfileOrVerifyTransformsInfoProfileID().add(newItem); + * getVerifyTransformsInfoProfileOrVerifyTransformsInfoProfileID().add(newItem); * </pre> * * @@ -62,12 +74,15 @@ public class VerifyTransformsDataType { * Objects of the following type(s) are allowed in the list * {@link VerifyTransformsInfoProfile } * {@link String } + * </p> * * + * @return + * The value of the verifyTransformsInfoProfileOrVerifyTransformsInfoProfileID property. */ public List<Object> getVerifyTransformsInfoProfileOrVerifyTransformsInfoProfileID() { if (verifyTransformsInfoProfileOrVerifyTransformsInfoProfileID == null) { - verifyTransformsInfoProfileOrVerifyTransformsInfoProfileID = new ArrayList<Object>(); + verifyTransformsInfoProfileOrVerifyTransformsInfoProfileID = new ArrayList<>(); } return this.verifyTransformsInfoProfileOrVerifyTransformsInfoProfileID; } diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyTransformsInfoProfile.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyTransformsInfoProfile.java index 0aea66a2..29da7bd8 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyTransformsInfoProfile.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyTransformsInfoProfile.java @@ -3,31 +3,31 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlType; import org.w3._2000._09.xmldsig_.TransformsType; /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}Transforms" minOccurs="0"/> - * <element name="TransformParameter" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}TransformParameterType" maxOccurs="unbounded" minOccurs="0"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}Transforms" minOccurs="0"/> + * <element name="TransformParameter" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}TransformParameterType" maxOccurs="unbounded" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -41,11 +41,20 @@ public class VerifyTransformsInfoProfile { @XmlElement(name = "Transforms", namespace = "http://www.w3.org/2000/09/xmldsig#") protected TransformsType transforms; + /** + * Alle impliziten Transformationsparameter, die + * zum Durchlaufen der oben angeführten Transformationskette + * bekannt sein müssen, müssen hier angeführt werden. Das + * Attribut "URI" bezeichnet den Transformationsparameter in exakt + * jener Weise, wie er in der zu überprüfenden Signatur gebraucht + * wird. + * + */ @XmlElement(name = "TransformParameter") protected List<TransformParameterType> transformParameter; /** - * Ruft den Wert der transforms-Eigenschaft ab. + * Gets the value of the transforms property. * * @return * possible object is @@ -57,7 +66,7 @@ public class VerifyTransformsInfoProfile { } /** - * Legt den Wert der transforms-Eigenschaft fest. + * Sets the value of the transforms property. * * @param value * allowed object is @@ -69,30 +78,40 @@ public class VerifyTransformsInfoProfile { } /** + * Alle impliziten Transformationsparameter, die + * zum Durchlaufen der oben angeführten Transformationskette + * bekannt sein müssen, müssen hier angeführt werden. Das + * Attribut "URI" bezeichnet den Transformationsparameter in exakt + * jener Weise, wie er in der zu überprüfenden Signatur gebraucht + * wird. + * * Gets the value of the transformParameter property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the transformParameter property. + * This is why there is not a <CODE>set</CODE> method for the transformParameter property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getTransformParameter().add(newItem); + * getTransformParameter().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link TransformParameterType } + * </p> * * + * @return + * The value of the transformParameter property. */ public List<TransformParameterType> getTransformParameter() { if (transformParameter == null) { - transformParameter = new ArrayList<TransformParameterType>(); + transformParameter = new ArrayList<>(); } return this.transformParameter; } diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyXMLSignatureRequestType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyXMLSignatureRequestType.java index c675387d..79db9405 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyXMLSignatureRequestType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyXMLSignatureRequestType.java @@ -3,65 +3,65 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlElements; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import javax.xml.datatype.XMLGregorianCalendar; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlElements; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** - * <p>Java-Klasse für VerifyXMLSignatureRequestType complex type. + * <p>Java class for VerifyXMLSignatureRequestType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="VerifyXMLSignatureRequestType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="DateTime" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/> - * <element name="ExtendedValidation" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/> - * <element name="VerifySignatureInfo"> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="VerifySignatureEnvironment" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentOptionalRefType"/> - * <element name="VerifySignatureLocation" type="{http://www.w3.org/2001/XMLSchema}token"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </element> - * <choice maxOccurs="unbounded" minOccurs="0"> - * <element ref="{http://reference.e-government.gv.at/namespace/moa/20020822#}SupplementProfile"/> - * <element name="SupplementProfileID" type="{http://www.w3.org/2001/XMLSchema}string"/> - * </choice> - * <element name="SignatureManifestCheckParams" minOccurs="0"> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="ReferenceInfo" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}VerifyTransformsDataType" maxOccurs="unbounded"/> - * </sequence> - * <attribute name="ReturnReferenceInputData" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /> - * </restriction> - * </complexContent> - * </complexType> - * </element> - * <element name="ReturnHashInputData" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/> - * <element name="TrustProfileID" type="{http://www.w3.org/2001/XMLSchema}token"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="VerifyXMLSignatureRequestType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="DateTime" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/> + * <element name="ExtendedValidation" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/> + * <element name="VerifySignatureInfo"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="VerifySignatureEnvironment" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentOptionalRefType"/> + * <element name="VerifySignatureLocation" type="{http://www.w3.org/2001/XMLSchema}token"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <choice maxOccurs="unbounded" minOccurs="0"> + * <element ref="{http://reference.e-government.gv.at/namespace/moa/20020822#}SupplementProfile"/> + * <element name="SupplementProfileID" type="{http://www.w3.org/2001/XMLSchema}string"/> + * </choice> + * <element name="SignatureManifestCheckParams" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="ReferenceInfo" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}VerifyTransformsDataType" maxOccurs="unbounded"/> + * </sequence> + * <attribute name="ReturnReferenceInputData" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="ReturnHashInputData" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/> + * <element name="TrustProfileID" type="{http://www.w3.org/2001/XMLSchema}token"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -93,13 +93,18 @@ public class VerifyXMLSignatureRequestType { protected VerifyXMLSignatureRequestType.SignatureManifestCheckParams signatureManifestCheckParams; @XmlElement(name = "ReturnHashInputData") protected Object returnHashInputData; + /** + * mit diesem Profil wird eine Menge von + * vertrauenswürdigen Wurzelzertifikaten spezifiziert + * + */ @XmlElement(name = "TrustProfileID", required = true) @XmlJavaTypeAdapter(CollapsedStringAdapter.class) @XmlSchemaType(name = "token") protected String trustProfileID; /** - * Ruft den Wert der dateTime-Eigenschaft ab. + * Gets the value of the dateTime property. * * @return * possible object is @@ -111,7 +116,7 @@ public class VerifyXMLSignatureRequestType { } /** - * Legt den Wert der dateTime-Eigenschaft fest. + * Sets the value of the dateTime property. * * @param value * allowed object is @@ -123,7 +128,7 @@ public class VerifyXMLSignatureRequestType { } /** - * Ruft den Wert der extendedValidation-Eigenschaft ab. + * Gets the value of the extendedValidation property. * * @return * possible object is @@ -135,7 +140,7 @@ public class VerifyXMLSignatureRequestType { } /** - * Legt den Wert der extendedValidation-Eigenschaft fest. + * Sets the value of the extendedValidation property. * * @param value * allowed object is @@ -147,7 +152,7 @@ public class VerifyXMLSignatureRequestType { } /** - * Ruft den Wert der verifySignatureInfo-Eigenschaft ab. + * Gets the value of the verifySignatureInfo property. * * @return * possible object is @@ -159,7 +164,7 @@ public class VerifyXMLSignatureRequestType { } /** - * Legt den Wert der verifySignatureInfo-Eigenschaft fest. + * Sets the value of the verifySignatureInfo property. * * @param value * allowed object is @@ -173,16 +178,16 @@ public class VerifyXMLSignatureRequestType { /** * Gets the value of the supplementProfileOrSupplementProfileID property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the supplementProfileOrSupplementProfileID property. + * This is why there is not a <CODE>set</CODE> method for the supplementProfileOrSupplementProfileID property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getSupplementProfileOrSupplementProfileID().add(newItem); + * getSupplementProfileOrSupplementProfileID().add(newItem); * </pre> * * @@ -190,18 +195,21 @@ public class VerifyXMLSignatureRequestType { * Objects of the following type(s) are allowed in the list * {@link XMLDataObjectAssociationType } * {@link String } + * </p> * * + * @return + * The value of the supplementProfileOrSupplementProfileID property. */ public List<Object> getSupplementProfileOrSupplementProfileID() { if (supplementProfileOrSupplementProfileID == null) { - supplementProfileOrSupplementProfileID = new ArrayList<Object>(); + supplementProfileOrSupplementProfileID = new ArrayList<>(); } return this.supplementProfileOrSupplementProfileID; } /** - * Ruft den Wert der signatureManifestCheckParams-Eigenschaft ab. + * Gets the value of the signatureManifestCheckParams property. * * @return * possible object is @@ -213,7 +221,7 @@ public class VerifyXMLSignatureRequestType { } /** - * Legt den Wert der signatureManifestCheckParams-Eigenschaft fest. + * Sets the value of the signatureManifestCheckParams property. * * @param value * allowed object is @@ -225,7 +233,7 @@ public class VerifyXMLSignatureRequestType { } /** - * Ruft den Wert der returnHashInputData-Eigenschaft ab. + * Gets the value of the returnHashInputData property. * * @return * possible object is @@ -237,7 +245,7 @@ public class VerifyXMLSignatureRequestType { } /** - * Legt den Wert der returnHashInputData-Eigenschaft fest. + * Sets the value of the returnHashInputData property. * * @param value * allowed object is @@ -249,7 +257,8 @@ public class VerifyXMLSignatureRequestType { } /** - * Ruft den Wert der trustProfileID-Eigenschaft ab. + * mit diesem Profil wird eine Menge von + * vertrauenswürdigen Wurzelzertifikaten spezifiziert * * @return * possible object is @@ -261,12 +270,13 @@ public class VerifyXMLSignatureRequestType { } /** - * Legt den Wert der trustProfileID-Eigenschaft fest. + * Sets the value of the trustProfileID property. * * @param value * allowed object is * {@link String } * + * @see #getTrustProfileID() */ public void setTrustProfileID(String value) { this.trustProfileID = value; @@ -274,22 +284,22 @@ public class VerifyXMLSignatureRequestType { /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="ReferenceInfo" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}VerifyTransformsDataType" maxOccurs="unbounded"/> - * </sequence> - * <attribute name="ReturnReferenceInputData" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="ReferenceInfo" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}VerifyTransformsDataType" maxOccurs="unbounded"/> + * </sequence> + * <attribute name="ReturnReferenceInputData" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" /> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -299,42 +309,59 @@ public class VerifyXMLSignatureRequestType { }) public static class SignatureManifestCheckParams { + /** + * Pro dsig:Reference-Element in der zu + * überprüfenden XML-Signatur muss hier ein + * ReferenceInfo-Element erscheinen. Die Reihenfolge der einzelnen + * ReferenceInfo Elemente entspricht jener der dsig:Reference + * Elemente in der XML-Signatur. + * + */ @XmlElement(name = "ReferenceInfo", required = true) protected List<VerifyTransformsDataType> referenceInfo; @XmlAttribute(name = "ReturnReferenceInputData") protected Boolean returnReferenceInputData; /** + * Pro dsig:Reference-Element in der zu + * überprüfenden XML-Signatur muss hier ein + * ReferenceInfo-Element erscheinen. Die Reihenfolge der einzelnen + * ReferenceInfo Elemente entspricht jener der dsig:Reference + * Elemente in der XML-Signatur. + * * Gets the value of the referenceInfo property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the referenceInfo property. + * This is why there is not a <CODE>set</CODE> method for the referenceInfo property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getReferenceInfo().add(newItem); + * getReferenceInfo().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link VerifyTransformsDataType } + * </p> * * + * @return + * The value of the referenceInfo property. */ public List<VerifyTransformsDataType> getReferenceInfo() { if (referenceInfo == null) { - referenceInfo = new ArrayList<VerifyTransformsDataType>(); + referenceInfo = new ArrayList<>(); } return this.referenceInfo; } /** - * Ruft den Wert der returnReferenceInputData-Eigenschaft ab. + * Gets the value of the returnReferenceInputData property. * * @return * possible object is @@ -350,7 +377,7 @@ public class VerifyXMLSignatureRequestType { } /** - * Legt den Wert der returnReferenceInputData-Eigenschaft fest. + * Sets the value of the returnReferenceInputData property. * * @param value * allowed object is @@ -365,22 +392,22 @@ public class VerifyXMLSignatureRequestType { /** - * <p>Java-Klasse für anonymous complex type. + * <p>Java class for anonymous complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="VerifySignatureEnvironment" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentOptionalRefType"/> - * <element name="VerifySignatureLocation" type="{http://www.w3.org/2001/XMLSchema}token"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="VerifySignatureEnvironment" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentOptionalRefType"/> + * <element name="VerifySignatureLocation" type="{http://www.w3.org/2001/XMLSchema}token"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -399,7 +426,7 @@ public class VerifyXMLSignatureRequestType { protected String verifySignatureLocation; /** - * Ruft den Wert der verifySignatureEnvironment-Eigenschaft ab. + * Gets the value of the verifySignatureEnvironment property. * * @return * possible object is @@ -411,7 +438,7 @@ public class VerifyXMLSignatureRequestType { } /** - * Legt den Wert der verifySignatureEnvironment-Eigenschaft fest. + * Sets the value of the verifySignatureEnvironment property. * * @param value * allowed object is @@ -423,7 +450,7 @@ public class VerifyXMLSignatureRequestType { } /** - * Ruft den Wert der verifySignatureLocation-Eigenschaft ab. + * Gets the value of the verifySignatureLocation property. * * @return * possible object is @@ -435,7 +462,7 @@ public class VerifyXMLSignatureRequestType { } /** - * Legt den Wert der verifySignatureLocation-Eigenschaft fest. + * Sets the value of the verifySignatureLocation property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyXMLSignatureResponseType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyXMLSignatureResponseType.java index 967c567a..26beffa1 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyXMLSignatureResponseType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/VerifyXMLSignatureResponseType.java @@ -3,38 +3,38 @@ package at.gv.e_government.reference.namespace.moa._20020822_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; import org.w3._2000._09.xmldsig_.KeyInfoType; /** - * <p>Java-Klasse für VerifyXMLSignatureResponseType complex type. + * <p>Java class for VerifyXMLSignatureResponseType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="VerifyXMLSignatureResponseType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="SignerInfo" type="{http://www.w3.org/2000/09/xmldsig#}KeyInfoType"/> - * <element name="HashInputData" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}InputDataType" maxOccurs="unbounded" minOccurs="0"/> - * <element name="ReferenceInputData" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}InputDataType" maxOccurs="unbounded" minOccurs="0"/> - * <element name="SignatureAlgorithm" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> - * <element name="SignatureCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ReferencesCheckResultType"/> - * <element name="SignatureManifestCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ReferencesCheckResultType" minOccurs="0"/> - * <element name="XMLDSIGManifestCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ManifestRefsCheckResultType" maxOccurs="unbounded" minOccurs="0"/> - * <element name="CertificateCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CheckResultType"/> - * <element name="FormCheckResult" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}FormResultType" maxOccurs="unbounded" minOccurs="0"/> - * <element name="ExtendedCertificateCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ExtendedCertificateCheckResultType" minOccurs="0"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="VerifyXMLSignatureResponseType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="SignerInfo" type="{http://www.w3.org/2000/09/xmldsig#}KeyInfoType"/> + * <element name="HashInputData" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}InputDataType" maxOccurs="unbounded" minOccurs="0"/> + * <element name="ReferenceInputData" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}InputDataType" maxOccurs="unbounded" minOccurs="0"/> + * <element name="SignatureAlgorithm" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> + * <element name="SignatureCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ReferencesCheckResultType"/> + * <element name="SignatureManifestCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ReferencesCheckResultType" minOccurs="0"/> + * <element name="XMLDSIGManifestCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ManifestRefsCheckResultType" maxOccurs="unbounded" minOccurs="0"/> + * <element name="CertificateCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}CheckResultType"/> + * <element name="FormCheckResult" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}FormResultType" maxOccurs="unbounded" minOccurs="0"/> + * <element name="ExtendedCertificateCheck" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ExtendedCertificateCheckResultType" minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -53,6 +53,14 @@ import org.w3._2000._09.xmldsig_.KeyInfoType; }) public class VerifyXMLSignatureResponseType { + /** + * only ds:X509Data and ds:RetrievalMethod is + * supported; QualifiedCertificate is included as X509Data/any; + * PublicAuthority is included as X509Data/any; + * SecureSignatureCreationDevice is included as X509Data/any, + * IssuingCountry is included as X509Data/any + * + */ @XmlElement(name = "SignerInfo", required = true) protected KeyInfoType signerInfo; @XmlElement(name = "HashInputData") @@ -75,7 +83,11 @@ public class VerifyXMLSignatureResponseType { protected ExtendedCertificateCheckResultType extendedCertificateCheck; /** - * Ruft den Wert der signerInfo-Eigenschaft ab. + * only ds:X509Data and ds:RetrievalMethod is + * supported; QualifiedCertificate is included as X509Data/any; + * PublicAuthority is included as X509Data/any; + * SecureSignatureCreationDevice is included as X509Data/any, + * IssuingCountry is included as X509Data/any * * @return * possible object is @@ -87,12 +99,13 @@ public class VerifyXMLSignatureResponseType { } /** - * Legt den Wert der signerInfo-Eigenschaft fest. + * Sets the value of the signerInfo property. * * @param value * allowed object is * {@link KeyInfoType } * + * @see #getSignerInfo() */ public void setSignerInfo(KeyInfoType value) { this.signerInfo = value; @@ -101,28 +114,31 @@ public class VerifyXMLSignatureResponseType { /** * Gets the value of the hashInputData property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the hashInputData property. + * This is why there is not a <CODE>set</CODE> method for the hashInputData property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getHashInputData().add(newItem); + * getHashInputData().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link InputDataType } + * </p> * * + * @return + * The value of the hashInputData property. */ public List<InputDataType> getHashInputData() { if (hashInputData == null) { - hashInputData = new ArrayList<InputDataType>(); + hashInputData = new ArrayList<>(); } return this.hashInputData; } @@ -130,34 +146,37 @@ public class VerifyXMLSignatureResponseType { /** * Gets the value of the referenceInputData property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the referenceInputData property. + * This is why there is not a <CODE>set</CODE> method for the referenceInputData property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getReferenceInputData().add(newItem); + * getReferenceInputData().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link InputDataType } + * </p> * * + * @return + * The value of the referenceInputData property. */ public List<InputDataType> getReferenceInputData() { if (referenceInputData == null) { - referenceInputData = new ArrayList<InputDataType>(); + referenceInputData = new ArrayList<>(); } return this.referenceInputData; } /** - * Ruft den Wert der signatureAlgorithm-Eigenschaft ab. + * Gets the value of the signatureAlgorithm property. * * @return * possible object is @@ -169,7 +188,7 @@ public class VerifyXMLSignatureResponseType { } /** - * Legt den Wert der signatureAlgorithm-Eigenschaft fest. + * Sets the value of the signatureAlgorithm property. * * @param value * allowed object is @@ -181,7 +200,7 @@ public class VerifyXMLSignatureResponseType { } /** - * Ruft den Wert der signatureCheck-Eigenschaft ab. + * Gets the value of the signatureCheck property. * * @return * possible object is @@ -193,7 +212,7 @@ public class VerifyXMLSignatureResponseType { } /** - * Legt den Wert der signatureCheck-Eigenschaft fest. + * Sets the value of the signatureCheck property. * * @param value * allowed object is @@ -205,7 +224,7 @@ public class VerifyXMLSignatureResponseType { } /** - * Ruft den Wert der signatureManifestCheck-Eigenschaft ab. + * Gets the value of the signatureManifestCheck property. * * @return * possible object is @@ -217,7 +236,7 @@ public class VerifyXMLSignatureResponseType { } /** - * Legt den Wert der signatureManifestCheck-Eigenschaft fest. + * Sets the value of the signatureManifestCheck property. * * @param value * allowed object is @@ -231,34 +250,37 @@ public class VerifyXMLSignatureResponseType { /** * Gets the value of the xmldsigManifestCheck property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the xmldsigManifestCheck property. + * This is why there is not a <CODE>set</CODE> method for the xmldsigManifestCheck property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getXMLDSIGManifestCheck().add(newItem); + * getXMLDSIGManifestCheck().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link ManifestRefsCheckResultType } + * </p> * * + * @return + * The value of the xmldsigManifestCheck property. */ public List<ManifestRefsCheckResultType> getXMLDSIGManifestCheck() { if (xmldsigManifestCheck == null) { - xmldsigManifestCheck = new ArrayList<ManifestRefsCheckResultType>(); + xmldsigManifestCheck = new ArrayList<>(); } return this.xmldsigManifestCheck; } /** - * Ruft den Wert der certificateCheck-Eigenschaft ab. + * Gets the value of the certificateCheck property. * * @return * possible object is @@ -270,7 +292,7 @@ public class VerifyXMLSignatureResponseType { } /** - * Legt den Wert der certificateCheck-Eigenschaft fest. + * Sets the value of the certificateCheck property. * * @param value * allowed object is @@ -284,34 +306,37 @@ public class VerifyXMLSignatureResponseType { /** * Gets the value of the formCheckResult property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the formCheckResult property. + * This is why there is not a <CODE>set</CODE> method for the formCheckResult property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getFormCheckResult().add(newItem); + * getFormCheckResult().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link FormResultType } + * </p> * * + * @return + * The value of the formCheckResult property. */ public List<FormResultType> getFormCheckResult() { if (formCheckResult == null) { - formCheckResult = new ArrayList<FormResultType>(); + formCheckResult = new ArrayList<>(); } return this.formCheckResult; } /** - * Ruft den Wert der extendedCertificateCheck-Eigenschaft ab. + * Gets the value of the extendedCertificateCheck property. * * @return * possible object is @@ -323,7 +348,7 @@ public class VerifyXMLSignatureResponseType { } /** - * Legt den Wert der extendedCertificateCheck-Eigenschaft fest. + * Sets the value of the extendedCertificateCheck property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/XMLContentType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/XMLContentType.java index 3bf5c17b..ec836e83 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/XMLContentType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/XMLContentType.java @@ -1,28 +1,28 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** - * <p>Java-Klasse für XMLContentType complex type. + * <p>Java class for XMLContentType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="XMLContentType"> - * <complexContent> - * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}AnyChildrenType"> - * <attribute ref="{http://www.w3.org/XML/1998/namespace}space"/> - * </extension> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="XMLContentType"> + * <complexContent> + * <extension base="{http://reference.e-government.gv.at/namespace/moa/20020822#}AnyChildrenType"> + * <attribute ref="{http://www.w3.org/XML/1998/namespace}space"/> + * </extension> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -37,7 +37,7 @@ public class XMLContentType protected String space; /** - * Ruft den Wert der space-Eigenschaft ab. + * Gets the value of the space property. * * @return * possible object is @@ -49,7 +49,7 @@ public class XMLContentType } /** - * Legt den Wert der space-Eigenschaft fest. + * Sets the value of the space property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/XMLDataObjectAssociationType.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/XMLDataObjectAssociationType.java index 6f79f9c3..4d928b9d 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/XMLDataObjectAssociationType.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/XMLDataObjectAssociationType.java @@ -1,29 +1,29 @@ package at.gv.e_government.reference.namespace.moa._20020822_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für XMLDataObjectAssociationType complex type. + * <p>Java class for XMLDataObjectAssociationType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="XMLDataObjectAssociationType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="MetaInfo" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}MetaInfoType" minOccurs="0"/> - * <element name="Content" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentRequiredRefType"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="XMLDataObjectAssociationType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="MetaInfo" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}MetaInfoType" minOccurs="0"/> + * <element name="Content" type="{http://reference.e-government.gv.at/namespace/moa/20020822#}ContentRequiredRefType"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -40,7 +40,7 @@ public class XMLDataObjectAssociationType { protected ContentRequiredRefType content; /** - * Ruft den Wert der metaInfo-Eigenschaft ab. + * Gets the value of the metaInfo property. * * @return * possible object is @@ -52,7 +52,7 @@ public class XMLDataObjectAssociationType { } /** - * Legt den Wert der metaInfo-Eigenschaft fest. + * Sets the value of the metaInfo property. * * @param value * allowed object is @@ -64,7 +64,7 @@ public class XMLDataObjectAssociationType { } /** - * Ruft den Wert der content-Eigenschaft ab. + * Gets the value of the content property. * * @return * possible object is @@ -76,7 +76,7 @@ public class XMLDataObjectAssociationType { } /** - * Legt den Wert der content-Eigenschaft fest. + * Sets the value of the content property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/package-info.java b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/package-info.java index 23cceed7..c2022565 100644 --- a/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/package-info.java +++ b/pdf-as-moa/src/generated/java/at/gv/e_government/reference/namespace/moa/_20020822_/package-info.java @@ -1,2 +1,2 @@ -@javax.xml.bind.annotation.XmlSchema(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) +@jakarta.xml.bind.annotation.XmlSchema(namespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", elementFormDefault = jakarta.xml.bind.annotation.XmlNsForm.QUALIFIED) package at.gv.e_government.reference.namespace.moa._20020822_; diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/CanonicalizationMethodType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/CanonicalizationMethodType.java index 9ac3752e..e3f5ea1b 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/CanonicalizationMethodType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/CanonicalizationMethodType.java @@ -3,32 +3,32 @@ package org.w3._2000._09.xmldsig_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlMixed; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlMixed; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für CanonicalizationMethodType complex type. + * <p>Java class for CanonicalizationMethodType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="CanonicalizationMethodType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <any maxOccurs="unbounded" minOccurs="0"/> - * </sequence> - * <attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="CanonicalizationMethodType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <any maxOccurs="unbounded" minOccurs="0"/> + * </sequence> + * <attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -48,16 +48,16 @@ public class CanonicalizationMethodType { /** * Gets the value of the content property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the content property. + * This is why there is not a <CODE>set</CODE> method for the content property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getContent().add(newItem); + * getContent().add(newItem); * </pre> * * @@ -65,18 +65,21 @@ public class CanonicalizationMethodType { * Objects of the following type(s) are allowed in the list * {@link Object } * {@link String } + * </p> * * + * @return + * The value of the content property. */ public List<Object> getContent() { if (content == null) { - content = new ArrayList<Object>(); + content = new ArrayList<>(); } return this.content; } /** - * Ruft den Wert der algorithm-Eigenschaft ab. + * Gets the value of the algorithm property. * * @return * possible object is @@ -88,7 +91,7 @@ public class CanonicalizationMethodType { } /** - * Legt den Wert der algorithm-Eigenschaft fest. + * Sets the value of the algorithm property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/DSAKeyValueType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/DSAKeyValueType.java index d0654919..03d07147 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/DSAKeyValueType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/DSAKeyValueType.java @@ -1,38 +1,38 @@ package org.w3._2000._09.xmldsig_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für DSAKeyValueType complex type. + * <p>Java class for DSAKeyValueType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="DSAKeyValueType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <sequence minOccurs="0"> - * <element name="P" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> - * <element name="Q" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> - * </sequence> - * <element name="J" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary" minOccurs="0"/> - * <element name="G" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary" minOccurs="0"/> - * <element name="Y" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> - * <sequence minOccurs="0"> - * <element name="Seed" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> - * <element name="PgenCounter" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> - * </sequence> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="DSAKeyValueType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <sequence minOccurs="0"> + * <element name="P" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> + * <element name="Q" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> + * </sequence> + * <element name="J" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary" minOccurs="0"/> + * <element name="G" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary" minOccurs="0"/> + * <element name="Y" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> + * <sequence minOccurs="0"> + * <element name="Seed" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> + * <element name="PgenCounter" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> + * </sequence> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -64,7 +64,7 @@ public class DSAKeyValueType { protected String pgenCounter; /** - * Ruft den Wert der p-Eigenschaft ab. + * Gets the value of the p property. * * @return * possible object is @@ -76,7 +76,7 @@ public class DSAKeyValueType { } /** - * Legt den Wert der p-Eigenschaft fest. + * Sets the value of the p property. * * @param value * allowed object is @@ -88,7 +88,7 @@ public class DSAKeyValueType { } /** - * Ruft den Wert der q-Eigenschaft ab. + * Gets the value of the q property. * * @return * possible object is @@ -100,7 +100,7 @@ public class DSAKeyValueType { } /** - * Legt den Wert der q-Eigenschaft fest. + * Sets the value of the q property. * * @param value * allowed object is @@ -112,7 +112,7 @@ public class DSAKeyValueType { } /** - * Ruft den Wert der j-Eigenschaft ab. + * Gets the value of the j property. * * @return * possible object is @@ -124,7 +124,7 @@ public class DSAKeyValueType { } /** - * Legt den Wert der j-Eigenschaft fest. + * Sets the value of the j property. * * @param value * allowed object is @@ -136,7 +136,7 @@ public class DSAKeyValueType { } /** - * Ruft den Wert der g-Eigenschaft ab. + * Gets the value of the g property. * * @return * possible object is @@ -148,7 +148,7 @@ public class DSAKeyValueType { } /** - * Legt den Wert der g-Eigenschaft fest. + * Sets the value of the g property. * * @param value * allowed object is @@ -160,7 +160,7 @@ public class DSAKeyValueType { } /** - * Ruft den Wert der y-Eigenschaft ab. + * Gets the value of the y property. * * @return * possible object is @@ -172,7 +172,7 @@ public class DSAKeyValueType { } /** - * Legt den Wert der y-Eigenschaft fest. + * Sets the value of the y property. * * @param value * allowed object is @@ -184,7 +184,7 @@ public class DSAKeyValueType { } /** - * Ruft den Wert der seed-Eigenschaft ab. + * Gets the value of the seed property. * * @return * possible object is @@ -196,7 +196,7 @@ public class DSAKeyValueType { } /** - * Legt den Wert der seed-Eigenschaft fest. + * Sets the value of the seed property. * * @param value * allowed object is @@ -208,7 +208,7 @@ public class DSAKeyValueType { } /** - * Ruft den Wert der pgenCounter-Eigenschaft ab. + * Gets the value of the pgenCounter property. * * @return * possible object is @@ -220,7 +220,7 @@ public class DSAKeyValueType { } /** - * Legt den Wert der pgenCounter-Eigenschaft fest. + * Sets the value of the pgenCounter property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/DigestMethodType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/DigestMethodType.java index 6d06d201..1f0297fb 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/DigestMethodType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/DigestMethodType.java @@ -3,33 +3,33 @@ package org.w3._2000._09.xmldsig_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlMixed; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlMixed; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; /** - * <p>Java-Klasse für DigestMethodType complex type. + * <p>Java class for DigestMethodType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="DigestMethodType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/> - * </sequence> - * <attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="DigestMethodType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/> + * </sequence> + * <attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -49,16 +49,16 @@ public class DigestMethodType { /** * Gets the value of the content property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the content property. + * This is why there is not a <CODE>set</CODE> method for the content property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getContent().add(newItem); + * getContent().add(newItem); * </pre> * * @@ -67,18 +67,21 @@ public class DigestMethodType { * {@link Object } * {@link String } * {@link Element } + * </p> * * + * @return + * The value of the content property. */ public List<Object> getContent() { if (content == null) { - content = new ArrayList<Object>(); + content = new ArrayList<>(); } return this.content; } /** - * Ruft den Wert der algorithm-Eigenschaft ab. + * Gets the value of the algorithm property. * * @return * possible object is @@ -90,7 +93,7 @@ public class DigestMethodType { } /** - * Legt den Wert der algorithm-Eigenschaft fest. + * Sets the value of the algorithm property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/KeyInfoType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/KeyInfoType.java index b89025eb..f99460c0 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/KeyInfoType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/KeyInfoType.java @@ -3,46 +3,46 @@ package org.w3._2000._09.xmldsig_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElementRef; -import javax.xml.bind.annotation.XmlElementRefs; -import javax.xml.bind.annotation.XmlID; -import javax.xml.bind.annotation.XmlMixed; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElementRef; +import jakarta.xml.bind.annotation.XmlElementRefs; +import jakarta.xml.bind.annotation.XmlID; +import jakarta.xml.bind.annotation.XmlMixed; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.w3c.dom.Element; /** - * <p>Java-Klasse für KeyInfoType complex type. + * <p>Java class for KeyInfoType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="KeyInfoType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <choice maxOccurs="unbounded"> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}KeyName"/> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}KeyValue"/> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}RetrievalMethod"/> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}X509Data"/> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}PGPData"/> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}SPKIData"/> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}MgmtData"/> - * <any processContents='lax' namespace='##other'/> - * </choice> - * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" /> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="KeyInfoType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <choice maxOccurs="unbounded"> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}KeyName"/> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}KeyValue"/> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}RetrievalMethod"/> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}X509Data"/> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}PGPData"/> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}SPKIData"/> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}MgmtData"/> + * <any processContents='lax' namespace='##other'/> + * </choice> + * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -73,23 +73,21 @@ public class KeyInfoType { /** * Gets the value of the content property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the content property. + * This is why there is not a <CODE>set</CODE> method for the content property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getContent().add(newItem); + * getContent().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list - * {@link Object } - * {@link String } * {@link JAXBElement }{@code <}{@link String }{@code >} * {@link JAXBElement }{@code <}{@link String }{@code >} * {@link JAXBElement }{@code <}{@link KeyValueType }{@code >} @@ -97,19 +95,24 @@ public class KeyInfoType { * {@link JAXBElement }{@code <}{@link RetrievalMethodType }{@code >} * {@link JAXBElement }{@code <}{@link SPKIDataType }{@code >} * {@link JAXBElement }{@code <}{@link X509DataType }{@code >} + * {@link Object } + * {@link String } * {@link Element } + * </p> * * + * @return + * The value of the content property. */ public List<Object> getContent() { if (content == null) { - content = new ArrayList<Object>(); + content = new ArrayList<>(); } return this.content; } /** - * Ruft den Wert der id-Eigenschaft ab. + * Gets the value of the id property. * * @return * possible object is @@ -121,7 +124,7 @@ public class KeyInfoType { } /** - * Legt den Wert der id-Eigenschaft fest. + * Sets the value of the id property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/KeyValueType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/KeyValueType.java index b7c4b943..205093e6 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/KeyValueType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/KeyValueType.java @@ -3,35 +3,35 @@ package org.w3._2000._09.xmldsig_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElementRef; -import javax.xml.bind.annotation.XmlElementRefs; -import javax.xml.bind.annotation.XmlMixed; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlElementRef; +import jakarta.xml.bind.annotation.XmlElementRefs; +import jakarta.xml.bind.annotation.XmlMixed; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; /** - * <p>Java-Klasse für KeyValueType complex type. + * <p>Java class for KeyValueType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="KeyValueType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <choice> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}DSAKeyValue"/> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}RSAKeyValue"/> - * <any processContents='lax' namespace='##other'/> - * </choice> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="KeyValueType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <choice> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}DSAKeyValue"/> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}RSAKeyValue"/> + * <any processContents='lax' namespace='##other'/> + * </choice> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -52,32 +52,35 @@ public class KeyValueType { /** * Gets the value of the content property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the content property. + * This is why there is not a <CODE>set</CODE> method for the content property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getContent().add(newItem); + * getContent().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list - * {@link Object } - * {@link String } * {@link JAXBElement }{@code <}{@link DSAKeyValueType }{@code >} * {@link JAXBElement }{@code <}{@link RSAKeyValueType }{@code >} + * {@link Object } + * {@link String } * {@link Element } + * </p> * * + * @return + * The value of the content property. */ public List<Object> getContent() { if (content == null) { - content = new ArrayList<Object>(); + content = new ArrayList<>(); } return this.content; } diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/ManifestType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/ManifestType.java index 6e9c4303..ada8be59 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/ManifestType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/ManifestType.java @@ -3,34 +3,34 @@ package org.w3._2000._09.xmldsig_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlID; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlID; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** - * <p>Java-Klasse für ManifestType complex type. + * <p>Java class for ManifestType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="ManifestType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}Reference" maxOccurs="unbounded"/> - * </sequence> - * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" /> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="ManifestType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}Reference" maxOccurs="unbounded"/> + * </sequence> + * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -51,34 +51,37 @@ public class ManifestType { /** * Gets the value of the reference property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the reference property. + * This is why there is not a <CODE>set</CODE> method for the reference property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getReference().add(newItem); + * getReference().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link ReferenceType } + * </p> * * + * @return + * The value of the reference property. */ public List<ReferenceType> getReference() { if (reference == null) { - reference = new ArrayList<ReferenceType>(); + reference = new ArrayList<>(); } return this.reference; } /** - * Ruft den Wert der id-Eigenschaft ab. + * Gets the value of the id property. * * @return * possible object is @@ -90,7 +93,7 @@ public class ManifestType { } /** - * Legt den Wert der id-Eigenschaft fest. + * Sets the value of the id property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/ObjectFactory.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/ObjectFactory.java index f30be5f9..d3aa8b06 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/ObjectFactory.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/ObjectFactory.java @@ -2,17 +2,17 @@ package org.w3._2000._09.xmldsig_; import java.math.BigInteger; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlElementDecl; -import javax.xml.bind.annotation.XmlRegistry; import javax.xml.namespace.QName; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlElementDecl; +import jakarta.xml.bind.annotation.XmlRegistry; /** * This object contains factory methods for each * Java content interface and Java element interface * generated in the org.w3._2000._09.xmldsig_ package. - * <p>An ObjectFactory allows you to programatically + * <p>An ObjectFactory allows you to programmatically * construct new instances of the Java representation * for XML content. The Java representation of XML * content can consist of schema derived interfaces @@ -25,40 +25,40 @@ import javax.xml.namespace.QName; @XmlRegistry public class ObjectFactory { - private final static QName _Signature_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "Signature"); - private final static QName _SignatureValue_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "SignatureValue"); - private final static QName _SignedInfo_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "SignedInfo"); - private final static QName _CanonicalizationMethod_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "CanonicalizationMethod"); - private final static QName _SignatureMethod_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "SignatureMethod"); - private final static QName _Reference_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "Reference"); - private final static QName _Transforms_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "Transforms"); - private final static QName _Transform_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "Transform"); - private final static QName _DigestMethod_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "DigestMethod"); - private final static QName _DigestValue_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "DigestValue"); - private final static QName _KeyInfo_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "KeyInfo"); - private final static QName _KeyName_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "KeyName"); - private final static QName _MgmtData_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "MgmtData"); - private final static QName _KeyValue_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "KeyValue"); - private final static QName _RetrievalMethod_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "RetrievalMethod"); - private final static QName _X509Data_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "X509Data"); - private final static QName _PGPData_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "PGPData"); - private final static QName _SPKIData_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "SPKIData"); - private final static QName _Object_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "Object"); - private final static QName _Manifest_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "Manifest"); - private final static QName _SignatureProperties_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "SignatureProperties"); - private final static QName _SignatureProperty_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "SignatureProperty"); - private final static QName _DSAKeyValue_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "DSAKeyValue"); - private final static QName _RSAKeyValue_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "RSAKeyValue"); - private final static QName _SPKIDataTypeSPKISexp_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "SPKISexp"); - private final static QName _PGPDataTypePGPKeyID_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "PGPKeyID"); - private final static QName _PGPDataTypePGPKeyPacket_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "PGPKeyPacket"); - private final static QName _X509DataTypeX509IssuerSerial_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "X509IssuerSerial"); - private final static QName _X509DataTypeX509SKI_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "X509SKI"); - private final static QName _X509DataTypeX509SubjectName_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "X509SubjectName"); - private final static QName _X509DataTypeX509Certificate_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "X509Certificate"); - private final static QName _X509DataTypeX509CRL_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "X509CRL"); - private final static QName _TransformTypeXPath_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "XPath"); - private final static QName _SignatureMethodTypeHMACOutputLength_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "HMACOutputLength"); + private static final QName _Signature_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "Signature"); + private static final QName _SignatureValue_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "SignatureValue"); + private static final QName _SignedInfo_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "SignedInfo"); + private static final QName _CanonicalizationMethod_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "CanonicalizationMethod"); + private static final QName _SignatureMethod_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "SignatureMethod"); + private static final QName _Reference_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "Reference"); + private static final QName _Transforms_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "Transforms"); + private static final QName _Transform_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "Transform"); + private static final QName _DigestMethod_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "DigestMethod"); + private static final QName _DigestValue_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "DigestValue"); + private static final QName _KeyInfo_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "KeyInfo"); + private static final QName _KeyName_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "KeyName"); + private static final QName _MgmtData_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "MgmtData"); + private static final QName _KeyValue_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "KeyValue"); + private static final QName _RetrievalMethod_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "RetrievalMethod"); + private static final QName _X509Data_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "X509Data"); + private static final QName _PGPData_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "PGPData"); + private static final QName _SPKIData_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "SPKIData"); + private static final QName _Object_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "Object"); + private static final QName _Manifest_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "Manifest"); + private static final QName _SignatureProperties_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "SignatureProperties"); + private static final QName _SignatureProperty_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "SignatureProperty"); + private static final QName _DSAKeyValue_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "DSAKeyValue"); + private static final QName _RSAKeyValue_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "RSAKeyValue"); + private static final QName _SPKIDataTypeSPKISexp_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "SPKISexp"); + private static final QName _PGPDataTypePGPKeyID_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "PGPKeyID"); + private static final QName _PGPDataTypePGPKeyPacket_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "PGPKeyPacket"); + private static final QName _X509DataTypeX509IssuerSerial_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "X509IssuerSerial"); + private static final QName _X509DataTypeX509SKI_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "X509SKI"); + private static final QName _X509DataTypeX509SubjectName_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "X509SubjectName"); + private static final QName _X509DataTypeX509Certificate_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "X509Certificate"); + private static final QName _X509DataTypeX509CRL_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "X509CRL"); + private static final QName _TransformTypeXPath_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "XPath"); + private static final QName _SignatureMethodTypeHMACOutputLength_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "HMACOutputLength"); /** * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.w3._2000._09.xmldsig_ @@ -70,6 +70,8 @@ public class ObjectFactory { /** * Create an instance of {@link SignatureType } * + * @return + * the new instance of {@link SignatureType } */ public SignatureType createSignatureType() { return new SignatureType(); @@ -78,6 +80,8 @@ public class ObjectFactory { /** * Create an instance of {@link SignatureValueType } * + * @return + * the new instance of {@link SignatureValueType } */ public SignatureValueType createSignatureValueType() { return new SignatureValueType(); @@ -86,6 +90,8 @@ public class ObjectFactory { /** * Create an instance of {@link SignedInfoType } * + * @return + * the new instance of {@link SignedInfoType } */ public SignedInfoType createSignedInfoType() { return new SignedInfoType(); @@ -94,6 +100,8 @@ public class ObjectFactory { /** * Create an instance of {@link CanonicalizationMethodType } * + * @return + * the new instance of {@link CanonicalizationMethodType } */ public CanonicalizationMethodType createCanonicalizationMethodType() { return new CanonicalizationMethodType(); @@ -102,6 +110,8 @@ public class ObjectFactory { /** * Create an instance of {@link SignatureMethodType } * + * @return + * the new instance of {@link SignatureMethodType } */ public SignatureMethodType createSignatureMethodType() { return new SignatureMethodType(); @@ -110,6 +120,8 @@ public class ObjectFactory { /** * Create an instance of {@link ReferenceType } * + * @return + * the new instance of {@link ReferenceType } */ public ReferenceType createReferenceType() { return new ReferenceType(); @@ -118,6 +130,8 @@ public class ObjectFactory { /** * Create an instance of {@link TransformsType } * + * @return + * the new instance of {@link TransformsType } */ public TransformsType createTransformsType() { return new TransformsType(); @@ -126,6 +140,8 @@ public class ObjectFactory { /** * Create an instance of {@link TransformType } * + * @return + * the new instance of {@link TransformType } */ public TransformType createTransformType() { return new TransformType(); @@ -134,6 +150,8 @@ public class ObjectFactory { /** * Create an instance of {@link DigestMethodType } * + * @return + * the new instance of {@link DigestMethodType } */ public DigestMethodType createDigestMethodType() { return new DigestMethodType(); @@ -142,6 +160,8 @@ public class ObjectFactory { /** * Create an instance of {@link KeyInfoType } * + * @return + * the new instance of {@link KeyInfoType } */ public KeyInfoType createKeyInfoType() { return new KeyInfoType(); @@ -150,6 +170,8 @@ public class ObjectFactory { /** * Create an instance of {@link KeyValueType } * + * @return + * the new instance of {@link KeyValueType } */ public KeyValueType createKeyValueType() { return new KeyValueType(); @@ -158,6 +180,8 @@ public class ObjectFactory { /** * Create an instance of {@link RetrievalMethodType } * + * @return + * the new instance of {@link RetrievalMethodType } */ public RetrievalMethodType createRetrievalMethodType() { return new RetrievalMethodType(); @@ -166,6 +190,8 @@ public class ObjectFactory { /** * Create an instance of {@link X509DataType } * + * @return + * the new instance of {@link X509DataType } */ public X509DataType createX509DataType() { return new X509DataType(); @@ -174,6 +200,8 @@ public class ObjectFactory { /** * Create an instance of {@link PGPDataType } * + * @return + * the new instance of {@link PGPDataType } */ public PGPDataType createPGPDataType() { return new PGPDataType(); @@ -182,6 +210,8 @@ public class ObjectFactory { /** * Create an instance of {@link SPKIDataType } * + * @return + * the new instance of {@link SPKIDataType } */ public SPKIDataType createSPKIDataType() { return new SPKIDataType(); @@ -190,6 +220,8 @@ public class ObjectFactory { /** * Create an instance of {@link ObjectType } * + * @return + * the new instance of {@link ObjectType } */ public ObjectType createObjectType() { return new ObjectType(); @@ -198,6 +230,8 @@ public class ObjectFactory { /** * Create an instance of {@link ManifestType } * + * @return + * the new instance of {@link ManifestType } */ public ManifestType createManifestType() { return new ManifestType(); @@ -206,6 +240,8 @@ public class ObjectFactory { /** * Create an instance of {@link SignaturePropertiesType } * + * @return + * the new instance of {@link SignaturePropertiesType } */ public SignaturePropertiesType createSignaturePropertiesType() { return new SignaturePropertiesType(); @@ -214,6 +250,8 @@ public class ObjectFactory { /** * Create an instance of {@link SignaturePropertyType } * + * @return + * the new instance of {@link SignaturePropertyType } */ public SignaturePropertyType createSignaturePropertyType() { return new SignaturePropertyType(); @@ -222,6 +260,8 @@ public class ObjectFactory { /** * Create an instance of {@link DSAKeyValueType } * + * @return + * the new instance of {@link DSAKeyValueType } */ public DSAKeyValueType createDSAKeyValueType() { return new DSAKeyValueType(); @@ -230,6 +270,8 @@ public class ObjectFactory { /** * Create an instance of {@link RSAKeyValueType } * + * @return + * the new instance of {@link RSAKeyValueType } */ public RSAKeyValueType createRSAKeyValueType() { return new RSAKeyValueType(); @@ -238,6 +280,8 @@ public class ObjectFactory { /** * Create an instance of {@link X509IssuerSerialType } * + * @return + * the new instance of {@link X509IssuerSerialType } */ public X509IssuerSerialType createX509IssuerSerialType() { return new X509IssuerSerialType(); @@ -253,7 +297,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "Signature") public JAXBElement<SignatureType> createSignature(SignatureType value) { - return new JAXBElement<SignatureType>(_Signature_QNAME, SignatureType.class, null, value); + return new JAXBElement<>(_Signature_QNAME, SignatureType.class, null, value); } /** @@ -266,7 +310,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "SignatureValue") public JAXBElement<SignatureValueType> createSignatureValue(SignatureValueType value) { - return new JAXBElement<SignatureValueType>(_SignatureValue_QNAME, SignatureValueType.class, null, value); + return new JAXBElement<>(_SignatureValue_QNAME, SignatureValueType.class, null, value); } /** @@ -279,7 +323,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "SignedInfo") public JAXBElement<SignedInfoType> createSignedInfo(SignedInfoType value) { - return new JAXBElement<SignedInfoType>(_SignedInfo_QNAME, SignedInfoType.class, null, value); + return new JAXBElement<>(_SignedInfo_QNAME, SignedInfoType.class, null, value); } /** @@ -292,7 +336,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "CanonicalizationMethod") public JAXBElement<CanonicalizationMethodType> createCanonicalizationMethod(CanonicalizationMethodType value) { - return new JAXBElement<CanonicalizationMethodType>(_CanonicalizationMethod_QNAME, CanonicalizationMethodType.class, null, value); + return new JAXBElement<>(_CanonicalizationMethod_QNAME, CanonicalizationMethodType.class, null, value); } /** @@ -305,7 +349,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "SignatureMethod") public JAXBElement<SignatureMethodType> createSignatureMethod(SignatureMethodType value) { - return new JAXBElement<SignatureMethodType>(_SignatureMethod_QNAME, SignatureMethodType.class, null, value); + return new JAXBElement<>(_SignatureMethod_QNAME, SignatureMethodType.class, null, value); } /** @@ -318,7 +362,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "Reference") public JAXBElement<ReferenceType> createReference(ReferenceType value) { - return new JAXBElement<ReferenceType>(_Reference_QNAME, ReferenceType.class, null, value); + return new JAXBElement<>(_Reference_QNAME, ReferenceType.class, null, value); } /** @@ -331,7 +375,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "Transforms") public JAXBElement<TransformsType> createTransforms(TransformsType value) { - return new JAXBElement<TransformsType>(_Transforms_QNAME, TransformsType.class, null, value); + return new JAXBElement<>(_Transforms_QNAME, TransformsType.class, null, value); } /** @@ -344,7 +388,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "Transform") public JAXBElement<TransformType> createTransform(TransformType value) { - return new JAXBElement<TransformType>(_Transform_QNAME, TransformType.class, null, value); + return new JAXBElement<>(_Transform_QNAME, TransformType.class, null, value); } /** @@ -357,7 +401,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "DigestMethod") public JAXBElement<DigestMethodType> createDigestMethod(DigestMethodType value) { - return new JAXBElement<DigestMethodType>(_DigestMethod_QNAME, DigestMethodType.class, null, value); + return new JAXBElement<>(_DigestMethod_QNAME, DigestMethodType.class, null, value); } /** @@ -370,7 +414,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "DigestValue") public JAXBElement<String> createDigestValue(String value) { - return new JAXBElement<String>(_DigestValue_QNAME, String.class, null, value); + return new JAXBElement<>(_DigestValue_QNAME, String.class, null, value); } /** @@ -383,7 +427,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "KeyInfo") public JAXBElement<KeyInfoType> createKeyInfo(KeyInfoType value) { - return new JAXBElement<KeyInfoType>(_KeyInfo_QNAME, KeyInfoType.class, null, value); + return new JAXBElement<>(_KeyInfo_QNAME, KeyInfoType.class, null, value); } /** @@ -396,7 +440,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "KeyName") public JAXBElement<String> createKeyName(String value) { - return new JAXBElement<String>(_KeyName_QNAME, String.class, null, value); + return new JAXBElement<>(_KeyName_QNAME, String.class, null, value); } /** @@ -409,7 +453,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "MgmtData") public JAXBElement<String> createMgmtData(String value) { - return new JAXBElement<String>(_MgmtData_QNAME, String.class, null, value); + return new JAXBElement<>(_MgmtData_QNAME, String.class, null, value); } /** @@ -422,7 +466,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "KeyValue") public JAXBElement<KeyValueType> createKeyValue(KeyValueType value) { - return new JAXBElement<KeyValueType>(_KeyValue_QNAME, KeyValueType.class, null, value); + return new JAXBElement<>(_KeyValue_QNAME, KeyValueType.class, null, value); } /** @@ -435,7 +479,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "RetrievalMethod") public JAXBElement<RetrievalMethodType> createRetrievalMethod(RetrievalMethodType value) { - return new JAXBElement<RetrievalMethodType>(_RetrievalMethod_QNAME, RetrievalMethodType.class, null, value); + return new JAXBElement<>(_RetrievalMethod_QNAME, RetrievalMethodType.class, null, value); } /** @@ -448,7 +492,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "X509Data") public JAXBElement<X509DataType> createX509Data(X509DataType value) { - return new JAXBElement<X509DataType>(_X509Data_QNAME, X509DataType.class, null, value); + return new JAXBElement<>(_X509Data_QNAME, X509DataType.class, null, value); } /** @@ -461,7 +505,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "PGPData") public JAXBElement<PGPDataType> createPGPData(PGPDataType value) { - return new JAXBElement<PGPDataType>(_PGPData_QNAME, PGPDataType.class, null, value); + return new JAXBElement<>(_PGPData_QNAME, PGPDataType.class, null, value); } /** @@ -474,7 +518,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "SPKIData") public JAXBElement<SPKIDataType> createSPKIData(SPKIDataType value) { - return new JAXBElement<SPKIDataType>(_SPKIData_QNAME, SPKIDataType.class, null, value); + return new JAXBElement<>(_SPKIData_QNAME, SPKIDataType.class, null, value); } /** @@ -487,7 +531,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "Object") public JAXBElement<ObjectType> createObject(ObjectType value) { - return new JAXBElement<ObjectType>(_Object_QNAME, ObjectType.class, null, value); + return new JAXBElement<>(_Object_QNAME, ObjectType.class, null, value); } /** @@ -500,7 +544,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "Manifest") public JAXBElement<ManifestType> createManifest(ManifestType value) { - return new JAXBElement<ManifestType>(_Manifest_QNAME, ManifestType.class, null, value); + return new JAXBElement<>(_Manifest_QNAME, ManifestType.class, null, value); } /** @@ -513,7 +557,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "SignatureProperties") public JAXBElement<SignaturePropertiesType> createSignatureProperties(SignaturePropertiesType value) { - return new JAXBElement<SignaturePropertiesType>(_SignatureProperties_QNAME, SignaturePropertiesType.class, null, value); + return new JAXBElement<>(_SignatureProperties_QNAME, SignaturePropertiesType.class, null, value); } /** @@ -526,7 +570,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "SignatureProperty") public JAXBElement<SignaturePropertyType> createSignatureProperty(SignaturePropertyType value) { - return new JAXBElement<SignaturePropertyType>(_SignatureProperty_QNAME, SignaturePropertyType.class, null, value); + return new JAXBElement<>(_SignatureProperty_QNAME, SignaturePropertyType.class, null, value); } /** @@ -539,7 +583,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "DSAKeyValue") public JAXBElement<DSAKeyValueType> createDSAKeyValue(DSAKeyValueType value) { - return new JAXBElement<DSAKeyValueType>(_DSAKeyValue_QNAME, DSAKeyValueType.class, null, value); + return new JAXBElement<>(_DSAKeyValue_QNAME, DSAKeyValueType.class, null, value); } /** @@ -552,7 +596,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "RSAKeyValue") public JAXBElement<RSAKeyValueType> createRSAKeyValue(RSAKeyValueType value) { - return new JAXBElement<RSAKeyValueType>(_RSAKeyValue_QNAME, RSAKeyValueType.class, null, value); + return new JAXBElement<>(_RSAKeyValue_QNAME, RSAKeyValueType.class, null, value); } /** @@ -565,7 +609,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "SPKISexp", scope = SPKIDataType.class) public JAXBElement<String> createSPKIDataTypeSPKISexp(String value) { - return new JAXBElement<String>(_SPKIDataTypeSPKISexp_QNAME, String.class, SPKIDataType.class, value); + return new JAXBElement<>(_SPKIDataTypeSPKISexp_QNAME, String.class, SPKIDataType.class, value); } /** @@ -578,7 +622,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "PGPKeyID", scope = PGPDataType.class) public JAXBElement<String> createPGPDataTypePGPKeyID(String value) { - return new JAXBElement<String>(_PGPDataTypePGPKeyID_QNAME, String.class, PGPDataType.class, value); + return new JAXBElement<>(_PGPDataTypePGPKeyID_QNAME, String.class, PGPDataType.class, value); } /** @@ -591,7 +635,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "PGPKeyPacket", scope = PGPDataType.class) public JAXBElement<String> createPGPDataTypePGPKeyPacket(String value) { - return new JAXBElement<String>(_PGPDataTypePGPKeyPacket_QNAME, String.class, PGPDataType.class, value); + return new JAXBElement<>(_PGPDataTypePGPKeyPacket_QNAME, String.class, PGPDataType.class, value); } /** @@ -604,7 +648,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "X509IssuerSerial", scope = X509DataType.class) public JAXBElement<X509IssuerSerialType> createX509DataTypeX509IssuerSerial(X509IssuerSerialType value) { - return new JAXBElement<X509IssuerSerialType>(_X509DataTypeX509IssuerSerial_QNAME, X509IssuerSerialType.class, X509DataType.class, value); + return new JAXBElement<>(_X509DataTypeX509IssuerSerial_QNAME, X509IssuerSerialType.class, X509DataType.class, value); } /** @@ -617,7 +661,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "X509SKI", scope = X509DataType.class) public JAXBElement<String> createX509DataTypeX509SKI(String value) { - return new JAXBElement<String>(_X509DataTypeX509SKI_QNAME, String.class, X509DataType.class, value); + return new JAXBElement<>(_X509DataTypeX509SKI_QNAME, String.class, X509DataType.class, value); } /** @@ -630,7 +674,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "X509SubjectName", scope = X509DataType.class) public JAXBElement<String> createX509DataTypeX509SubjectName(String value) { - return new JAXBElement<String>(_X509DataTypeX509SubjectName_QNAME, String.class, X509DataType.class, value); + return new JAXBElement<>(_X509DataTypeX509SubjectName_QNAME, String.class, X509DataType.class, value); } /** @@ -643,7 +687,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "X509Certificate", scope = X509DataType.class) public JAXBElement<String> createX509DataTypeX509Certificate(String value) { - return new JAXBElement<String>(_X509DataTypeX509Certificate_QNAME, String.class, X509DataType.class, value); + return new JAXBElement<>(_X509DataTypeX509Certificate_QNAME, String.class, X509DataType.class, value); } /** @@ -656,7 +700,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "X509CRL", scope = X509DataType.class) public JAXBElement<String> createX509DataTypeX509CRL(String value) { - return new JAXBElement<String>(_X509DataTypeX509CRL_QNAME, String.class, X509DataType.class, value); + return new JAXBElement<>(_X509DataTypeX509CRL_QNAME, String.class, X509DataType.class, value); } /** @@ -669,7 +713,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "XPath", scope = TransformType.class) public JAXBElement<String> createTransformTypeXPath(String value) { - return new JAXBElement<String>(_TransformTypeXPath_QNAME, String.class, TransformType.class, value); + return new JAXBElement<>(_TransformTypeXPath_QNAME, String.class, TransformType.class, value); } /** @@ -682,7 +726,7 @@ public class ObjectFactory { */ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "HMACOutputLength", scope = SignatureMethodType.class) public JAXBElement<BigInteger> createSignatureMethodTypeHMACOutputLength(BigInteger value) { - return new JAXBElement<BigInteger>(_SignatureMethodTypeHMACOutputLength_QNAME, BigInteger.class, SignatureMethodType.class, value); + return new JAXBElement<>(_SignatureMethodTypeHMACOutputLength_QNAME, BigInteger.class, SignatureMethodType.class, value); } } diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/ObjectType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/ObjectType.java index eee62207..c0741683 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/ObjectType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/ObjectType.java @@ -3,38 +3,38 @@ package org.w3._2000._09.xmldsig_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlID; -import javax.xml.bind.annotation.XmlMixed; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlID; +import jakarta.xml.bind.annotation.XmlMixed; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.w3c.dom.Element; /** - * <p>Java-Klasse für ObjectType complex type. + * <p>Java class for ObjectType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="ObjectType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence maxOccurs="unbounded" minOccurs="0"> - * <any processContents='lax'/> - * </sequence> - * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" /> - * <attribute name="MimeType" type="{http://www.w3.org/2001/XMLSchema}string" /> - * <attribute name="Encoding" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="ObjectType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence maxOccurs="unbounded" minOccurs="0"> + * <any processContents='lax'/> + * </sequence> + * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * <attribute name="MimeType" type="{http://www.w3.org/2001/XMLSchema}string" /> + * <attribute name="Encoding" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -61,16 +61,16 @@ public class ObjectType { /** * Gets the value of the content property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the content property. + * This is why there is not a <CODE>set</CODE> method for the content property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getContent().add(newItem); + * getContent().add(newItem); * </pre> * * @@ -79,18 +79,21 @@ public class ObjectType { * {@link Object } * {@link String } * {@link Element } + * </p> * * + * @return + * The value of the content property. */ public List<Object> getContent() { if (content == null) { - content = new ArrayList<Object>(); + content = new ArrayList<>(); } return this.content; } /** - * Ruft den Wert der id-Eigenschaft ab. + * Gets the value of the id property. * * @return * possible object is @@ -102,7 +105,7 @@ public class ObjectType { } /** - * Legt den Wert der id-Eigenschaft fest. + * Sets the value of the id property. * * @param value * allowed object is @@ -114,7 +117,7 @@ public class ObjectType { } /** - * Ruft den Wert der mimeType-Eigenschaft ab. + * Gets the value of the mimeType property. * * @return * possible object is @@ -126,7 +129,7 @@ public class ObjectType { } /** - * Legt den Wert der mimeType-Eigenschaft fest. + * Sets the value of the mimeType property. * * @param value * allowed object is @@ -138,7 +141,7 @@ public class ObjectType { } /** - * Ruft den Wert der encoding-Eigenschaft ab. + * Gets the value of the encoding property. * * @return * possible object is @@ -150,7 +153,7 @@ public class ObjectType { } /** - * Legt den Wert der encoding-Eigenschaft fest. + * Sets the value of the encoding property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/PGPDataType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/PGPDataType.java index 10718f18..12c4d7db 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/PGPDataType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/PGPDataType.java @@ -3,40 +3,40 @@ package org.w3._2000._09.xmldsig_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElementRef; -import javax.xml.bind.annotation.XmlElementRefs; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlElementRef; +import jakarta.xml.bind.annotation.XmlElementRefs; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; /** - * <p>Java-Klasse für PGPDataType complex type. + * <p>Java class for PGPDataType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="PGPDataType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <choice> - * <sequence> - * <element name="PGPKeyID" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> - * <element name="PGPKeyPacket" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary" minOccurs="0"/> - * <any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/> - * </sequence> - * <sequence> - * <element name="PGPKeyPacket" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> - * <any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/> - * </sequence> - * </choice> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="PGPDataType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <choice> + * <sequence> + * <element name="PGPKeyID" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> + * <element name="PGPKeyPacket" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary" minOccurs="0"/> + * <any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/> + * </sequence> + * <sequence> + * <element name="PGPKeyPacket" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> + * <any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/> + * </sequence> + * </choice> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -46,6 +46,19 @@ import org.w3c.dom.Element; }) public class PGPDataType { + /** + * Gets the rest of the content model. + * + * <p> + * You are getting this "catch-all" property because of the following reason: + * The field name "PGPKeyPacket" is used by two different parts of a schema. See: + * line 184 of file:/home/gpalfinger/Documents/pdf-as-4-kiro/pdf-as-moa/src/main/resources/wsdl/W3C-XMLDSig.xsd + * line 180 of file:/home/gpalfinger/Documents/pdf-as-4-kiro/pdf-as-moa/src/main/resources/wsdl/W3C-XMLDSig.xsd + * <p> + * To get rid of this property, apply a property customization to one + * of both of the following declarations to change their names: + * + */ @XmlElementRefs({ @XmlElementRef(name = "PGPKeyID", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false), @XmlElementRef(name = "PGPKeyPacket", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false) @@ -54,43 +67,47 @@ public class PGPDataType { protected List<Object> content; /** - * Ruft das restliche Contentmodell ab. + * Gets the rest of the content model. * * <p> - * Sie rufen diese "catch-all"-Eigenschaft aus folgendem Grund ab: - * Der Feldname "PGPKeyPacket" wird von zwei verschiedenen Teilen eines Schemas verwendet. Siehe: - * Zeile 184 von file:/home/tlenz/Projekte/pdfas4/source/pdf-as-moa/src/main/resources/wsdl/W3C-XMLDSig.xsd - * Zeile 180 von file:/home/tlenz/Projekte/pdfas4/source/pdf-as-moa/src/main/resources/wsdl/W3C-XMLDSig.xsd + * You are getting this "catch-all" property because of the following reason: + * The field name "PGPKeyPacket" is used by two different parts of a schema. See: + * line 184 of file:/home/gpalfinger/Documents/pdf-as-4-kiro/pdf-as-moa/src/main/resources/wsdl/W3C-XMLDSig.xsd + * line 180 of file:/home/gpalfinger/Documents/pdf-as-4-kiro/pdf-as-moa/src/main/resources/wsdl/W3C-XMLDSig.xsd * <p> - * Um diese Eigenschaft zu entfernen, wenden Sie eine Eigenschaftenanpassung für eine - * der beiden folgenden Deklarationen an, um deren Namen zu ändern: + * To get rid of this property, apply a property customization to one + * of both of the following declarations to change their names: + * * Gets the value of the content property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the content property. + * This is why there is not a <CODE>set</CODE> method for the content property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getContent().add(newItem); + * getContent().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list - * {@link Object } * {@link JAXBElement }{@code <}{@link String }{@code >} * {@link JAXBElement }{@code <}{@link String }{@code >} + * {@link Object } * {@link Element } + * </p> * * + * @return + * The value of the content property. */ public List<Object> getContent() { if (content == null) { - content = new ArrayList<Object>(); + content = new ArrayList<>(); } return this.content; } diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/RSAKeyValueType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/RSAKeyValueType.java index 11468613..6547431e 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/RSAKeyValueType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/RSAKeyValueType.java @@ -1,29 +1,29 @@ package org.w3._2000._09.xmldsig_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für RSAKeyValueType complex type. + * <p>Java class for RSAKeyValueType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="RSAKeyValueType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="Modulus" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> - * <element name="Exponent" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="RSAKeyValueType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Modulus" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> + * <element name="Exponent" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -40,7 +40,7 @@ public class RSAKeyValueType { protected String exponent; /** - * Ruft den Wert der modulus-Eigenschaft ab. + * Gets the value of the modulus property. * * @return * possible object is @@ -52,7 +52,7 @@ public class RSAKeyValueType { } /** - * Legt den Wert der modulus-Eigenschaft fest. + * Sets the value of the modulus property. * * @param value * allowed object is @@ -64,7 +64,7 @@ public class RSAKeyValueType { } /** - * Ruft den Wert der exponent-Eigenschaft ab. + * Gets the value of the exponent property. * * @return * possible object is @@ -76,7 +76,7 @@ public class RSAKeyValueType { } /** - * Legt den Wert der exponent-Eigenschaft fest. + * Sets the value of the exponent property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/ReferenceType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/ReferenceType.java index bba2a97a..f66a94dc 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/ReferenceType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/ReferenceType.java @@ -1,38 +1,38 @@ package org.w3._2000._09.xmldsig_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlID; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlID; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** - * <p>Java-Klasse für ReferenceType complex type. + * <p>Java class for ReferenceType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="ReferenceType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}Transforms" minOccurs="0"/> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}DigestMethod"/> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}DigestValue"/> - * </sequence> - * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" /> - * <attribute name="URI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> - * <attribute name="Type" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="ReferenceType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}Transforms" minOccurs="0"/> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}DigestMethod"/> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}DigestValue"/> + * </sequence> + * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * <attribute name="URI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="Type" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -63,7 +63,7 @@ public class ReferenceType { protected String type; /** - * Ruft den Wert der transforms-Eigenschaft ab. + * Gets the value of the transforms property. * * @return * possible object is @@ -75,7 +75,7 @@ public class ReferenceType { } /** - * Legt den Wert der transforms-Eigenschaft fest. + * Sets the value of the transforms property. * * @param value * allowed object is @@ -87,7 +87,7 @@ public class ReferenceType { } /** - * Ruft den Wert der digestMethod-Eigenschaft ab. + * Gets the value of the digestMethod property. * * @return * possible object is @@ -99,7 +99,7 @@ public class ReferenceType { } /** - * Legt den Wert der digestMethod-Eigenschaft fest. + * Sets the value of the digestMethod property. * * @param value * allowed object is @@ -111,7 +111,7 @@ public class ReferenceType { } /** - * Ruft den Wert der digestValue-Eigenschaft ab. + * Gets the value of the digestValue property. * * @return * possible object is @@ -123,7 +123,7 @@ public class ReferenceType { } /** - * Legt den Wert der digestValue-Eigenschaft fest. + * Sets the value of the digestValue property. * * @param value * allowed object is @@ -135,7 +135,7 @@ public class ReferenceType { } /** - * Ruft den Wert der id-Eigenschaft ab. + * Gets the value of the id property. * * @return * possible object is @@ -147,7 +147,7 @@ public class ReferenceType { } /** - * Legt den Wert der id-Eigenschaft fest. + * Sets the value of the id property. * * @param value * allowed object is @@ -159,7 +159,7 @@ public class ReferenceType { } /** - * Ruft den Wert der uri-Eigenschaft ab. + * Gets the value of the uri property. * * @return * possible object is @@ -171,7 +171,7 @@ public class ReferenceType { } /** - * Legt den Wert der uri-Eigenschaft fest. + * Sets the value of the uri property. * * @param value * allowed object is @@ -183,7 +183,7 @@ public class ReferenceType { } /** - * Ruft den Wert der type-Eigenschaft ab. + * Gets the value of the type property. * * @return * possible object is @@ -195,7 +195,7 @@ public class ReferenceType { } /** - * Legt den Wert der type-Eigenschaft fest. + * Sets the value of the type property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/RetrievalMethodType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/RetrievalMethodType.java index 59a3febc..46d11039 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/RetrievalMethodType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/RetrievalMethodType.java @@ -1,32 +1,32 @@ package org.w3._2000._09.xmldsig_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für RetrievalMethodType complex type. + * <p>Java class for RetrievalMethodType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="RetrievalMethodType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="Transforms" type="{http://www.w3.org/2000/09/xmldsig#}TransformsType" minOccurs="0"/> - * </sequence> - * <attribute name="URI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> - * <attribute name="Type" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="RetrievalMethodType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="Transforms" type="{http://www.w3.org/2000/09/xmldsig#}TransformsType" minOccurs="0"/> + * </sequence> + * <attribute name="URI" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="Type" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -46,7 +46,7 @@ public class RetrievalMethodType { protected String type; /** - * Ruft den Wert der transforms-Eigenschaft ab. + * Gets the value of the transforms property. * * @return * possible object is @@ -58,7 +58,7 @@ public class RetrievalMethodType { } /** - * Legt den Wert der transforms-Eigenschaft fest. + * Sets the value of the transforms property. * * @param value * allowed object is @@ -70,7 +70,7 @@ public class RetrievalMethodType { } /** - * Ruft den Wert der uri-Eigenschaft ab. + * Gets the value of the uri property. * * @return * possible object is @@ -82,7 +82,7 @@ public class RetrievalMethodType { } /** - * Legt den Wert der uri-Eigenschaft fest. + * Sets the value of the uri property. * * @param value * allowed object is @@ -94,7 +94,7 @@ public class RetrievalMethodType { } /** - * Ruft den Wert der type-Eigenschaft ab. + * Gets the value of the type property. * * @return * possible object is @@ -106,7 +106,7 @@ public class RetrievalMethodType { } /** - * Legt den Wert der type-Eigenschaft fest. + * Sets the value of the type property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SPKIDataType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SPKIDataType.java index 34264510..77efcc79 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SPKIDataType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SPKIDataType.java @@ -3,32 +3,32 @@ package org.w3._2000._09.xmldsig_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElementRef; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlElementRef; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; /** - * <p>Java-Klasse für SPKIDataType complex type. + * <p>Java class for SPKIDataType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="SPKIDataType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence maxOccurs="unbounded"> - * <element name="SPKISexp" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> - * <any processContents='lax' namespace='##other' minOccurs="0"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="SPKIDataType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence maxOccurs="unbounded"> + * <element name="SPKISexp" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> + * <any processContents='lax' namespace='##other' minOccurs="0"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -45,30 +45,33 @@ public class SPKIDataType { /** * Gets the value of the spkiSexpAndAny property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the spkiSexpAndAny property. + * This is why there is not a <CODE>set</CODE> method for the spkiSexpAndAny property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getSPKISexpAndAny().add(newItem); + * getSPKISexpAndAny().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list - * {@link Object } * {@link JAXBElement }{@code <}{@link String }{@code >} + * {@link Object } * {@link Element } + * </p> * * + * @return + * The value of the spkiSexpAndAny property. */ public List<Object> getSPKISexpAndAny() { if (spkiSexpAndAny == null) { - spkiSexpAndAny = new ArrayList<Object>(); + spkiSexpAndAny = new ArrayList<>(); } return this.spkiSexpAndAny; } diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignatureMethodType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignatureMethodType.java index 268deb8a..079717a9 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignatureMethodType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignatureMethodType.java @@ -4,35 +4,35 @@ package org.w3._2000._09.xmldsig_; import java.math.BigInteger; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElementRef; -import javax.xml.bind.annotation.XmlMixed; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElementRef; +import jakarta.xml.bind.annotation.XmlMixed; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für SignatureMethodType complex type. + * <p>Java class for SignatureMethodType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="SignatureMethodType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="HMACOutputLength" type="{http://www.w3.org/2000/09/xmldsig#}HMACOutputLengthType" minOccurs="0"/> - * <any namespace='##other' maxOccurs="unbounded" minOccurs="0"/> - * </sequence> - * <attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="SignatureMethodType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="HMACOutputLength" type="{http://www.w3.org/2000/09/xmldsig#}HMACOutputLengthType" minOccurs="0"/> + * <any namespace='##other' maxOccurs="unbounded" minOccurs="0"/> + * </sequence> + * <attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -53,36 +53,39 @@ public class SignatureMethodType { /** * Gets the value of the content property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the content property. + * This is why there is not a <CODE>set</CODE> method for the content property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getContent().add(newItem); + * getContent().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list + * {@link JAXBElement }{@code <}{@link BigInteger }{@code >} * {@link Object } * {@link String } - * {@link JAXBElement }{@code <}{@link BigInteger }{@code >} + * </p> * * + * @return + * The value of the content property. */ public List<Object> getContent() { if (content == null) { - content = new ArrayList<Object>(); + content = new ArrayList<>(); } return this.content; } /** - * Ruft den Wert der algorithm-Eigenschaft ab. + * Gets the value of the algorithm property. * * @return * possible object is @@ -94,7 +97,7 @@ public class SignatureMethodType { } /** - * Legt den Wert der algorithm-Eigenschaft fest. + * Sets the value of the algorithm property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignaturePropertiesType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignaturePropertiesType.java index 850af98e..5f920450 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignaturePropertiesType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignaturePropertiesType.java @@ -3,34 +3,34 @@ package org.w3._2000._09.xmldsig_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlID; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlID; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** - * <p>Java-Klasse für SignaturePropertiesType complex type. + * <p>Java class for SignaturePropertiesType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="SignaturePropertiesType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}SignatureProperty" maxOccurs="unbounded"/> - * </sequence> - * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" /> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="SignaturePropertiesType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}SignatureProperty" maxOccurs="unbounded"/> + * </sequence> + * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -51,34 +51,37 @@ public class SignaturePropertiesType { /** * Gets the value of the signatureProperty property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the signatureProperty property. + * This is why there is not a <CODE>set</CODE> method for the signatureProperty property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getSignatureProperty().add(newItem); + * getSignatureProperty().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link SignaturePropertyType } + * </p> * * + * @return + * The value of the signatureProperty property. */ public List<SignaturePropertyType> getSignatureProperty() { if (signatureProperty == null) { - signatureProperty = new ArrayList<SignaturePropertyType>(); + signatureProperty = new ArrayList<>(); } return this.signatureProperty; } /** - * Ruft den Wert der id-Eigenschaft ab. + * Gets the value of the id property. * * @return * possible object is @@ -90,7 +93,7 @@ public class SignaturePropertiesType { } /** - * Legt den Wert der id-Eigenschaft fest. + * Sets the value of the id property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignaturePropertyType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignaturePropertyType.java index f7f0317b..4a89ae76 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignaturePropertyType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignaturePropertyType.java @@ -3,37 +3,37 @@ package org.w3._2000._09.xmldsig_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlID; -import javax.xml.bind.annotation.XmlMixed; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlID; +import jakarta.xml.bind.annotation.XmlMixed; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.w3c.dom.Element; /** - * <p>Java-Klasse für SignaturePropertyType complex type. + * <p>Java class for SignaturePropertyType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="SignaturePropertyType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <choice maxOccurs="unbounded"> - * <any processContents='lax' namespace='##other'/> - * </choice> - * <attribute name="Target" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> - * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" /> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="SignaturePropertyType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <choice maxOccurs="unbounded"> + * <any processContents='lax' namespace='##other'/> + * </choice> + * <attribute name="Target" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -58,16 +58,16 @@ public class SignaturePropertyType { /** * Gets the value of the content property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the content property. + * This is why there is not a <CODE>set</CODE> method for the content property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getContent().add(newItem); + * getContent().add(newItem); * </pre> * * @@ -76,18 +76,21 @@ public class SignaturePropertyType { * {@link Object } * {@link String } * {@link Element } + * </p> * * + * @return + * The value of the content property. */ public List<Object> getContent() { if (content == null) { - content = new ArrayList<Object>(); + content = new ArrayList<>(); } return this.content; } /** - * Ruft den Wert der target-Eigenschaft ab. + * Gets the value of the target property. * * @return * possible object is @@ -99,7 +102,7 @@ public class SignaturePropertyType { } /** - * Legt den Wert der target-Eigenschaft fest. + * Sets the value of the target property. * * @param value * allowed object is @@ -111,7 +114,7 @@ public class SignaturePropertyType { } /** - * Ruft den Wert der id-Eigenschaft ab. + * Gets the value of the id property. * * @return * possible object is @@ -123,7 +126,7 @@ public class SignaturePropertyType { } /** - * Legt den Wert der id-Eigenschaft fest. + * Sets the value of the id property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignatureType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignatureType.java index cb841082..f18bfcc1 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignatureType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignatureType.java @@ -3,37 +3,37 @@ package org.w3._2000._09.xmldsig_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlID; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlID; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** - * <p>Java-Klasse für SignatureType complex type. + * <p>Java class for SignatureType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="SignatureType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}SignedInfo"/> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}SignatureValue"/> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}KeyInfo" minOccurs="0"/> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}Object" maxOccurs="unbounded" minOccurs="0"/> - * </sequence> - * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" /> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="SignatureType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}SignedInfo"/> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}SignatureValue"/> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}KeyInfo" minOccurs="0"/> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}Object" maxOccurs="unbounded" minOccurs="0"/> + * </sequence> + * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -61,7 +61,7 @@ public class SignatureType { protected String id; /** - * Ruft den Wert der signedInfo-Eigenschaft ab. + * Gets the value of the signedInfo property. * * @return * possible object is @@ -73,7 +73,7 @@ public class SignatureType { } /** - * Legt den Wert der signedInfo-Eigenschaft fest. + * Sets the value of the signedInfo property. * * @param value * allowed object is @@ -85,7 +85,7 @@ public class SignatureType { } /** - * Ruft den Wert der signatureValue-Eigenschaft ab. + * Gets the value of the signatureValue property. * * @return * possible object is @@ -97,7 +97,7 @@ public class SignatureType { } /** - * Legt den Wert der signatureValue-Eigenschaft fest. + * Sets the value of the signatureValue property. * * @param value * allowed object is @@ -109,7 +109,7 @@ public class SignatureType { } /** - * Ruft den Wert der keyInfo-Eigenschaft ab. + * Gets the value of the keyInfo property. * * @return * possible object is @@ -121,7 +121,7 @@ public class SignatureType { } /** - * Legt den Wert der keyInfo-Eigenschaft fest. + * Sets the value of the keyInfo property. * * @param value * allowed object is @@ -135,34 +135,37 @@ public class SignatureType { /** * Gets the value of the object property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the object property. + * This is why there is not a <CODE>set</CODE> method for the object property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getObject().add(newItem); + * getObject().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link ObjectType } + * </p> * * + * @return + * The value of the object property. */ public List<ObjectType> getObject() { if (object == null) { - object = new ArrayList<ObjectType>(); + object = new ArrayList<>(); } return this.object; } /** - * Ruft den Wert der id-Eigenschaft ab. + * Gets the value of the id property. * * @return * possible object is @@ -174,7 +177,7 @@ public class SignatureType { } /** - * Legt den Wert der id-Eigenschaft fest. + * Sets the value of the id property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignatureValueType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignatureValueType.java index 989a950b..d3df4969 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignatureValueType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignatureValueType.java @@ -1,31 +1,31 @@ package org.w3._2000._09.xmldsig_; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlID; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.XmlValue; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlID; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlValue; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** - * <p>Java-Klasse für SignatureValueType complex type. + * <p>Java class for SignatureValueType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="SignatureValueType"> - * <simpleContent> - * <extension base="<http://www.w3.org/2000/09/xmldsig#>CryptoBinary"> - * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" /> - * </extension> - * </simpleContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="SignatureValueType"> + * <simpleContent> + * <extension base="<http://www.w3.org/2000/09/xmldsig#>CryptoBinary"> + * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </extension> + * </simpleContent> + * </complexType> + * }</pre> * * */ @@ -44,7 +44,7 @@ public class SignatureValueType { protected String id; /** - * Ruft den Wert der value-Eigenschaft ab. + * Gets the value of the value property. * * @return * possible object is @@ -56,7 +56,7 @@ public class SignatureValueType { } /** - * Legt den Wert der value-Eigenschaft fest. + * Sets the value of the value property. * * @param value * allowed object is @@ -68,7 +68,7 @@ public class SignatureValueType { } /** - * Ruft den Wert der id-Eigenschaft ab. + * Gets the value of the id property. * * @return * possible object is @@ -80,7 +80,7 @@ public class SignatureValueType { } /** - * Legt den Wert der id-Eigenschaft fest. + * Sets the value of the id property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignedInfoType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignedInfoType.java index f38b247f..6c1d1e49 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignedInfoType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/SignedInfoType.java @@ -3,36 +3,36 @@ package org.w3._2000._09.xmldsig_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlID; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlID; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter; +import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; /** - * <p>Java-Klasse für SignedInfoType complex type. + * <p>Java class for SignedInfoType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="SignedInfoType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod"/> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}SignatureMethod"/> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}Reference" maxOccurs="unbounded"/> - * </sequence> - * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" /> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="SignedInfoType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod"/> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}SignatureMethod"/> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}Reference" maxOccurs="unbounded"/> + * </sequence> + * <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" /> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -57,7 +57,7 @@ public class SignedInfoType { protected String id; /** - * Ruft den Wert der canonicalizationMethod-Eigenschaft ab. + * Gets the value of the canonicalizationMethod property. * * @return * possible object is @@ -69,7 +69,7 @@ public class SignedInfoType { } /** - * Legt den Wert der canonicalizationMethod-Eigenschaft fest. + * Sets the value of the canonicalizationMethod property. * * @param value * allowed object is @@ -81,7 +81,7 @@ public class SignedInfoType { } /** - * Ruft den Wert der signatureMethod-Eigenschaft ab. + * Gets the value of the signatureMethod property. * * @return * possible object is @@ -93,7 +93,7 @@ public class SignedInfoType { } /** - * Legt den Wert der signatureMethod-Eigenschaft fest. + * Sets the value of the signatureMethod property. * * @param value * allowed object is @@ -107,34 +107,37 @@ public class SignedInfoType { /** * Gets the value of the reference property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the reference property. + * This is why there is not a <CODE>set</CODE> method for the reference property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getReference().add(newItem); + * getReference().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link ReferenceType } + * </p> * * + * @return + * The value of the reference property. */ public List<ReferenceType> getReference() { if (reference == null) { - reference = new ArrayList<ReferenceType>(); + reference = new ArrayList<>(); } return this.reference; } /** - * Ruft den Wert der id-Eigenschaft ab. + * Gets the value of the id property. * * @return * possible object is @@ -146,7 +149,7 @@ public class SignedInfoType { } /** - * Legt den Wert der id-Eigenschaft fest. + * Sets the value of the id property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/TransformType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/TransformType.java index 83d64908..77615614 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/TransformType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/TransformType.java @@ -3,36 +3,36 @@ package org.w3._2000._09.xmldsig_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElementRef; -import javax.xml.bind.annotation.XmlMixed; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlAttribute; +import jakarta.xml.bind.annotation.XmlElementRef; +import jakarta.xml.bind.annotation.XmlMixed; +import jakarta.xml.bind.annotation.XmlSchemaType; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; /** - * <p>Java-Klasse für TransformType complex type. + * <p>Java class for TransformType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="TransformType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <choice maxOccurs="unbounded" minOccurs="0"> - * <any processContents='lax' namespace='##other'/> - * <element name="XPath" type="{http://www.w3.org/2001/XMLSchema}string"/> - * </choice> - * <attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="TransformType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <choice maxOccurs="unbounded" minOccurs="0"> + * <any processContents='lax' namespace='##other'/> + * <element name="XPath" type="{http://www.w3.org/2001/XMLSchema}string"/> + * </choice> + * <attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" /> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -53,37 +53,40 @@ public class TransformType { /** * Gets the value of the content property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the content property. + * This is why there is not a <CODE>set</CODE> method for the content property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getContent().add(newItem); + * getContent().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list + * {@link JAXBElement }{@code <}{@link String }{@code >} * {@link Object } * {@link String } - * {@link JAXBElement }{@code <}{@link String }{@code >} * {@link Element } + * </p> * * + * @return + * The value of the content property. */ public List<Object> getContent() { if (content == null) { - content = new ArrayList<Object>(); + content = new ArrayList<>(); } return this.content; } /** - * Ruft den Wert der algorithm-Eigenschaft ab. + * Gets the value of the algorithm property. * * @return * possible object is @@ -95,7 +98,7 @@ public class TransformType { } /** - * Legt den Wert der algorithm-Eigenschaft fest. + * Sets the value of the algorithm property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/TransformsType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/TransformsType.java index 933bc662..dd7c72c2 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/TransformsType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/TransformsType.java @@ -3,28 +3,28 @@ package org.w3._2000._09.xmldsig_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für TransformsType complex type. + * <p>Java class for TransformsType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="TransformsType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element ref="{http://www.w3.org/2000/09/xmldsig#}Transform" maxOccurs="unbounded"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="TransformsType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element ref="{http://www.w3.org/2000/09/xmldsig#}Transform" maxOccurs="unbounded"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -40,28 +40,31 @@ public class TransformsType { /** * Gets the value of the transform property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the transform property. + * This is why there is not a <CODE>set</CODE> method for the transform property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getTransform().add(newItem); + * getTransform().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link TransformType } + * </p> * * + * @return + * The value of the transform property. */ public List<TransformType> getTransform() { if (transform == null) { - transform = new ArrayList<TransformType>(); + transform = new ArrayList<>(); } return this.transform; } diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/X509DataType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/X509DataType.java index e99a02d6..44a4afdc 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/X509DataType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/X509DataType.java @@ -3,39 +3,39 @@ package org.w3._2000._09.xmldsig_; import java.util.ArrayList; import java.util.List; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAnyElement; -import javax.xml.bind.annotation.XmlElementRef; -import javax.xml.bind.annotation.XmlElementRefs; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAnyElement; +import jakarta.xml.bind.annotation.XmlElementRef; +import jakarta.xml.bind.annotation.XmlElementRefs; +import jakarta.xml.bind.annotation.XmlType; import org.w3c.dom.Element; /** - * <p>Java-Klasse für X509DataType complex type. + * <p>Java class for X509DataType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="X509DataType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence maxOccurs="unbounded"> - * <choice> - * <element name="X509IssuerSerial" type="{http://www.w3.org/2000/09/xmldsig#}X509IssuerSerialType"/> - * <element name="X509SKI" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> - * <element name="X509SubjectName" type="{http://www.w3.org/2001/XMLSchema}string"/> - * <element name="X509Certificate" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> - * <element name="X509CRL" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> - * <any processContents='lax' namespace='##other'/> - * </choice> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="X509DataType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence maxOccurs="unbounded"> + * <choice> + * <element name="X509IssuerSerial" type="{http://www.w3.org/2000/09/xmldsig#}X509IssuerSerialType"/> + * <element name="X509SKI" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> + * <element name="X509SubjectName" type="{http://www.w3.org/2001/XMLSchema}string"/> + * <element name="X509Certificate" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> + * <element name="X509CRL" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/> + * <any processContents='lax' namespace='##other'/> + * </choice> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -58,34 +58,37 @@ public class X509DataType { /** * Gets the value of the x509IssuerSerialOrX509SKIOrX509SubjectName property. * - * <p> - * This accessor method returns a reference to the live list, + * <p>This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. - * This is why there is not a <CODE>set</CODE> method for the x509IssuerSerialOrX509SKIOrX509SubjectName property. + * This is why there is not a <CODE>set</CODE> method for the x509IssuerSerialOrX509SKIOrX509SubjectName property.</p> * * <p> * For example, to add a new item, do as follows: + * </p> * <pre> - * getX509IssuerSerialOrX509SKIOrX509SubjectName().add(newItem); + * getX509IssuerSerialOrX509SKIOrX509SubjectName().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list - * {@link Object } * {@link JAXBElement }{@code <}{@link String }{@code >} * {@link JAXBElement }{@code <}{@link String }{@code >} * {@link JAXBElement }{@code <}{@link String }{@code >} * {@link JAXBElement }{@code <}{@link String }{@code >} * {@link JAXBElement }{@code <}{@link X509IssuerSerialType }{@code >} + * {@link Object } * {@link Element } + * </p> * * + * @return + * The value of the x509IssuerSerialOrX509SKIOrX509SubjectName property. */ public List<Object> getX509IssuerSerialOrX509SKIOrX509SubjectName() { if (x509IssuerSerialOrX509SKIOrX509SubjectName == null) { - x509IssuerSerialOrX509SKIOrX509SubjectName = new ArrayList<Object>(); + x509IssuerSerialOrX509SKIOrX509SubjectName = new ArrayList<>(); } return this.x509IssuerSerialOrX509SKIOrX509SubjectName; } diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/X509IssuerSerialType.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/X509IssuerSerialType.java index 98e286c7..2f96927b 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/X509IssuerSerialType.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/X509IssuerSerialType.java @@ -2,29 +2,29 @@ package org.w3._2000._09.xmldsig_; import java.math.BigInteger; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlType; /** - * <p>Java-Klasse für X509IssuerSerialType complex type. + * <p>Java class for X509IssuerSerialType complex type</p>. * - * <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * <p>The following schema fragment specifies the expected content contained within this class.</p> * - * <pre> - * <complexType name="X509IssuerSerialType"> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence> - * <element name="X509IssuerName" type="{http://www.w3.org/2001/XMLSchema}string"/> - * <element name="X509SerialNumber" type="{http://www.w3.org/2001/XMLSchema}integer"/> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </pre> + * <pre>{@code + * <complexType name="X509IssuerSerialType"> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="X509IssuerName" type="{http://www.w3.org/2001/XMLSchema}string"/> + * <element name="X509SerialNumber" type="{http://www.w3.org/2001/XMLSchema}integer"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * }</pre> * * */ @@ -41,7 +41,7 @@ public class X509IssuerSerialType { protected BigInteger x509SerialNumber; /** - * Ruft den Wert der x509IssuerName-Eigenschaft ab. + * Gets the value of the x509IssuerName property. * * @return * possible object is @@ -53,7 +53,7 @@ public class X509IssuerSerialType { } /** - * Legt den Wert der x509IssuerName-Eigenschaft fest. + * Sets the value of the x509IssuerName property. * * @param value * allowed object is @@ -65,7 +65,7 @@ public class X509IssuerSerialType { } /** - * Ruft den Wert der x509SerialNumber-Eigenschaft ab. + * Gets the value of the x509SerialNumber property. * * @return * possible object is @@ -77,7 +77,7 @@ public class X509IssuerSerialType { } /** - * Legt den Wert der x509SerialNumber-Eigenschaft fest. + * Sets the value of the x509SerialNumber property. * * @param value * allowed object is diff --git a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/package-info.java b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/package-info.java index 96d5b4b5..13b13252 100644 --- a/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/package-info.java +++ b/pdf-as-moa/src/generated/java/org/w3/_2000/_09/xmldsig_/package-info.java @@ -1,2 +1,2 @@ -@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.w3.org/2000/09/xmldsig#", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED) +@jakarta.xml.bind.annotation.XmlSchema(namespace = "http://www.w3.org/2000/09/xmldsig#", elementFormDefault = jakarta.xml.bind.annotation.XmlNsForm.QUALIFIED) package org.w3._2000._09.xmldsig_; diff --git a/pdf-as-moa/src/main/java/at/gv/egiz/pdfas/moa/MOAConnector.java b/pdf-as-moa/src/main/java/at/gv/egiz/pdfas/moa/MOAConnector.java index 11d00c75..9923e4bb 100644 --- a/pdf-as-moa/src/main/java/at/gv/egiz/pdfas/moa/MOAConnector.java +++ b/pdf-as-moa/src/main/java/at/gv/egiz/pdfas/moa/MOAConnector.java @@ -30,11 +30,16 @@ import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; +import java.net.http.HttpConnectTimeoutException; +import java.net.http.HttpTimeoutException; import java.security.cert.CertificateException; -import javax.xml.ws.BindingProvider; -import javax.xml.ws.soap.SOAPBinding; +import at.gv.egiz.pdfas.common.exceptions.*; +import jakarta.xml.ws.BindingProvider; +import jakarta.xml.ws.WebServiceException; +import jakarta.xml.ws.soap.SOAPBinding; +import lombok.val; import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -51,13 +56,6 @@ import at.gv.e_government.reference.namespace.moa._20020822_.MOAFault; import at.gv.e_government.reference.namespace.moa._20020822_.MetaInfoType; import at.gv.e_government.reference.namespace.moa._20020822_.SignatureCreationPortType; import at.gv.e_government.reference.namespace.moa._20020822_.SignatureCreationService; -import at.gv.egiz.pdfas.common.exceptions.ErrorConstants; -import at.gv.egiz.pdfas.common.exceptions.PDFASError; -import at.gv.egiz.pdfas.common.exceptions.PdfAsErrorCarrier; -import at.gv.egiz.pdfas.common.exceptions.PdfAsException; -import at.gv.egiz.pdfas.common.exceptions.PdfAsMOAException; -import at.gv.egiz.pdfas.common.exceptions.PdfAsSignatureException; -import at.gv.egiz.pdfas.common.exceptions.PdfAsWrappedIOException; import at.gv.egiz.pdfas.common.settings.ISettings; import at.gv.egiz.pdfas.common.utils.SettingsUtils; import at.gv.egiz.pdfas.common.utils.StreamUtils; @@ -134,18 +132,22 @@ public class MOAConnector implements ISignatureConnector, URL certificateURL = new URL(certificateValue); is = certificateURL.openStream(); this.certificate = new X509Certificate(is); - + } catch (MalformedURLException e) { logger.error(certificateValue + " is not a valid url but starts with http!"); throw new PdfAsWrappedIOException(new PdfAsException(certificateValue + " is not a valid url but!")); - + } finally { - if (is != null) { - is.close(); - - } - } - + if (is != null) { + is.close(); + + } + } + } else if (certificateValue.startsWith("base64:")) { + logger.debug("Loading base64 certificate: {}", certificateValue); + + val cert = java.util.Base64.getDecoder().decode(certificateValue.substring(7)); + this.certificate = new X509Certificate(cert); } else { File certFile = new File(certificateValue); @@ -256,6 +258,9 @@ public class MOAConnector implements ISignatureConnector, throw new PdfAsMOAException("", e.getMessage(), "", ""); } + } catch (WebServiceException e) { + val cause = (e.getCause() != null) ? e.getCause() : e; + throw new SLPdfAsException((int) ErrorConstants.ERROR_SIG_CONNECT_ERROR, cause.getMessage()); } if (response.getCMSSignatureOrErrorResponse().size() != 1) { diff --git a/pdf-as-moa/src/main/java/at/gv/egiz/pdfas/moa/MOAVerifier.java b/pdf-as-moa/src/main/java/at/gv/egiz/pdfas/moa/MOAVerifier.java index 40ea4ba5..21d90681 100644 --- a/pdf-as-moa/src/main/java/at/gv/egiz/pdfas/moa/MOAVerifier.java +++ b/pdf-as-moa/src/main/java/at/gv/egiz/pdfas/moa/MOAVerifier.java @@ -5,10 +5,11 @@ import java.util.Date; import java.util.GregorianCalendar; import java.util.List; -import javax.xml.bind.JAXBElement; +import at.gv.egiz.pdfas.lib.impl.verify.SignatureInputData; +import jakarta.xml.bind.JAXBElement; import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.XMLGregorianCalendar; -import javax.xml.ws.BindingProvider; +import jakarta.xml.ws.BindingProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -44,7 +45,7 @@ public class MOAVerifier implements IVerifier { private String moaTrustProfile; - public List<VerifyResult> verify(byte[] signature, byte[] signatureContent, + public List<VerifyResult> verify(byte[] signature, SignatureInputData signatureContent, Date verificationTime) throws PdfAsException { List<VerifyResult> resultList = new ArrayList<VerifyResult>(); try { @@ -68,7 +69,7 @@ public class MOAVerifier implements IVerifier { metaDataType.setMetaInfo(metaInfoType); CMSContentBaseType contentBase = new CMSContentBaseType(); - contentBase.setBase64Content(signatureContent); + contentBase.setBase64Content(signatureContent.getSignatureInputBytes()); metaDataType.setContent(contentBase); verifyCMSSignatureRequest.setDataObject(metaDataType); diff --git a/pdf-as-pdfbox-2/build.gradle b/pdf-as-pdfbox-2/build.gradle index ef71aefe..67bb265d 100644 --- a/pdf-as-pdfbox-2/build.gradle +++ b/pdf-as-pdfbox-2/build.gradle @@ -30,21 +30,23 @@ releases.dependsOn jar releases.dependsOn sourcesJar dependencies { + var pdfbox2Version = '2.0.35' implementation project (':pdf-as-lib') implementation group: 'org.slf4j', name: 'slf4j-api', version: slf4jVersion - implementation 'org.slf4j:jcl-over-slf4j:1.7.36' - api group: 'org.apache.pdfbox', name: 'pdfbox', version: '2.0.35' - api group: 'org.apache.pdfbox', name: 'pdfbox-tools', version: '2.0.35' - api group: 'org.apache.pdfbox', name: 'preflight', version: '2.0.35' - implementation group: 'commons-io', name: 'commons-io', version: '2.21.0' - implementation group: 'ognl', name: 'ognl', version: '3.3.5' + implementation group: 'org.slf4j', name: 'jcl-over-slf4j', version: slf4jVersion + api group: 'org.apache.pdfbox', name: 'pdfbox', version: pdfbox2Version + api group: 'org.apache.pdfbox', name: 'pdfbox-tools', version: pdfbox2Version + api group: 'org.apache.pdfbox', name: 'preflight', version: pdfbox2Version + implementation group: 'commons-io', name: 'commons-io', version: commonsIoVersion + implementation group: 'ognl', name: 'ognl', version: ognlVersion api group: 'com.github.jai-imageio', name: 'jai-imageio-jpeg2000', version: '1.4.0' api group: 'com.github.jai-imageio', name: 'jai-imageio-core', version: '1.4.0' api group: 'com.levigo.jbig2', name: 'levigo-jbig2-imageio', version: '2.0' + implementation group: 'jakarta.activation', name: 'jakarta.activation-api', version: jakartaActivationVersion implementation group: 'javax.activation', name: 'activation', version: '1.1.1' - testImplementation 'ch.qos.logback:logback-classic:1.2.13' - testImplementation 'ch.qos.logback:logback-core:1.2.13' + testImplementation group: 'ch.qos.logback', name: 'logback-classic', version: logbackVersion + testImplementation group: 'ch.qos.logback', name: 'logback-core', version: logbackVersion } diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/PDFBOXObject.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/PDFBOXObject.java index 53b87d86..e0947b46 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/PDFBOXObject.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/PDFBOXObject.java @@ -2,7 +2,7 @@ package at.gv.egiz.pdfas.lib.impl.pdfbox2; import java.io.IOException; -import javax.activation.DataSource; +import jakarta.activation.DataSource; import org.apache.pdfbox.pdmodel.PDDocument; @@ -28,21 +28,15 @@ public class PDFBOXObject extends PDFObject { super(operationStatus); } - @Override - protected void finalize() throws Throwable { - super.finalize(); - if(doc != null) { - doc.close(); - } - } + // Note: finalize() method removed as it's deprecated in Java 9+ + // Resource cleanup should be handled explicitly via close() method public void close() { if(doc != null) { try { doc.close(); - //System.gc(); } catch(Throwable e) { - // ignore! + // Ignore Throwables during close } doc = null; } diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/configuration/ProfileValidator.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/configuration/ProfileValidator.java index ee828705..97b6b66e 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/configuration/ProfileValidator.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/configuration/ProfileValidator.java @@ -52,7 +52,7 @@ public class ProfileValidator implements ConfigurationValidator{ ArrayList<SignatureProfileSettings> profileSettings = new ArrayList<SignatureProfileSettings>(); - OperationStatus opState = new OperationStatus(settings, null, null); + OperationStatus opState = new OperationStatus(settings, null, null, null); X509Certificate dummyCert = new X509Certificate(); dummyCert.setSerialNumber(new BigInteger("123")); diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/placeholder/PDFBoxPlaceholderExtractor.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/placeholder/PDFBoxPlaceholderExtractor.java index ad874bc0..414b8a31 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/placeholder/PDFBoxPlaceholderExtractor.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/placeholder/PDFBoxPlaceholderExtractor.java @@ -1,6 +1,7 @@ package at.gv.egiz.pdfas.lib.impl.pdfbox2.placeholder; import java.io.IOException; +import java.lang.reflect.InvocationTargetException; import at.gv.egiz.pdfas.common.exceptions.PDFIOException; import at.gv.egiz.pdfas.common.exceptions.PdfAsException; @@ -14,12 +15,12 @@ public class PDFBoxPlaceholderExtractor implements PlaceholderExtractor { @Override public SignaturePlaceholderData extract(PDFObject doc, String placeholderId, int matchMode) throws PdfAsException { - if (doc instanceof PDFBOXObject) { - PDFBOXObject object = (PDFBOXObject) doc; - try { + if (doc instanceof PDFBOXObject object) { + try { SignaturePlaceholderExtractor extractor = new SignaturePlaceholderExtractor(); return extractor.extract(object.getDocument(), placeholderId, matchMode); - } catch (IOException | ClassNotFoundException | InstantiationException | IllegalAccessException e2) { + } catch (IOException | ClassNotFoundException | InstantiationException | IllegalAccessException | NoSuchMethodException | + InvocationTargetException e2) { throw new PDFIOException("error.pdf.io.04", e2); } } diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/placeholder/SignaturePlaceholderExtractor.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/placeholder/SignaturePlaceholderExtractor.java index 0b148551..d90f02a1 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/placeholder/SignaturePlaceholderExtractor.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/placeholder/SignaturePlaceholderExtractor.java @@ -50,16 +50,10 @@ import java.awt.geom.AffineTransform; import java.awt.geom.NoninvertibleTransformException; import java.awt.image.BufferedImage; import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; +import java.lang.reflect.InvocationTargetException; +import java.util.*; import java.util.HashSet; -import java.util.Hashtable; -import java.util.List; import java.util.Map.Entry; -import java.util.Objects; -import java.util.Properties; -import java.util.Set; -import java.util.Vector; import java.util.stream.Collectors; import org.apache.pdfbox.contentstream.PDFStreamEngine; @@ -112,7 +106,7 @@ public class SignaturePlaceholderExtractor extends PDFStreamEngine implements Pl private int currentPage = 0; protected SignaturePlaceholderExtractor() throws IOException, ClassNotFoundException, - InstantiationException, IllegalAccessException { + InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException { super(); final Properties properties = new Properties(); @@ -124,7 +118,7 @@ public class SignaturePlaceholderExtractor extends PDFStreamEngine implements Pl final String processorClassName = (String) entry.getValue(); final Class<?> klass = Class.forName(processorClassName); final org.apache.pdfbox.contentstream.operator.OperatorProcessor processor = - (OperatorProcessor) klass.newInstance(); + (OperatorProcessor) klass.getDeclaredConstructor().newInstance(); addOperator(processor); @@ -198,17 +192,14 @@ public class SignaturePlaceholderExtractor extends PDFStreamEngine implements Pl rotation.setToRotation(rotationInRadians); final AffineTransform rotationInverse = rotation .createInverse(); - final Matrix rotationInverseMatrix = new Matrix(); - rotationInverseMatrix - .setFromAffineTransform(rotationInverse); - final Matrix rotationMatrix = new Matrix(); - rotationMatrix.setFromAffineTransform(rotation); + final Matrix rotationInverseMatrix = new Matrix(rotationInverse); + final Matrix rotationMatrix = new Matrix(rotation); final Matrix unrotatedCTM = ctm .multiply(rotationInverseMatrix); - float x = unrotatedCTM.getXPosition(); - final float yPos = unrotatedCTM.getYPosition(); + float x = unrotatedCTM.getTranslateX(); + final float yPos = unrotatedCTM.getTranslateY(); final float yScale = unrotatedCTM.getScaleY(); float y = yPos + yScale; final float w = unrotatedCTM.getScaleX(); diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/positioning/Positioning.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/positioning/Positioning.java index f9dc62fd..7b18d2f1 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/positioning/Positioning.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/positioning/Positioning.java @@ -49,7 +49,7 @@ import lombok.extern.slf4j.Slf4j; * change this template use File | Settings | File Templates. */ @Slf4j -public class Positioning { +public class Positioning { /** * The left/right margin. diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PADESPDFBOXSigner.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PADESPDFBOXSigner.java index d8a25a9a..db899ee8 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PADESPDFBOXSigner.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PADESPDFBOXSigner.java @@ -29,6 +29,8 @@ import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; +import java.io.OutputStream; +import java.security.Signature; import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; @@ -36,7 +38,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import javax.activation.DataSource; +import jakarta.activation.DataSource; import org.apache.commons.io.IOUtils; import org.apache.pdfbox.cos.COSArray; @@ -110,29 +112,16 @@ import iaik.x509.X509Certificate; import lombok.extern.slf4j.Slf4j; @Slf4j -public class PADESPDFBOXSigner implements IPdfSigner, IConfigurationConstants { +public class PADESPDFBOXSigner implements IPdfSigner<PDFBOXObject, SignatureDataExtractor>, IConfigurationConstants { @Override - public void signPDF(PDFObject genericPdfObject, RequestedSignature requestedSignature, - PDFASSignatureInterface genericSigner) throws PdfAsException { + public void signPDF(PDFBOXObject pdfObject, RequestedSignature requestedSignature, + SignatureDataExtractor signer) throws PdfAsException { boolean isAdobeSigForm = false; - - if (!(genericPdfObject instanceof PDFBOXObject)) { - throw new PdfAsException("PDF to signObject is of wrong type: " + genericPdfObject.getClass().getName()); - - } - - if (!(genericSigner instanceof PDFASPDFBOXSignatureInterface)) { - throw new PdfAsException("PDF signerObject is of wrong type:" + genericSigner.getClass().getName()); - - } - - final PDFBOXObject pdfObject = (PDFBOXObject) genericPdfObject; - final PDFASPDFBOXSignatureInterface signer = (PDFASPDFBOXSignatureInterface) genericSigner; PDDocument doc = null; SignatureOptions options = new SignatureOptions(); @@ -161,7 +150,7 @@ public class PADESPDFBOXSigner implements IPdfSigner, IConfigurationConstants { // extract next QR-code placeholder, if exists SignaturePlaceholderData nextPlaceholderData = PlaceholderFilter.checkPlaceholderSignatureLocation( pdfObject.getStatus(), pdfObject.getStatus().getSettings(), - pdfObject.getStatus().getSignParamter().getPlaceHolderId()); + pdfObject.getStatus().getSignParameter().getPlaceHolderId()); if (nextPlaceholderData != null) { log.info("Placeholder data found. Injection placeholderId ..."); @@ -214,7 +203,7 @@ public class PADESPDFBOXSigner implements IPdfSigner, IConfigurationConstants { final SignatureProfileConfiguration signatureProfileConfiguration = pdfObject.getStatus().getSignatureProfileConfiguration(requestedSignature.getSignatureProfileID()); final TablePos tablePos = prepareTablePosition(nextPlaceholderData, signatureProfileConfiguration, - pdfObject.getStatus().getSignParamter().getSignaturePosition()); + pdfObject.getStatus().getSignParameter().getSignaturePosition()); final Table main = TableFactory.createSigTable(signatureProfileSettings, MAIN, pdfObject.getStatus(), requestedSignature); @@ -456,13 +445,13 @@ public class PADESPDFBOXSigner implements IPdfSigner, IConfigurationConstants { final COSDictionary objectDic = new COSDictionary(); objectDic.setName("Type", "OBJR"); - objectDic.setItem("Pg", signatureField.getWidget().getPage()); - objectDic.setItem("Obj", signatureField.getWidget()); + objectDic.setItem("Pg", signatureField.getWidgets().get(0).getPage()); + objectDic.setItem("Obj", signatureField.getWidgets().get(0)); final List<Object> l = new ArrayList<>(); l.add(objectDic); sigBlock.setKids(l); - sigBlock.setPage(signatureField.getWidget().getPage()); + sigBlock.setPage(signatureField.getWidgets().get(0).getPage()); sigBlock.setTitle("Signature Table"); sigBlock.setParent(docElement); @@ -530,13 +519,13 @@ public class PADESPDFBOXSigner implements IPdfSigner, IConfigurationConstants { } // set StructureParent for signature field annotation - signatureField.getWidget().setStructParent(parentTreeNextKey); + signatureField.getWidgets().get(0).setStructParent(parentTreeNextKey); // Increase the next Key value in the structure tree root structureTreeRoot.setParentTreeNextKey(parentTreeNextKey + 1); // add the Tabs /S Element for Tabbing through annots - final PDPage p = signatureField.getWidget().getPage(); + final PDPage p = signatureField.getWidgets().get(0).getPage(); p.getCOSObject().setName("Tabs", "S"); p.getCOSObject().setNeedToBeUpdated(true); @@ -671,7 +660,12 @@ public class PADESPDFBOXSigner implements IPdfSigner, IConfigurationConstants { PreflightDocument document = null; ValidationResult result = null; try { - final PreflightParser parser = new PreflightParser(signedDocument); + final PreflightParser parser = new PreflightParser(new javax.activation.DataSource() { + @Override public InputStream getInputStream() throws IOException { return signedDocument.getInputStream(); } + @Override public OutputStream getOutputStream() throws IOException { return signedDocument.getOutputStream(); } + @Override public String getContentType() { return signedDocument.getContentType(); } + @Override public String getName() { return signedDocument.getName(); } + }); // // parser.parse(Format.PDF_A1B); parser.parse(); @@ -715,30 +709,18 @@ public class PADESPDFBOXSigner implements IPdfSigner, IConfigurationConstants { } @Override - public PDFObject buildPDFObject(OperationStatus operationStatus) { + public PDFBOXObject buildPDFObject(OperationStatus operationStatus) { return new PDFBOXObject(operationStatus); } @Override - public PDFASSignatureInterface buildSignaturInterface(IPlainSigner signer, SignParameter parameters, - RequestedSignature requestedSignature) { - return new PdfboxSignerWrapper(signer, parameters, requestedSignature); - } - - @Override - public PDFASSignatureExtractor buildBlindSignaturInterface(X509Certificate certificate, String filter, + public SignatureDataExtractor buildBlindSignaturInterface(X509Certificate certificate, String filter, String subfilter, Calendar date) { return new SignatureDataExtractor(certificate, filter, subfilter, date); } @Override - public void checkPDFPermissions(PDFObject genericPdfObject) throws PdfAsException { - if (!(genericPdfObject instanceof PDFBOXObject)) { - // tODO: - throw new PdfAsException(); - } - - final PDFBOXObject pdfObject = (PDFBOXObject) genericPdfObject; + public void checkPDFPermissions(PDFBOXObject pdfObject) throws PdfAsException { PdfBoxUtils.checkPDFPermissions(pdfObject.getDocument()); } @@ -755,7 +737,7 @@ public class PADESPDFBOXSigner implements IPdfSigner, IConfigurationConstants { int resolution, OperationStatus status, RequestedSignature requestedSignature) throws PDFASError { try { - final PDFBOXObject pdfObject = (PDFBOXObject) status.getPdfObject(); + final PDFBOXObject pdfObject = (PDFBOXObject)(PDFBOXObject) status.getPdfObject(); final PDDocument origDoc = new PDDocument(); origDoc.addPage(new PDPage(PDRectangle.A4)); diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PDFASPDFBOXExtractorInterface.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PDFASPDFBOXExtractorInterface.java deleted file mode 100644 index c99e7c59..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PDFASPDFBOXExtractorInterface.java +++ /dev/null @@ -1,7 +0,0 @@ -package at.gv.egiz.pdfas.lib.impl.signing.pdfbox2; - -import at.gv.egiz.pdfas.lib.impl.signing.PDFASSignatureExtractor; - -public interface PDFASPDFBOXExtractorInterface extends PDFASSignatureExtractor, PDFASPDFBOXSignatureInterface { - -} diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PDFASPDFBOXSignatureInterface.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PDFASPDFBOXSignatureInterface.java deleted file mode 100644 index cc260ece..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PDFASPDFBOXSignatureInterface.java +++ /dev/null @@ -1,10 +0,0 @@ -package at.gv.egiz.pdfas.lib.impl.signing.pdfbox2; - -import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature; -import org.apache.pdfbox.pdmodel.interactive.digitalsignature.SignatureInterface; - -import at.gv.egiz.pdfas.lib.impl.signing.PDFASSignatureInterface; - -public interface PDFASPDFBOXSignatureInterface extends PDFASSignatureInterface, SignatureInterface { - public void setPDSignature(PDSignature signature); -} diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PdfboxSignerWrapper.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PdfboxSignerWrapper.java deleted file mode 100644 index 7aaf1510..00000000 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/PdfboxSignerWrapper.java +++ /dev/null @@ -1,96 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -package at.gv.egiz.pdfas.lib.impl.signing.pdfbox2; - -import java.io.IOException; -import java.io.InputStream; -import java.security.SignatureException; -import java.util.Calendar; - -import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import at.gv.egiz.pdfas.common.exceptions.PdfAsException; -import at.gv.egiz.pdfas.common.exceptions.PdfAsWrappedIOException; -import at.gv.egiz.pdfas.common.utils.PDFUtils; -import at.gv.egiz.pdfas.common.utils.StreamUtils; -import at.gv.egiz.pdfas.lib.api.sign.IPlainSigner; -import at.gv.egiz.pdfas.lib.api.sign.SignParameter; -import at.gv.egiz.pdfas.lib.impl.status.RequestedSignature; - -public class PdfboxSignerWrapper implements PDFASPDFBOXSignatureInterface { - - private static final Logger logger = LoggerFactory - .getLogger(PdfboxSignerWrapper.class); - - private IPlainSigner signer; - private PDSignature signature; - private int[] byteRange; - private Calendar date; - private SignParameter parameters; - private RequestedSignature requestedSignature; - - public PdfboxSignerWrapper(IPlainSigner signer, SignParameter parameters, RequestedSignature requestedSignature) { - this.signer = signer; - this.date = Calendar.getInstance(); - this.parameters = parameters; - this.requestedSignature = requestedSignature; - } - - public byte[] sign(InputStream inputStream) throws IOException { - byte[] data = StreamUtils.inputStreamToByteArray(inputStream); - byteRange = PDFUtils.extractSignatureByteRange(data); - int[] byteRange2 = signature.getByteRange(); - logger.debug("Byte Range 2: " + byteRange2); - try { - logger.debug("Signing with Pdfbox Wrapper"); - byte[] signature = signer.sign(data, byteRange, this.parameters, this.requestedSignature); - - return signature; - } catch (PdfAsException e) { - throw new PdfAsWrappedIOException(e); - } - } - - public int[] getByteRange() { - return byteRange; - } - - public String getPDFSubFilter() { - return this.signer.getPDFSubFilter(); - } - - public String getPDFFilter() { - return this.signer.getPDFFilter(); - } - - public void setPDSignature(PDSignature signature) { - this.signature = signature; - } - - public Calendar getSigningDate() { - return this.date; - } -} diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/SignatureDataExtractor.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/SignatureDataExtractor.java index 78e48e5e..41ff38aa 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/SignatureDataExtractor.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/signing/pdfbox2/SignatureDataExtractor.java @@ -23,6 +23,8 @@ ******************************************************************************/ package at.gv.egiz.pdfas.lib.impl.signing.pdfbox2; +import at.gv.egiz.pdfas.lib.impl.signing.PDFASSignatureExtractor; +import at.gv.egiz.pdfas.lib.impl.signing.PDFASSignatureInterface; import iaik.x509.X509Certificate; import java.io.IOException; @@ -30,19 +32,23 @@ import java.io.InputStream; import java.security.SignatureException; import java.util.Calendar; +import lombok.Getter; import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature; import at.gv.egiz.pdfas.common.utils.StreamUtils; +import org.apache.pdfbox.pdmodel.interactive.digitalsignature.SignatureInterface; -public class SignatureDataExtractor implements PDFASPDFBOXExtractorInterface { +public class SignatureDataExtractor implements PDFASSignatureExtractor, PDFASSignatureInterface, SignatureInterface { - protected X509Certificate certificate; - protected byte[] signatureData; + @Getter + protected X509Certificate certificate; + @Getter + protected byte[] signatureData; protected String pdfSubFilter; protected String pdfFilter; - protected PDSignature signature; - protected int[] byteRange; + @Getter + protected int[] byteRange; protected Calendar date; public SignatureDataExtractor(X509Certificate certificate, @@ -52,41 +58,29 @@ public class SignatureDataExtractor implements PDFASPDFBOXExtractorInterface { this.pdfSubFilter = subfilter; this.date = date; } - - public X509Certificate getCertificate() { - return certificate; - } - public String getPDFSubFilter() { + public String getPDFSubFilter() { return this.pdfSubFilter; } - public String getPDFFilter() { + public String getPDFFilter() { return this.pdfFilter; } - public byte[] getSignatureData() { - return this.signatureData; - } - - public byte[] sign(InputStream content) throws IOException { - signatureData = StreamUtils.inputStreamToByteArray(content); - byteRange = this.signature.getByteRange(); - return new byte[] { 0 }; - } - - public void setPDSignature(PDSignature signature) { - this.signature = signature; - } + /** Called by PDFBox. + * We save the data to be signed and return an all-zeros signature (padded by pdfbox). + * We splice the actual signature in at a later point. + */ + public byte[] sign(InputStream content) throws IOException { + this.signatureData = StreamUtils.inputStreamToByteArray(content); + return new byte[] { 0 }; + } - public int[] getByteRange() { - return byteRange; - } + public void setPDSignature(PDSignature signature) { + this.byteRange = signature.getByteRange(); + } - public Calendar getSigningDate() { - return this.date; - } - - - + public Calendar getSigningDate() { + return this.date; + } } diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsVisualSignatureBuilder.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsVisualSignatureBuilder.java index a148b3ec..5501eff8 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsVisualSignatureBuilder.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsVisualSignatureBuilder.java @@ -29,6 +29,7 @@ import java.awt.image.BufferedImage; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.util.ArrayList; import java.util.HashMap; @@ -377,9 +378,9 @@ public class PDFAsVisualSignatureBuilder extends PDVisibleSigBuilder implements public void createSignature(PDSignatureField pdSignatureField, PDPage page, String signatureName) throws IOException { PDSignature pdSignature = new PDSignature(); - pdSignatureField.setSignature(pdSignature); - pdSignatureField.getWidget().setPage(page); - page.getAnnotations().add(pdSignatureField.getWidget()); + pdSignatureField.setValue(pdSignature); + pdSignatureField.getWidgets().get(0).setPage(page); + page.getAnnotations().add(pdSignatureField.getWidgets().get(0)); pdSignature.setName(signatureName); pdSignature.setByteRange(new int[] { 0, 0, 0, 0 }); pdSignature.setContents(new byte[4096]); @@ -389,7 +390,6 @@ public class PDFAsVisualSignatureBuilder extends PDVisibleSigBuilder implements public void createAcroFormDictionary(PDAcroForm acroForm, PDSignatureField signatureField) throws IOException { - @SuppressWarnings("unchecked") List<PDField> acroFormFields = acroForm.getFields(); COSDictionary acroFormDict = acroForm.getCOSObject(); acroFormDict.setDirect(true); @@ -481,7 +481,7 @@ public class PDFAsVisualSignatureBuilder extends PDVisibleSigBuilder implements rect.setLowerLeftX((float) llDst.getX()); logger.debug("rectangle of signature has been created: {}", rect.toString()); - signatureField.getWidget().setRectangle(rect); + signatureField.getWidgets().get(0).setRectangle(rect); getStructure().setSignatureRectangle(rect); logger.debug("rectangle of signature has been created"); } @@ -553,13 +553,13 @@ public class PDFAsVisualSignatureBuilder extends PDVisibleSigBuilder implements appearance.getCOSObject().setDirect(true); PDAppearanceStream appearanceStream = new PDAppearanceStream( - holderForml.getCOSStream()); + holderForml.getCOSObject()); AffineTransform transform = new AffineTransform(); transform.setToIdentity(); transform.rotate(Math.toRadians(degrees)); appearanceStream.setMatrix(transform); appearance.setNormalAppearance(appearanceStream); - signatureField.getWidget().setAppearance(appearance); + signatureField.getWidgets().get(0).setAppearance(appearance); getStructure().setAppearanceDictionary(appearance); logger.debug("PDF appereance Dictionary has been created"); @@ -586,7 +586,7 @@ public class PDFAsVisualSignatureBuilder extends PDVisibleSigBuilder implements PDResources holderFormResources) { COSName name = holderFormResources.add(innerForm, "FRM");//TODO: pdfbox2 - is this right? getStructure().setInnerFormName(name); - logger.debug("Alerady inserted inner form inside holder form"); + logger.debug("Already inserted inner form inside holder form"); } public void createImageFormStream(PDDocument template) { @@ -637,7 +637,7 @@ public class PDFAsVisualSignatureBuilder extends PDVisibleSigBuilder implements public void appendRawCommands(OutputStream os, String commands) throws IOException { - os.write(commands.getBytes("UTF-8")); + os.write(commands.getBytes(StandardCharsets.UTF_8)); os.close(); } @@ -678,8 +678,7 @@ public class PDFAsVisualSignatureBuilder extends PDVisibleSigBuilder implements COSName fontName = cosNameIterator.next(); PDFont pdFont = page.getResources().getFont(fontName); - if (pdFont instanceof PDType0Font) { - PDType0Font typedFont = (PDType0Font) pdFont; + if (pdFont instanceof PDType0Font typedFont) { if (typedFont.getDescendantFont() != null) { if (typedFont.getDescendantFont().getFontDescriptor() != null) { diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsVisualSignatureDesigner.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsVisualSignatureDesigner.java index 33450b56..6e198bba 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsVisualSignatureDesigner.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFAsVisualSignatureDesigner.java @@ -284,7 +284,7 @@ public class PDFAsVisualSignatureDesigner { /** * - * @param imgageStream + * @param imageStream * - stream of your visible signature image * @return Visible Signature Configuration Object * @throws IOException diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFBoxFont.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFBoxFont.java index 5607d582..58779f09 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFBoxFont.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFBoxFont.java @@ -161,7 +161,7 @@ public class PDFBoxFont { String fontName = fonttype.replaceFirst("TTF:", ""); String fontPath = this.settings.getWorkingDirectory() + File.separator + "fonts" + File.separator + fontName; - logger.debug("Font from: \"" + fontPath + "\"."); + logger.debug("Font from: \"{}\".", fontPath); PDFAsFontCache fontCache = pdfObject.getSigBlockFontCache(); if(fontCache.contains(fontPath)){ logger.debug("Using cached font."); @@ -189,8 +189,11 @@ public class PDFBoxFont { boolean requirePDFA3 = signatureProfileSettings.isPDFA3(); */ - PDType0Font font = PDType0Font.load(pdfObject.getDocument(), new FileInputStream(fontPath)); - fontCache.addFont(fontPath,font); + PDType0Font font; + try (FileInputStream fontStream = new FileInputStream(fontPath)) { + font = PDType0Font.load(pdfObject.getDocument(), fontStream); + } + fontCache.addFont(fontPath, font); return font; @@ -242,7 +245,7 @@ public class PDFBoxFont { PDFBOXObject pdfObject) throws IOException { this.settings = settings; this.fontDesc = fontDesc; - logger.debug("Creating Font: " + fontDesc); + logger.debug("Creating Font: {}", fontDesc); this.setFont(fontDesc, pdfObject); } diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFBoxTable.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFBoxTable.java index bc634dc5..4d8050b5 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFBoxTable.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PDFBoxTable.java @@ -65,7 +65,6 @@ public class PDFBoxTable { float tableHeight; Color bgColor; - boolean[] addPadding; float[] rowHeights; float[] colWidths; @@ -215,7 +214,6 @@ public class PDFBoxTable { PdfAsException { int rows = this.table.getRows().size(); rowHeights = new float[rows]; - addPadding = new boolean[rows]; for (int i = 0; i < rows; i++) { rowHeights[i] = 0; @@ -521,16 +519,12 @@ public class PDFBoxTable { try { byte[] linebytes = StringUtils.applyWinAnsiEncoding(lines[i]); for (int j = 0; j < linebytes.length; j++) { - float he = c.getHeight(linebytes[j]) / 1000 + float he = c.getBoundingBox().getHeight() / 1000 * fontSize; if (he > maxLineHeight) { maxLineHeight = he; } } - } catch (UnsupportedEncodingException e) { - logger.warn("failed to determine String height", e); - maxLineHeight = c.getFontDescriptor().getCapHeight() / 1000 - * fontSize; } catch (IOException e) { logger.warn("failed to determine String height", e); maxLineHeight = c.getFontDescriptor().getCapHeight() / 1000 diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PdfBoxStamper.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PdfBoxStamper.java index f89d53c5..acb75560 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PdfBoxStamper.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/PdfBoxStamper.java @@ -35,7 +35,7 @@ import at.gv.egiz.pdfas.lib.impl.status.PDFObject; import at.knowcenter.wag.egov.egiz.pdf.PositioningInstruction; import at.knowcenter.wag.egov.egiz.table.Table; -public class PdfBoxStamper implements IPDFStamper { +public class PdfBoxStamper implements IPDFStamper<PDFBOXObject> { // private static final Logger logger = LoggerFactory.getLogger(PdfBoxStamper.class); @@ -45,23 +45,12 @@ public class PdfBoxStamper implements IPDFStamper { // this.pdfBuilder = new PDVisibleSigBuilder(); } - public IPDFVisualObject createVisualPDFObject(PDFObject pdf, Table table) throws IOException { + public IPDFVisualObject createVisualPDFObject(PDFBOXObject pdfboxObject, Table table) throws IOException { try { - PDFBOXObject pdfboxObject = (PDFBOXObject)pdf; - return new PdfBoxVisualObject(table, pdf.getStatus().getSettings(), pdfboxObject); + return new PdfBoxVisualObject(table, pdfboxObject.getStatus().getSettings(), pdfboxObject); } catch (PdfAsException e) { throw new PdfAsWrappedIOException(e); } } - public byte[] writeVisualObject(IPDFVisualObject visualObject, - PositioningInstruction positioningInstruction, byte[] pdfData, - String placeholderName) throws PdfAsException { - return null; - } - - public void setSettings(ISettings settings) { - // not needed currently - } - } diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/StamperFactory.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/StamperFactory.java index 90561740..88a21c36 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/StamperFactory.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/StamperFactory.java @@ -2,6 +2,7 @@ package at.gv.egiz.pdfas.lib.impl.stamping.pdfbox2; import at.gv.egiz.pdfas.common.exceptions.PdfAsException; import at.gv.egiz.pdfas.common.settings.ISettings; +import at.gv.egiz.pdfas.lib.impl.pdfbox2.PDFBOXObject; import at.gv.egiz.pdfas.lib.impl.stamping.IPDFStamper; public class StamperFactory { @@ -9,14 +10,14 @@ public class StamperFactory { //public static final String DEFAULT_STAMPER_CLASS = "at.gv.egiz.pdfas.stmp.itext.ITextStamper"; public static final String DEFAULT_STAMPER_CLASS = "at.gv.egiz.pdfas.lib.impl.stamping.pdfbox2.PdfBoxStamper"; - public static IPDFStamper createDefaultStamper(ISettings settings) throws PdfAsException { + public static IPDFStamper<PDFBOXObject> createDefaultStamper(ISettings settings) throws PdfAsException { try { Class<?> cls = Class.forName(DEFAULT_STAMPER_CLASS); - Object st = cls.newInstance(); + Object st = cls.getDeclaredConstructor().newInstance(); if (!(st instanceof IPDFStamper)) throw new ClassCastException(); - IPDFStamper stamper = (IPDFStamper) st; - stamper.setSettings(settings); + @SuppressWarnings("unchecked") + IPDFStamper<PDFBOXObject> stamper = (IPDFStamper<PDFBOXObject>) st; return stamper; } catch (Throwable e) { throw new PdfAsException("error.pdf.stamp.10", e); diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/TableDrawUtils.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/TableDrawUtils.java index d49a6518..8df2ca59 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/TableDrawUtils.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox2/TableDrawUtils.java @@ -26,6 +26,7 @@ package at.gv.egiz.pdfas.lib.impl.stamping.pdfbox2; import java.awt.Color; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.Iterator; import java.util.Map; @@ -486,22 +487,18 @@ public class TableDrawUtils { float[] colsSizes = new float[max_cols]; if (origcolsSizes == null) { // set the column ratio for all columns to 1 - for (int cols_idx = 0; cols_idx < colsSizes.length; cols_idx++) { - colsSizes[cols_idx] = 1; - } + Arrays.fill(colsSizes, 1); } else { // set the column ratio for all columns to 1 - for (int cols_idx = 0; cols_idx < colsSizes.length; cols_idx++) { - colsSizes[cols_idx] = origcolsSizes[cols_idx]; - } + System.arraycopy(origcolsSizes, 0, colsSizes, 0, colsSizes.length); } // adapt float total = 0; - for (int cols_idx = 0; cols_idx < colsSizes.length; cols_idx++) { - total += colsSizes[cols_idx]; - } + for (float colsSize : colsSizes) { + total += colsSize; + } for (int cols_idx = 0; cols_idx < colsSizes.length; cols_idx++) { colsSizes[cols_idx] = (colsSizes[cols_idx] / total) @@ -510,9 +507,9 @@ public class TableDrawUtils { float sum = 0; - for (int cols_idx = 0; cols_idx < colsSizes.length; cols_idx++) { - sum += colsSizes[cols_idx]; - } + for (float colsSize : colsSizes) { + sum += colsSize; + } logger.debug("Table Col Sizes SUM {} Table Width {}", sum, abstractTable.getWidth()); @@ -521,6 +518,14 @@ public class TableDrawUtils { return colsSizes; } + private static void drawLine(PDPageContentStream stream, float startX, float startY, float endX, float endY) + throws IOException + { + stream.moveTo(startX, startY); + stream.lineTo(endX, endY); + stream.stroke(); + } + public static void drawBorder(PDPage page, PDPageContentStream contentStream, float x, float y, float width, float height, PDFBoxTable abstractTable, PDDocument doc, @@ -545,7 +550,7 @@ public class TableDrawUtils { // draw first line logger.debug("ROW LINE: {} {} {} {}", x_from, y_from, x_to, y_from); - contentStream.drawLine(x, y_from, x_to, y_from); + drawLine(contentStream, x, y_from, x_to, y_from); // Draw all row borders for (int i = 0; i < rows; i++) { @@ -554,7 +559,7 @@ public class TableDrawUtils { // Draw row border! logger.debug("ROW LINE: {} {} {} {}", x_from, y_from, x_to, y_from); - contentStream.drawLine(x, y_from, x_to, y_from); + drawLine(contentStream, x, y_from, x_to, y_from); } @@ -573,7 +578,7 @@ public class TableDrawUtils { logger.debug("COL LINE: {} {} {} {}", x_from, y_from, x_from, y_to); - contentStream.drawLine(x_from, y_from, x_from, y_to); + drawLine(contentStream, x_from, y_from, x_from, y_to); for (int j = 0; j < row.size(); j++) { Entry cell = (Entry) row.get(j); @@ -585,7 +590,7 @@ public class TableDrawUtils { } logger.debug("COL LINE: {} {} {} {}", x_from, y_from, x_from, y_to); - contentStream.drawLine(x_from, y_from, x_from, y_to); + drawLine(contentStream, x_from, y_from, x_from, y_to); } if (i + 1 < rows) { @@ -608,8 +613,9 @@ public class TableDrawUtils { try { if (abstractTable.getBGColor() != null) { contentStream.setNonStrokingColor(abstractTable.getBGColor()); - contentStream.fillRect(x, y, abstractTable.getWidth(), - abstractTable.getHeight()); + contentStream + .addRect(x, y, abstractTable.getWidth(), abstractTable.getHeight()); + contentStream.fill(); contentStream.setNonStrokingColor(Color.BLACK); } } catch (Throwable e) { @@ -623,13 +629,13 @@ public class TableDrawUtils { if ("true".equals(settings.getValue(TABLE_DEBUG))) { try { contentStream.setStrokingColor(Color.RED); - contentStream.drawLine(x, y, x + width, y); + drawLine(contentStream, x, y, x + width, y); contentStream.setStrokingColor(Color.BLUE); - contentStream.drawLine(x, y, x, y - height); + drawLine(contentStream, x, y, x, y - height); contentStream.setStrokingColor(Color.GREEN); - contentStream.drawLine(x + width, y, x + width, y - height); + drawLine(contentStream, x + width, y, x + width, y - height); contentStream.setStrokingColor(Color.ORANGE); - contentStream.drawLine(x, y - height, x + width, y - height); + drawLine(contentStream, x, y - height, x + width, y - height); contentStream.setStrokingColor(Color.BLACK); } catch (Throwable e) { @@ -643,15 +649,15 @@ public class TableDrawUtils { if ("true".equals(settings.getValue(TABLE_DEBUG))) { try { contentStream.setStrokingColor(Color.RED); - contentStream.drawLine(x, y, x + width, y); + drawLine(contentStream, x, y, x + width, y); contentStream.setStrokingColor(Color.BLUE); - contentStream.drawLine(x, y, x, y - height); + drawLine(contentStream, x, y, x, y - height); contentStream.setStrokingColor(Color.GREEN); - contentStream.drawLine(x + width, y, x + width, y - height); + drawLine(contentStream, x + width, y, x + width, y - height); contentStream.setStrokingColor(Color.ORANGE); - contentStream.drawLine(x, y - height, x + width, y - height); + drawLine(contentStream, x, y - height, x + width, y - height); contentStream.setStrokingColor(Color.MAGENTA); - contentStream.drawLine(x, y + (descent * (-1)) - height, x + width, y + (descent * (-1)) - height); + drawLine(contentStream, x, y + (descent * (-1)) - height, x + width, y + (descent * (-1)) - height); contentStream.setStrokingColor(Color.BLACK); } catch (Throwable e) { @@ -666,12 +672,12 @@ public class TableDrawUtils { if ("true".equals(settings.getValue(TABLE_DEBUG))) { try { contentStream.setStrokingColor(Color.RED); - contentStream.drawLine(x, y, x + padding, y - padding); - contentStream.drawLine(x + width, y, x + width - padding, y + drawLine(contentStream, x, y, x + padding, y - padding); + drawLine(contentStream, x + width, y, x + width - padding, y - padding); - contentStream.drawLine(x + width, y - height, x + width + drawLine(contentStream, x + width, y - height, x + width - padding, y - height + padding); - contentStream.drawLine(x, y - height, x + padding, y - height + drawLine(contentStream, x, y - height, x + padding, y - height + padding); contentStream.setStrokingColor(Color.BLACK); } catch (Throwable e) { diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/pdfbox2/PDFBOXVerifier.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/pdfbox2/PDFBOXVerifier.java index 1fab2793..0c943027 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/pdfbox2/PDFBOXVerifier.java +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/verify/pdfbox2/PDFBOXVerifier.java @@ -5,6 +5,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import at.gv.egiz.pdfas.lib.impl.verify.*; import org.apache.commons.io.IOUtils; import org.apache.pdfbox.cos.COSArray; import org.apache.pdfbox.cos.COSBase; @@ -21,10 +22,6 @@ import at.gv.egiz.pdfas.common.settings.ISettings; import at.gv.egiz.pdfas.lib.api.verify.VerifyParameter; import at.gv.egiz.pdfas.lib.api.verify.VerifyResult; import at.gv.egiz.pdfas.lib.impl.ErrorExtractor; -import at.gv.egiz.pdfas.lib.impl.verify.IVerifier; -import at.gv.egiz.pdfas.lib.impl.verify.IVerifyFilter; -import at.gv.egiz.pdfas.lib.impl.verify.VerifierDispatcher; -import at.gv.egiz.pdfas.lib.impl.verify.VerifyBackend; public class PDFBOXVerifier implements VerifyBackend { @@ -148,27 +145,18 @@ public class PDFBOXVerifier implements VerifyBackend { logger.debug("Filter: " + dict.getNameAsString("Filter")); logger.debug("Modified: " + dict.getNameAsString("M")); COSArray byteRange = (COSArray) dict.getDictionaryObject("ByteRange"); - + StringBuilder sb = new StringBuilder(); - int[] bytes = new int[byteRange.size()]; + final int[] bytes = new int[byteRange.size()]; for (int j = 0; j < byteRange.size(); j++) { bytes[j] = byteRange.getInt(j); sb.append(" " + bytes[j]); } - + logger.debug("ByteRange" + sb.toString()); COSString content = (COSString) dict.getDictionaryObject("Contents"); - ByteArrayOutputStream contentData = new ByteArrayOutputStream(); - for (int j = 0; j < bytes.length; j = j + 2) { - int offset = bytes[j]; - int length = bytes[j + 1]; - - contentData.write(inputData, offset, length); - } - contentData.close(); - IVerifyFilter verifyFilter = verifier.getVerifier(dict.getNameAsString("Filter"), dict.getNameAsString("SubFilter")); @@ -176,8 +164,8 @@ public class PDFBOXVerifier implements VerifyBackend { synchronized (lvlVerifier) { lvlVerifier.setConfiguration(parameter.getConfiguration()); if (verifyFilter != null) { - List<VerifyResult> results = verifyFilter.verify(contentData.toByteArray(), - content.getBytes(), parameter.getVerificationTime(), bytes, lvlVerifier); + List<VerifyResult> results = verifyFilter.verify(new SignatureInputData(inputData, bytes), + content.getBytes(), parameter.getVerificationTime(), lvlVerifier); if (results != null && !results.isEmpty()) { result.addAll(results); } diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/PDFPage.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/PDFPage.java index a3e68c95..c49d99a5 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/PDFPage.java +++ b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/PDFPage.java @@ -55,6 +55,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import lombok.Getter; +import lombok.Setter; import org.apache.commons.lang3.math.NumberUtils; import org.apache.pdfbox.contentstream.operator.Operator; import org.apache.pdfbox.contentstream.operator.OperatorProcessor; @@ -127,8 +129,21 @@ public class PDFPage extends PDFTextStripper{ /** * The path currently being constructed. - */ - private GeneralPath currentPath = new GeneralPath(); + * -- SETTER -- + * Sets the current path. + * + * + * -- GETTER -- + * Returns the path currently being constructed. + * + @param currentPath + * The new current path. + * @return The path currently being constructed. + + */ + @Getter + @Setter + private GeneralPath currentPath = new GeneralPath(); private boolean legacy40; @@ -155,8 +170,7 @@ public class PDFPage extends PDFTextStripper{ this.effectivePageHeight = effectivePageHeight; OperatorProcessor newInvoke = new MyInvoke(this); - newInvoke.setContext(this); - this.registerOperatorProcessor("Do", newInvoke); + this.addOperator(newInvoke); if (!legacy32) { registerCustomPathOperators(); @@ -172,32 +186,26 @@ public class PDFPage extends PDFTextStripper{ private void registerCustomPathOperators() { // *** path construction - this.registerOperatorProcessor("m", new MoveTo(this)); - this.registerOperatorProcessor("l", new LineTo(this)); - this.registerOperatorProcessor("c", new CurveTo(this)); - this.registerOperatorProcessor("y", - new CurveToReplicateFinalPoint(this)); - this.registerOperatorProcessor("v", new CurveToReplicateInitialPoint( - this)); - this.registerOperatorProcessor("h", new ClosePath(this)); + this.addOperator(new MoveTo(this)); + this.addOperator(new LineTo(this)); + this.addOperator(new CurveTo(this)); + this.addOperator(new CurveToReplicateFinalPoint(this)); + this.addOperator(new CurveToReplicateInitialPoint(this)); + this.addOperator(new ClosePath(this)); // *** path painting // "S": stroke path - this.registerOperatorProcessor("S", new StrokePath(this)); - this.registerOperatorProcessor("s", new CloseAndStrokePath(this)); - this.registerOperatorProcessor("f", - new FillPathNonZeroWindingNumberRule(this)); - this.registerOperatorProcessor("F", - new FillPathNonZeroWindingNumberRule(this)); - this.registerOperatorProcessor("f*", new FillPathEvenOddRule(this)); - this.registerOperatorProcessor("b", new CloseFillNonZeroAndStrokePath( - this)); - this.registerOperatorProcessor("B", new FillNonZeroAndStrokePath(this)); - this.registerOperatorProcessor("b*", new CloseFillEvenOddAndStrokePath( - this)); - this.registerOperatorProcessor("B*", new FillEvenOddAndStrokePath(this)); - this.registerOperatorProcessor("n", new EndPath(this)); + this.addOperator(new StrokePath(this)); + this.addOperator(new CloseAndStrokePath(this)); + this.addOperator(new FillPathNonZeroWindingNumberRule(this, true)); + this.addOperator(new FillPathNonZeroWindingNumberRule(this, false)); + this.addOperator(new FillPathEvenOddRule(this)); + this.addOperator(new CloseFillNonZeroAndStrokePath(this)); + this.addOperator(new FillNonZeroAndStrokePath(this)); + this.addOperator(new CloseFillEvenOddAndStrokePath(this)); + this.addOperator(new FillEvenOddAndStrokePath(this)); + this.addOperator(new EndPath(this)); // Note: The graphic context // (org.pdfbox.pdmodel.graphics.PDGraphicsState) of the underlying @@ -209,26 +217,7 @@ public class PDFPage extends PDFTextStripper{ } - /** - * Returns the path currently being constructed. - * - * @return The path currently being constructed. - */ - public GeneralPath getCurrentPath() { - return currentPath; - } - - /** - * Sets the current path. - * - * @param currentPath - * The new current path. - */ - public void setCurrentPath(GeneralPath currentPath) { - this.currentPath = currentPath; - } - - /** + /** * Registers a rectangle that bounds the path currently being drawn. * * @param bounds @@ -448,8 +437,8 @@ public class PDFPage extends PDFTextStripper{ PDXObject xobject = context.getResources().getXObject(name); - PDStream stream = xobject.getPDStream(); - COSStream cos_stream = stream.getStream(); + PDStream stream = xobject.getStream(); + COSStream cos_stream = stream.getCOSObject(); COSName subtype = (COSName) cos_stream .getDictionaryObject(COSName.SUBTYPE); @@ -550,8 +539,7 @@ public class PDFPage extends PDFTextStripper{ @Override public String getName() { - // TODO Auto-generated method stub - return null; + return "Do"; } } diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/ClosePath.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/ClosePath.java index 50b3b4d0..098ce8f6 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/ClosePath.java +++ b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/ClosePath.java @@ -91,8 +91,7 @@ public class ClosePath extends PathConstructionOperatorProcessor { @Override public String getName() { - // TODO Auto-generated method stub - return null; + return "h"; } } diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/CurveTo.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/CurveTo.java index da1288d3..e6b76400 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/CurveTo.java +++ b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/CurveTo.java @@ -87,9 +87,9 @@ public class CurveTo extends PathConstructionOperatorProcessor { COSNumber x3 = (COSNumber) operands.get(4); COSNumber y3 = (COSNumber) operands.get(5); - Point2D p1 = transform(x1.doubleValue(), y1.doubleValue()); - Point2D p2 = transform(x2.doubleValue(), y2.doubleValue()); - Point2D p3 = transform(x3.doubleValue(), y3.doubleValue()); + Point2D p1 = transform(x1.floatValue(), y1.floatValue()); + Point2D p2 = transform(x2.floatValue(), y2.floatValue()); + Point2D p3 = transform(x3.floatValue(), y3.floatValue()); pdfPage.getCurrentPath().curveTo( (float) p1.getX(), (float) p1.getY(), @@ -108,8 +108,7 @@ public class CurveTo extends PathConstructionOperatorProcessor { @Override public String getName() { - // TODO Auto-generated method stub - return null; + return "c"; } } diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/CurveToReplicateFinalPoint.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/CurveToReplicateFinalPoint.java index 458e8b3e..86c95c17 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/CurveToReplicateFinalPoint.java +++ b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/CurveToReplicateFinalPoint.java @@ -85,8 +85,8 @@ public class CurveToReplicateFinalPoint extends PathConstructionOperatorProcesso COSNumber x3 = (COSNumber) operands.get(2); COSNumber y3 = (COSNumber) operands.get(3); - Point2D p1 = transform(x1.doubleValue(), y1.doubleValue()); - Point2D p3 = transform(x3.doubleValue(), y3.doubleValue()); + Point2D p1 = transform(x1.floatValue(), y1.floatValue()); + Point2D p3 = transform(x3.floatValue(), y3.floatValue()); pdfPage.getCurrentPath().curveTo( (float) p1.getX(), (float) p1.getY(), @@ -105,8 +105,7 @@ public class CurveToReplicateFinalPoint extends PathConstructionOperatorProcesso @Override public String getName() { - // TODO Auto-generated method stub - return null; + return "y"; } } diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/CurveToReplicateInitialPoint.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/CurveToReplicateInitialPoint.java index d3a4e5e3..91c90589 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/CurveToReplicateInitialPoint.java +++ b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/CurveToReplicateInitialPoint.java @@ -86,8 +86,8 @@ public class CurveToReplicateInitialPoint extends PathConstructionOperatorProces COSNumber y3 = (COSNumber) operands.get(3); Point2D currentPoint = pdfPage.getCurrentPath().getCurrentPoint(); - Point2D p2 = transform(x2.doubleValue(), y2.doubleValue()); - Point2D p3 = transform(x3.doubleValue(), y3.doubleValue()); + Point2D p2 = transform(x2.floatValue(), y2.floatValue()); + Point2D p3 = transform(x3.floatValue(), y3.floatValue()); pdfPage.getCurrentPath().curveTo( (float)currentPoint.getX(), (float)currentPoint.getY(), @@ -107,8 +107,7 @@ public class CurveToReplicateInitialPoint extends PathConstructionOperatorProces @Override public String getName() { - // TODO Auto-generated method stub - return null; + return "v"; } } diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/LineTo.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/LineTo.java index a3bee751..94fbbbb0 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/LineTo.java +++ b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/LineTo.java @@ -80,7 +80,7 @@ public class LineTo extends PathConstructionOperatorProcessor { COSNumber x = (COSNumber) operands.get(0); COSNumber y = (COSNumber) operands.get(1); - Point2D p = transform(x.doubleValue(), y.doubleValue()); + Point2D p = transform(x.floatValue(), y.floatValue()); pdfPage.getCurrentPath().lineTo((float) p.getX(), (float) p.getY()); @@ -94,8 +94,7 @@ public class LineTo extends PathConstructionOperatorProcessor { @Override public String getName() { - // TODO Auto-generated method stub - return null; + return "l"; } } diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/MoveTo.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/MoveTo.java index 624405f8..3fe123ea 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/MoveTo.java +++ b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/construction/MoveTo.java @@ -67,7 +67,7 @@ import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.PathConstructionOpe * @see "PDF 1.7 specification, Section 8.5.2 'Path Construction Operators'" * @author PdfBox, modified by Datentechnik Innovation GmbH */ -public class MoveTo extends PathConstructionOperatorProcessor{ +public class MoveTo extends PathConstructionOperatorProcessor{ public MoveTo(PDFPage context) { super(context); @@ -82,7 +82,7 @@ public class MoveTo extends PathConstructionOperatorProcessor{ COSNumber x = (COSNumber) operands.get(0); COSNumber y = (COSNumber) operands.get(1); - Point2D p = transform(x.doubleValue(), y.doubleValue()); + Point2D p = transform(x.floatValue(), y.floatValue()); pdfPage.getCurrentPath().moveTo((float) p.getX(), (float) p.getY()); @@ -97,8 +97,7 @@ public class MoveTo extends PathConstructionOperatorProcessor{ @Override public String getName() { - // TODO Auto-generated method stub - return null; + return "m"; } } diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/CloseAndStrokePath.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/CloseAndStrokePath.java index 488819ac..37182ddc 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/CloseAndStrokePath.java +++ b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/CloseAndStrokePath.java @@ -82,8 +82,7 @@ public class CloseAndStrokePath extends PathPaintingOperatorProcessor { @Override public String getName() { - // TODO Auto-generated method stub - return null; + return "s"; } } diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/CloseFillEvenOddAndStrokePath.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/CloseFillEvenOddAndStrokePath.java index 41078e40..597084e8 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/CloseFillEvenOddAndStrokePath.java +++ b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/CloseFillEvenOddAndStrokePath.java @@ -83,8 +83,7 @@ public class CloseFillEvenOddAndStrokePath extends PathPaintingOperatorProcessor @Override public String getName() { - // TODO Auto-generated method stub - return null; + return "b*"; } } diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/CloseFillNonZeroAndStrokePath.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/CloseFillNonZeroAndStrokePath.java index ef297ca9..8ab72438 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/CloseFillNonZeroAndStrokePath.java +++ b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/CloseFillNonZeroAndStrokePath.java @@ -83,8 +83,7 @@ public class CloseFillNonZeroAndStrokePath extends PathPaintingOperatorProcessor @Override public String getName() { - // TODO Auto-generated method stub - return null; + return "b"; } } diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/EndPath.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/EndPath.java index 0001d7e5..a43df0a2 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/EndPath.java +++ b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/EndPath.java @@ -91,8 +91,7 @@ public class EndPath extends PathPaintingOperatorProcessor { @Override public String getName() { - // TODO Auto-generated method stub - return null; + return "n"; } } diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillEvenOddAndStrokePath.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillEvenOddAndStrokePath.java index 12a4b037..77e65666 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillEvenOddAndStrokePath.java +++ b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillEvenOddAndStrokePath.java @@ -95,8 +95,7 @@ public class FillEvenOddAndStrokePath extends PathPaintingOperatorProcessor { @Override public String getName() { - // TODO Auto-generated method stub - return null; + return "B*"; } } diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillNonZeroAndStrokePath.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillNonZeroAndStrokePath.java index a6fca720..9a1f0b69 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillNonZeroAndStrokePath.java +++ b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillNonZeroAndStrokePath.java @@ -95,8 +95,7 @@ public class FillNonZeroAndStrokePath extends PathPaintingOperatorProcessor { @Override public String getName() { - // TODO Auto-generated method stub - return null; + return "B"; } } diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillPathEvenOddRule.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillPathEvenOddRule.java index 10eeae03..092ba751 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillPathEvenOddRule.java +++ b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillPathEvenOddRule.java @@ -94,8 +94,7 @@ public class FillPathEvenOddRule extends PathPaintingOperatorProcessor { @Override public String getName() { - // TODO Auto-generated method stub - return null; + return "f*"; } } diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillPathNonZeroWindingNumberRule.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillPathNonZeroWindingNumberRule.java index ca8922fc..3b8d13f9 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillPathNonZeroWindingNumberRule.java +++ b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/FillPathNonZeroWindingNumberRule.java @@ -68,9 +68,11 @@ import at.knowcenter.wag.egov.egiz.pdfbox2.pdf.operator.path.PathPaintingOperato public class FillPathNonZeroWindingNumberRule extends PathPaintingOperatorProcessor { private Log log = LogFactory.getLog(getClass()); + private final boolean lowercase; - public FillPathNonZeroWindingNumberRule(PDFPage context) { + public FillPathNonZeroWindingNumberRule(PDFPage context, boolean lowercase) { super(context); + this.lowercase = lowercase; } @Override @@ -95,8 +97,7 @@ public class FillPathNonZeroWindingNumberRule extends PathPaintingOperatorProces @Override public String getName() { - // TODO Auto-generated method stub - return null; + return lowercase ? "f" : "F"; } } diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/StrokePath.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/StrokePath.java index 3dc0965e..ef9fc24b 100644 --- a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/StrokePath.java +++ b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/operator/path/painting/StrokePath.java @@ -93,8 +93,7 @@ public class StrokePath extends PathPaintingOperatorProcessor { @Override public String getName() { - // TODO Auto-generated method stub - return null; + return "S"; } } diff --git a/pdf-as-pdfbox-2/src/test/java/at/gv/egiz/pdfas/lib/testpdfbox/PDFBoxPlaceholderExtractorTest.java b/pdf-as-pdfbox-2/src/test/java/at/gv/egiz/pdfas/lib/testpdfbox/PDFBoxPlaceholderExtractorTest.java index 8bd733c3..c110a8d4 100644 --- a/pdf-as-pdfbox-2/src/test/java/at/gv/egiz/pdfas/lib/testpdfbox/PDFBoxPlaceholderExtractorTest.java +++ b/pdf-as-pdfbox-2/src/test/java/at/gv/egiz/pdfas/lib/testpdfbox/PDFBoxPlaceholderExtractorTest.java @@ -1,8 +1,6 @@ package at.gv.egiz.pdfas.lib.testpdfbox; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.*; import java.io.IOException; import java.util.List; @@ -30,7 +28,6 @@ public class PDFBoxPlaceholderExtractorTest { List<String> listOfPlaceHolders = getPlaceHolders("/data/platzhalter_en_de_test.pdf"); assertNotNull(listOfPlaceHolders); assertTrue(listOfPlaceHolders.isEmpty()); - } @Test @@ -51,22 +48,19 @@ public class PDFBoxPlaceholderExtractorTest { assertNotNull(listOfPlaceHolders); } - - private static List<String> getPlaceHolders(String filePath) throws IOException { - final PDDocument doc = PDDocument.load(PDFBoxPlaceholderExtractorTest.class.getResourceAsStream( - filePath)); - final List<String> results = SignatureFieldsAndPlaceHolderExtractor.findEmptySignatureFields(doc); - return results; + private static List<String> getPlaceHolders(String filePath) throws IOException { + try (final PDDocument doc = PDDocument.load(PDFBoxPlaceholderExtractorTest.class.getResourceAsStream( + filePath))) { + return SignatureFieldsAndPlaceHolderExtractor.findEmptySignatureFields(doc); + } } private static SignaturePlaceholderData getNextSignaturePlaceHolder(String filePath) throws IOException { - final PDDocument doc = PDDocument.load(PDFBoxPlaceholderExtractorTest.class.getResourceAsStream( - filePath)); - final SignaturePlaceholderData result = - SignatureFieldsAndPlaceHolderExtractor.getNextUnusedSignaturePlaceHolder(doc); - return result; - + try (final PDDocument doc = PDDocument.load(PDFBoxPlaceholderExtractorTest.class.getResourceAsStream( + filePath))) { + return SignatureFieldsAndPlaceHolderExtractor.getNextUnusedSignaturePlaceHolder(doc); + } } } diff --git a/pdf-as-pdfbox-2/src/test/java/at/gv/egiz/pdfas/lib/testpdfbox/TTFFontTest.java b/pdf-as-pdfbox-2/src/test/java/at/gv/egiz/pdfas/lib/testpdfbox/TTFFontTest.java index ca45354b..78a89708 100644 --- a/pdf-as-pdfbox-2/src/test/java/at/gv/egiz/pdfas/lib/testpdfbox/TTFFontTest.java +++ b/pdf-as-pdfbox-2/src/test/java/at/gv/egiz/pdfas/lib/testpdfbox/TTFFontTest.java @@ -5,6 +5,7 @@ import java.util.Iterator; import java.util.List; import org.apache.pdfbox.cos.COSBase; +import org.apache.pdfbox.cos.COSDictionary; import org.apache.pdfbox.cos.COSName; import org.apache.pdfbox.cos.COSObject; import org.apache.pdfbox.pdmodel.PDDocument; @@ -21,9 +22,9 @@ public class TTFFontTest { while(cosObjectIt.hasNext()) { COSObject cosObject = cosObjectIt.next(); - COSBase subType = cosObject.getItem(COSName.SUBTYPE); - COSBase baseFont = cosObject.getItem(COSName.BASE_FONT); - COSBase aTest = cosObject.getItem(COSName.A); + COSBase subType = ((COSDictionary)cosObject.getObject()).getItem(COSName.SUBTYPE); + COSBase baseFont = ((COSDictionary)cosObject.getObject()).getItem(COSName.BASE_FONT); + COSBase aTest = ((COSDictionary)cosObject.getObject()).getItem(COSName.A); System.out.println(aTest); diff --git a/pdf-as-pdfbox-3/build.gradle.kts b/pdf-as-pdfbox-3/build.gradle.kts new file mode 100644 index 00000000..c1888ac9 --- /dev/null +++ b/pdf-as-pdfbox-3/build.gradle.kts @@ -0,0 +1,39 @@ +plugins { + kotlin("jvm") version "2.2.0" +} + +tasks.jar { + manifest.attributes["Implementation-Title"] = "PDF-AS PDFBOX 3 Backend" +} + +repositories { + mavenLocal() + mavenCentral() +} + +dependencies { + implementation(project(":pdf-as-lib")) + val pdfboxVersion = project.ext["pdfboxVersion"] as String + api("org.apache.pdfbox", "pdfbox", pdfboxVersion) + implementation("org.apache.pdfbox", "pdfbox-tools", pdfboxVersion) + implementation("org.apache.pdfbox", "xmpbox", pdfboxVersion) + implementation("org.apache.pdfbox", "preflight", pdfboxVersion) + + testImplementation("ch.qos.logback", "logback-classic", project.ext["logbackVersion"] as String) + testImplementation(project(":signature-standards:sigs-pades")) + testImplementation(project(":signature-standards:sigs-pkcs7detached")) + testImplementation(group = "org.zeroturnaround", name = "zt-zip", version = project.ext["ztZipVersion"] as String) +} + +tasks.register("releases", Copy::class) { + dependsOn(tasks.jar, tasks.sourcesJar) + from(tasks.jar.map { it.outputs.files }) + into(rootDir.resolve("releases/$version")) +} + +tasks.test { + useJUnit() +} +kotlin { + jvmToolchain(17) +}
\ No newline at end of file diff --git a/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/pdfbox3/PDFBOXBackend.kt b/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/pdfbox3/PDFBOXBackend.kt new file mode 100644 index 00000000..f4159961 --- /dev/null +++ b/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/pdfbox3/PDFBOXBackend.kt @@ -0,0 +1,25 @@ +package at.gv.egiz.pdfas.lib.impl.pdfbox3 + +import at.gv.egiz.pdfas.lib.backend.PDFASBackend +import at.gv.egiz.pdfas.lib.impl.signing.pdfbox3.PDFBOXSigner +import at.gv.egiz.pdfas.lib.impl.verify.pdfbox3.PDFBOXVerifier +import org.slf4j.LoggerFactory + +class PDFBOXBackend : PDFASBackend { + companion object { + const val NAME = "PDFBOX_3_BACKEND" + private val logger = LoggerFactory.getLogger(PDFBOXBackend::class.java) + init { + logger.info(" +++++++++++++++++++++++++++++++++++++++++++++++++++++") + logger.info(" + PDFBOX 3 Backend is ready to go") + logger.info(" + Using PDFBOX version {}", org.apache.pdfbox.util.Version.getVersion()) + logger.info(" +++++++++++++++++++++++++++++++++++++++++++++++++++++") + } + } + + override fun getName() = NAME + override fun usedAsDefault() = true + override fun getPdfSigner() = PDFBOXSigner + override fun getPlaceholderExtractor() = PDFBoxPlaceholderExtractor + override fun getVerifier() = PDFBOXVerifier +}
\ No newline at end of file diff --git a/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/pdfbox3/PDFBOXObject.kt b/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/pdfbox3/PDFBOXObject.kt new file mode 100644 index 00000000..4cb4086b --- /dev/null +++ b/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/pdfbox3/PDFBOXObject.kt @@ -0,0 +1,75 @@ +package at.gv.egiz.pdfas.lib.impl.pdfbox3 + +import at.gv.egiz.pdfas.lib.impl.status.OperationStatus +import at.gv.egiz.pdfas.lib.impl.status.PDFObject +import org.apache.pdfbox.Loader +import org.apache.pdfbox.pdmodel.PDDocument +import org.apache.pdfbox.pdmodel.font.PDFont +import org.apache.pdfbox.pdmodel.font.PDType0Font +import org.apache.pdfbox.pdmodel.font.PDType1Font +import org.apache.pdfbox.pdmodel.font.Standard14Fonts +import org.slf4j.LoggerFactory +import java.io.IOException +import java.nio.file.Path +import jakarta.activation.DataSource + +class PDFBOXObject(status: OperationStatus) : PDFObject(status) { + companion object { private val logger = LoggerFactory.getLogger(PDFBOXObject::class.java) } + public val settings get() = status.settings + public var document: PDDocument? = null; private set + + override fun close() { + try { + document?.close() + } finally { + document = null + } + } + + override fun setOriginalDocument(originalDocument: DataSource) { + this.originalDocument = originalDocument + close() + synchronized(PDDocument::class.java) { + // TODO: can we somehow make this leverage random access + document = Loader.loadPDF(originalDocument.inputStream.readAllBytes()) + } + } + + override fun getPDFVersion() = + document!!.document.version.toString() + + fun generateFont(fontType: String, fontDerivative: String?) = when { + fontType.startsWith("TTF:") -> generateTTFFont(fontType) + else -> getCachedFont(fontType, fontDerivative) + } + + private val ttfFontCache: MutableMap<Path, PDFont> = mutableMapOf() + private fun generateTTFFont(fontType: String): PDFont { + require(fontType.startsWith("TTF:")) + val fontPath = Path.of(settings.workingDirectory, "fonts", fontType.substring(4)) + logger.debug("Font from: \"{}\".", fontPath) + return ttfFontCache.computeIfAbsent(fontPath) { + PDType0Font.load(document, it.toFile()) + } + } + + private fun getCachedFont(fontType: String, fontDerivative: String?): PDFont { + val fontDescriptor = "$fontType:${fontDerivative ?: "NORMAL"}" + return PDType1Font(DEFAULT_FONT_DESCRIPTORS[fontDescriptor] ?: run { + logger.error("Invalid font descriptor: \"$fontDescriptor\"") + logger.warn("Available fonts:") + DEFAULT_FONT_DESCRIPTORS.forEach { (descriptor, _) -> logger.warn(" - $descriptor") } + throw IOException("Invalid font descriptor: \"$fontDescriptor\"") + }) + } +} + +private val DEFAULT_FONT_DESCRIPTORS = mapOf( + "HELVETICA:NORMAL" to Standard14Fonts.FontName.HELVETICA, + "HELVETICA:BOLD" to Standard14Fonts.FontName.HELVETICA_BOLD, + "COURIER:NORMAL" to Standard14Fonts.FontName.COURIER, + "COURIER:BOLD" to Standard14Fonts.FontName.COURIER_BOLD, + "TIMES_ROMAN:NORMAL" to Standard14Fonts.FontName.TIMES_ROMAN, + "TIMES_ROMAN:BOLD" to Standard14Fonts.FontName.TIMES_BOLD, + "TIMES_ROMAN:ITALIC" to Standard14Fonts.FontName.TIMES_ITALIC, +) diff --git a/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/pdfbox3/Placeholder.kt b/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/pdfbox3/Placeholder.kt new file mode 100644 index 00000000..b95407da --- /dev/null +++ b/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/pdfbox3/Placeholder.kt @@ -0,0 +1,321 @@ +package at.gv.egiz.pdfas.lib.impl.pdfbox3 + +import at.gv.egiz.pdfas.common.exceptions.PDFIOException +import at.gv.egiz.pdfas.common.exceptions.PdfAsException +import at.gv.egiz.pdfas.common.exceptions.PlaceholderExtractionException +import at.gv.egiz.pdfas.lib.impl.placeholder.PlaceholderExtractor +import at.gv.egiz.pdfas.lib.impl.placeholder.PlaceholderExtractorConstants +import at.gv.egiz.pdfas.lib.impl.placeholder.SignaturePlaceholderData +import at.gv.egiz.pdfas.lib.impl.status.PDFObject +import at.knowcenter.wag.egov.egiz.pdf.TablePos +import com.google.zxing.BarcodeFormat +import com.google.zxing.BinaryBitmap +import com.google.zxing.DecodeHintType +import com.google.zxing.MultiFormatReader +import com.google.zxing.NotFoundException +import com.google.zxing.ReaderException +import com.google.zxing.client.j2se.BufferedImageLuminanceSource +import com.google.zxing.common.HybridBinarizer +import org.apache.pdfbox.contentstream.PDFStreamEngine +import org.apache.pdfbox.contentstream.operator.OperatorProcessor +import org.apache.pdfbox.cos.COSBase +import org.apache.pdfbox.cos.COSName +import org.apache.pdfbox.pdmodel.PDDocument +import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject +import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDPropBuild +import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDPropBuildDataDict +import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature +import org.apache.pdfbox.pdmodel.interactive.form.PDSignatureField +import org.apache.pdfbox.util.Matrix +import org.slf4j.LoggerFactory +import java.awt.geom.AffineTransform +import java.io.IOException +import java.lang.reflect.InvocationTargetException +import java.util.Hashtable +import java.util.Properties +import java.util.Vector +import kotlin.math.ceil +import kotlin.math.floor + + +object PDFBoxPlaceholderExtractor : PlaceholderExtractor { + override fun extract( + pdfObject: PDFObject, + placeholderID: String?, + matchMode: Int + ): SignaturePlaceholderData? { + if (pdfObject !is PDFBOXObject) throw PdfAsException("Invalid state") + try { + return Extractor().extract(pdfObject.document!!, placeholderID, matchMode) + } catch (e: Throwable) { + when (e) { + is IOException, is ClassNotFoundException, is InstantiationException, + is IllegalAccessException, is NoSuchMethodException, is InvocationTargetException + -> throw PDFIOException("error.pdf.io.04", e) + else + -> throw e + } + } + } + + @JvmStatic + fun findEmptySignatureFields(doc: PDDocument) = + doc.documentCatalog.acroForm?.fields?.asSequence() + ?.filterIsInstance<PDSignatureField>() + ?.filter { it.signature == null } + ?.mapNotNull { it.partialName } + ?.toList() + ?: emptyList() + + /** + * Returns the next unused signature placeholder + * + * @param doc The document to be searched for signature placeholders + * @return The next unused signature placeholder, or `null` + */ + // needed for PDF-Over + @JvmStatic + fun getNextUnusedSignaturePlaceholder(doc: PDDocument) = + Extractor().extract( + doc, "1", + PlaceholderExtractorConstants.PLACEHOLDER_MATCH_MODE_SORTED) + + class Extractor : PDFStreamEngine() { + companion object { + private val logger = LoggerFactory.getLogger(Extractor::class.java) + } + init { + Properties().apply { + load(PDFBoxPlaceholderExtractor::class.java.classLoader + .getResourceAsStream("placeholder/pdfbox-reader-2.properties")) + }.values.forEach { + val klass = Class.forName(it as String) + addOperator(klass.getDeclaredConstructor().newInstance() as OperatorProcessor) + } + } + var currentPageNumber: Int = 0 + val placeholders = mutableListOf<SignaturePlaceholderData>() + val seenPlaceholderNames = mutableSetOf<String>() + lateinit var placeholderNamesOfExistingSignatures: Set<String> + fun extract(document: PDDocument, targetPlaceholderID: String?, matchMode: Int): SignaturePlaceholderData? { + placeholderNamesOfExistingSignatures = + document.signatureDictionaries.asSequence() + .map { it.signaturePlaceholderId } + .filterNotNull() + .toSet() + + document.pages.forEachIndexed { i, page -> + try { + currentPageNumber = i+1 + val placeholdersBeforePage = placeholders.size + if ((page.contents != null) && (page.resources != null) && (page.contentStreams != null)) { + // this causes page processing into processOperator + processPage(page) + } + + logger.debug("Searching for requested placeholder {} (match mode {}) in page {} only...", + targetPlaceholderID, matchMode, currentPageNumber) + + // process only placeholders that were found in the current page to see if we find an exact match + (placeholdersBeforePage..<placeholders.size).forEach { i -> + val placeholder = placeholders[i] + if (targetPlaceholderID != null) { + if (placeholder.id != null && matchPlaceholderId(targetPlaceholderID, placeholder.id)) { + return placeholder + } + } else { + if (matchMode != PlaceholderExtractorConstants.PLACEHOLDER_MATCH_MODE_SORTED && placeholder.id == null) { + return placeholder + } + } + } + } catch (e: Throwable) { + throw PDFIOException("error.pdf.io.04", e) + } + } + + if (matchMode == PlaceholderExtractorConstants.PLACEHOLDER_MATCH_MODE_STRICT) { + throw PlaceholderExtractionException("error.pdf.stamp.09") + } + + if (placeholders.isEmpty()) return null + + logger.debug("Searching for requested placeholder {} (match mode {}) in entire document...", + targetPlaceholderID, matchMode) + + if (matchMode == PlaceholderExtractorConstants.PLACEHOLDER_MATCH_MODE_SORTED) { + // get the placeholder with the lowest id + var currentPlaceholder: SignaturePlaceholderData? = null + placeholders.forEach { placeholder -> + if (placeholder.id == null) return@forEach + if (currentPlaceholder == null || placeholderIdLessThan(placeholder.id!!, currentPlaceholder.id!!)) { + currentPlaceholder = placeholder + } + } + if (currentPlaceholder != null) return currentPlaceholder + } + + // get any placeholder with id null + placeholders.firstOrNull { it.id == null }?.let { return it } + + // lenient mode: get any placeholder even if it has an id + if (matchMode == PlaceholderExtractorConstants.PLACEHOLDER_MATCH_MODE_LENIENT) return placeholders.first() + + // give up + return null + } + + private fun matchPlaceholderId(targetId: String, actualId: String): Boolean { + try { + val targetInt = Integer.parseInt(targetId) + val actualInt = Integer.parseInt(actualId) + return (targetInt == actualInt) + } catch (_: NumberFormatException) { + logger.trace("Cannot parse identifiers ({},{}) as numbers, comparing as strings", targetId, actualId) + return targetId.equals(actualId, ignoreCase = true) + } + } + + private fun placeholderIdLessThan(left: String, right: String): Boolean { + try { + val leftInt = Integer.parseInt(left) + val rightInt = Integer.parseInt(right) + return (leftInt < rightInt) + } catch (_: NumberFormatException) { + logger.trace("placeholderIdLessThan: falling back to String compare") + return left.compareTo(right, true) < 0 + } + } + + private fun detectQRCodeFromImage(imageObj: PDImageXObject): SignaturePlaceholderData? { + val image = imageObj.image ?: run { + logger.info("Unable to extract image for QR code analysis. {} not supported. Add additional JAI Image filters to your classpath. Refer to https://jai.dev.java.net. Skipping image.", + imageObj.suffix?.let { "${it.uppercase()} images"} ?: "Image type") + return null + } + if (image.height < 10 || image.width < 10) { + logger.debug("Image too small for QR code. Skipping.") + return null + } + + val bitmap = BinaryBitmap(HybridBinarizer(BufferedImageLuminanceSource(image))) + val result = try { + MultiFormatReader().decode(bitmap, + Hashtable<DecodeHintType, Any>().apply { + put(DecodeHintType.POSSIBLE_FORMATS, Vector<BarcodeFormat>().apply { + add(BarcodeFormat.QR_CODE) + }) + } + ).text ?: return null + } catch (e: ReaderException) { + if (e !is NotFoundException) { + logger.info("Failed to decode image", e) + } + return null + } catch (e: ArrayIndexOutOfBoundsException) { + logger.info("Failed to decode image. Probably a zxing bug.", e) + return null + } + + if (!result.startsWith(PlaceholderExtractorConstants.QR_PLACEHOLDER_IDENTIFIER)) { + logger.warn("QR-Code found but does not start with \"${PlaceholderExtractorConstants.QR_PLACEHOLDER_IDENTIFIER}\". Ignoring.") + return null + } + + var profile: String? = null + var type: String? = null + var sigKey: String? = null + var id: String? = null + result.splitToSequence(';').drop(1).forEach { + val parts = it.split('=') + if (parts.size != 2) { + logger.debug("Invalid parameter in placeholder data: $it") + return@forEach + } + when (parts[0].lowercase()) { + SignaturePlaceholderData.ID_KEY -> id = parts[1] + SignaturePlaceholderData.PROFILE_KEY -> profile = parts[1] + SignaturePlaceholderData.SIG_KEY_KEY -> sigKey = parts[1] + SignaturePlaceholderData.TYPE_KEY -> type = parts[1] + } + } + return SignaturePlaceholderData(profile, type, sigKey, id) + } + + private fun buildUniqueObjectName(objectName: COSName) = + sequence { + val baseName = objectName.name + yield(baseName) + yieldAll((1..Int.MAX_VALUE).asSequence().map { i -> "${baseName}_${i}"}) + }.first { !seenPlaceholderNames.contains(it) } + + override fun processOperator(operation: String, arguments: List<COSBase>) { + run { + if (operation != "Do") return@run + val objectName = arguments[0] as COSName + val xObject = resources.getXObject(objectName) + if (xObject !is PDImageXObject) return@run + + val signaturePlaceholderData = detectQRCodeFromImage(xObject) ?: return@run + + val placeholderName = buildUniqueObjectName(objectName) + seenPlaceholderNames.add(placeholderName) + if (placeholderNamesOfExistingSignatures.contains(placeholderName)) { + logger.debug("Not processing placeholder {}, there is already a corresponding signature", placeholderName) + return@run + } + + val page = this.currentPage + val pageRotation = page.rotation % 360 + val rotationInverseMatrix = Matrix( + AffineTransform().apply { + setToRotation(Math.toRadians(pageRotation.toDouble())) + invert() + } + ) + val unrotatedTransformMatrix = this.graphicsState.currentTransformationMatrix.multiply(rotationInverseMatrix) + + logger.debug("Page height: {}", page.cropBox.height) + logger.debug("Page width: {}", page.cropBox.width) + + // TODO i've taken this from SignaturePlaceholderExtractor in the pdfbox 2 module, but this feels suspect + var x = unrotatedTransformMatrix.translateX + var y = unrotatedTransformMatrix.translateY + unrotatedTransformMatrix.scaleY + + when (pageRotation) { + 90 -> { + y += page.cropBox.width + } + 180 -> { + x += page.cropBox.width + y += page.cropBox.height + } + 270 -> { + x += page.cropBox.height + } + } + + val w = unrotatedTransformMatrix.scaleX + + signaturePlaceholderData.tablePos = + TablePos("p:$currentPageNumber;x:${floor(x)};y:${ceil(y)};w:${ceil(w)}") + signaturePlaceholderData.placeholderName = placeholderName + logger.debug("Found placeholder: {}", signaturePlaceholderData) + placeholders.add(signaturePlaceholderData) + } + super.processOperator(operation, arguments) + } + } + + const val SIGNATURE_PLACEHOLDER_PREFIX = "PDF-AS_" + /** The placeholderId stored in the PDSignature's signature dictionary (in the propBuild.app.name key) */ + var PDSignature.signaturePlaceholderId: String? + get() = this.propBuild?.app?.name?.removePrefix(SIGNATURE_PLACEHOLDER_PREFIX) ?: this.location + set(value) { + val props = this.propBuild ?: PDPropBuild() + val appProps = props.app ?: PDPropBuildDataDict() + appProps.name = value?.let { SIGNATURE_PLACEHOLDER_PREFIX + it } + props.setPDPropBuildApp(appProps) + this.propBuild = props + } +} diff --git a/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/pdfbox3/Positioning.kt b/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/pdfbox3/Positioning.kt new file mode 100644 index 00000000..4c75763c --- /dev/null +++ b/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/pdfbox3/Positioning.kt @@ -0,0 +1,201 @@ +package at.gv.egiz.pdfas.lib.impl.pdfbox3 + +import at.gv.egiz.pdfas.common.exceptions.PdfAsException +import at.gv.egiz.pdfas.common.settings.IProfileConstants +import at.gv.egiz.pdfas.common.settings.ISettings +import at.gv.egiz.pdfas.common.settings.SignatureProfileSettings +import at.gv.egiz.pdfas.lib.api.IConfigurationConstants +import at.gv.egiz.pdfas.lib.impl.signing.pdfbox3.PDFBOXSigner.checkPDFPermissions +import at.gv.egiz.pdfas.lib.impl.stamping.pdfbox3.PDFBOXStamper +import at.knowcenter.wag.egov.egiz.pdf.PositioningInstruction +import at.knowcenter.wag.egov.egiz.pdf.TablePos +import at.knowcenter.wag.egov.egiz.pdf.TablePos.PAGE_MODE +import org.apache.pdfbox.pdmodel.PDDocument +import org.apache.pdfbox.pdmodel.graphics.color.PDColor +import org.apache.pdfbox.rendering.PDFRenderer +import org.apache.pdfbox.rendering.PageDrawer +import org.apache.pdfbox.rendering.PageDrawerParameters +import org.apache.pdfbox.tools.imageio.ImageIOUtil +import org.slf4j.LoggerFactory +import java.awt.Color +import java.awt.image.BufferedImage + +object Positioning { + private val logger = LoggerFactory.getLogger(Positioning::class.java) + /** The left/right margin */ + const val SIGNATURE_MARGIN_HORIZONTAL = 50f + /** The top/bottom margin */ + const val SIGNATURE_MARGIN_VERTICAL = 20f + fun determineTablePositioning( + pos: TablePos, pdfDataSource: PDDocument, + pdfTable: PDFBOXStamper.VisualObject, globalSettings: ISettings, + signatureProfileSettings: SignatureProfileSettings + ): PositioningInstruction { + + pdfDataSource.checkPDFPermissions() + + val hasExistingSignatures = runCatching { + pdfDataSource.signatureFields.any { it.signature != null } + }.getOrElse { e -> + logger.warn("Failed to extract existing signatures from PDF.", e) + false + } + + var (pageNum, makeNewPage) = when (pos.pageMode) { + PAGE_MODE.EXACT -> + pos.page.takeIf { it <= pdfDataSource.numberOfPages } + ?.let { Pair(it, false) } + ?: + Pair(pdfDataSource.numberOfPages, true) + .also { logger.info("Document is shorter than requested page for signature block. Adding new page...") } + PAGE_MODE.NEW -> Pair(pdfDataSource.numberOfPages, true) + PAGE_MODE.LAST, PAGE_MODE.AUTO -> Pair(pdfDataSource.numberOfPages, false) + } + + if (makeNewPage && hasExistingSignatures) { + makeNewPage = getNewPageFallback(signatureProfileSettings, globalSettings) + } + + val (pageWidth, pageHeight) = pdfDataSource.getPage(pageNum-1).let { pdPage -> + val cropBox = pdPage.cropBox + when (val rotation = pdPage.rotation % 360) { + 0, 180 -> Pair(cropBox.width, cropBox.height) + 90, 270 -> Pair(cropBox.height, cropBox.width) + else -> throw IllegalStateException("Invalid page rotation $rotation") + } + } + + val hasExplicitPosX = !pos.isXauto + val hasExplicitWidth = !pos.isWauto + val (posX, width) = when { + hasExplicitPosX && hasExplicitWidth -> Pair(pos.posX, pos.width) + !hasExplicitPosX && hasExplicitWidth -> Pair((pageWidth - pos.width)/2, pos.width) + hasExplicitPosX && !hasExplicitWidth -> Pair(pos.posX, pageWidth - 2*pos.posX) + /*!hasExplicitPosX && !hasExplicitWidth*/ else -> + Pair(SIGNATURE_MARGIN_HORIZONTAL, pageWidth - 2*SIGNATURE_MARGIN_HORIZONTAL) + } + pdfTable.width = width + pdfTable.fixWidth() + + if (pos.pageMode == PAGE_MODE.LAST) { + return PositioningInstruction( + false, pageNum, + posX, if (pos.isYauto) pageHeight - SIGNATURE_MARGIN_VERTICAL else pos.posY, + pos.rotation) + } + + // explicit y or invisible signature + if (!pos.isYauto || pdfTable.height == 0.0f) { + if (makeNewPage) pageNum = pdfDataSource.numberOfPages + 1 + return PositioningInstruction(makeNewPage, pageNum, posX, pos.posY, pos.rotation) + } + + if (makeNewPage) { + return PositioningInstruction( + true, pdfDataSource.numberOfPages + 1, + posX, pageHeight - SIGNATURE_MARGIN_VERTICAL, pos.rotation) + } + + // ok, y-position is automatic, and we are not making a new page + // therefore, we need to go looking for the end of the page content + val pageContentHeight = calculatePageLength(pdfDataSource, pageNum-1, pos.footerLine.toInt(), globalSettings) + val candidateY = pageHeight - pageContentHeight - SIGNATURE_MARGIN_VERTICAL + + if (candidateY - pos.footerLine <= pdfTable.height) { + if (pos.pageMode == PAGE_MODE.AUTO) + makeNewPage = true + else + pageNum = pdfDataSource.numberOfPages + + if (makeNewPage && hasExistingSignatures) { + makeNewPage = getNewPageFallback(signatureProfileSettings, globalSettings) + } + if (makeNewPage) { + pageNum = pdfDataSource.numberOfPages + 1 + } + return PositioningInstruction( + makeNewPage, pageNum, + posX, pageHeight - SIGNATURE_MARGIN_VERTICAL, pos.rotation + ) + } + return PositioningInstruction( + false, pageNum, + posX, candidateY, pos.rotation + ) + } + + private fun getNewPageFallback(signatureProfileSettings: SignatureProfileSettings, globalSettings: ISettings): Boolean { + logger.debug("Signature block would need to be on a new page, but you cannot add a new page to a signed document") + if (signatureProfileSettings.getValue(IProfileConstants.SIG_NEWPAGE_FORCE).toBoolean()) { + logger.info("New pages are not allowed on signed document, but the profile configuration overrides this") + return true + } else if (globalSettings.getValue(IConfigurationConstants.SIG_BLOCK_LESS_SPACE_STOPPING_WITH_ERROR).toBoolean()) { + throw PdfAsException("error.pdf.stamp.12") + } else { + logger.info("Placing signature block on last page without free space checks") + return false + } + } + + private val RENDERER_BACKGROUND_COLOR = Color(152, 254, 52) + private val RENDERER_FOREGROUND_COLOR = Color(234, 14, 184, 211) + private fun calculatePageLength( + pdfDataSource: PDDocument, pageNum: Int, + footerSize: Int, globalSettings: ISettings + ): Int { + try { + val (cropBox, rotation) = pdfDataSource.getPage(pageNum).let { + Pair(it.cropBox, it.rotation) + } + val isRotated = (rotation % 180 != 0) + val (imageWidth, imageHeight) = when (isRotated) { + true -> Pair(cropBox.height, cropBox.width) + false -> Pair(cropBox.width, cropBox.height) + } + val image = BufferedImage( + imageWidth.toInt(), imageHeight.toInt(), + BufferedImage.TYPE_INT_ARGB) + Renderer(pdfDataSource).renderPageToGraphics( + pageNum, + image.createGraphics().apply { background = RENDERER_BACKGROUND_COLOR}) + globalSettings.getValue(IConfigurationConstants.SIG_PLACEMENT_DEBUG_OUTPUT)?.let { + ImageIOUtil.writeImage(image, it, 72) + } + + val bgColor = when (globalSettings.getValue(IConfigurationConstants.BG_COLOR_DETECTION).toBoolean()) { + true -> { + /* + * Only used if background color should be determined automatically. + * That can be necessary of PDF contains page-size images. + */ + val topLeft = image.getRGB(5,5) + val topRight = image.getRGB(image.width-5, 5) + val bottomLeft = image.getRGB(5, image.height-5) + val bottomRight = image.getRGB(image.width-5, image.height-5) + // pick most common color + sequenceOf(topLeft, topRight, bottomLeft, bottomRight) + .groupingBy { it } + .eachCount() + .maxBy { it.value }.key + } + false -> RENDERER_BACKGROUND_COLOR.rgb + } + return ((image.height - 1 - footerSize).downTo(1).firstOrNull { row -> + (0..<image.width).any { col -> (image.getRGB(col, row) != bgColor) } + } ?: 0) + + } catch (e: Throwable) { + logger.warn("Could not determine page length, ignoring page content", e) + return 0 + } + } + + private class Renderer(pdf: PDDocument): PDFRenderer(pdf) { + class Drawer(parameters: PageDrawerParameters) : PageDrawer(parameters) { + override fun getPaint(color: PDColor) = RENDERER_FOREGROUND_COLOR + } + override fun createPageDrawer(parameters: PageDrawerParameters): PageDrawer { + return Drawer(parameters) + } + } +}
\ No newline at end of file diff --git a/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/pdfbox3/configuration/ProfileValidator.kt b/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/pdfbox3/configuration/ProfileValidator.kt new file mode 100644 index 00000000..94ddaa2b --- /dev/null +++ b/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/pdfbox3/configuration/ProfileValidator.kt @@ -0,0 +1,105 @@ +package at.gv.egiz.pdfas.lib.impl.pdfbox3.configuration + +import at.gv.egiz.pdfas.common.exceptions.PDFASError +import at.gv.egiz.pdfas.common.exceptions.PdfAsSettingsValidationException +import at.gv.egiz.pdfas.common.settings.ISettings +import at.gv.egiz.pdfas.common.settings.SignatureProfileSettings +import at.gv.egiz.pdfas.lib.api.ByteArrayDataSource +import at.gv.egiz.pdfas.lib.configuration.ConfigurationValidator +import at.gv.egiz.pdfas.lib.impl.pdfbox3.PDFBOXObject +import at.gv.egiz.pdfas.lib.impl.status.ICertificateProvider +import at.gv.egiz.pdfas.lib.impl.status.OperationStatus +import iaik.asn1.ObjectID +import iaik.asn1.structures.Name +import iaik.x509.X509Certificate +import org.apache.pdfbox.pdmodel.PDDocument +import org.apache.pdfbox.pdmodel.PDPage +import org.apache.pdfbox.pdmodel.common.PDRectangle +import org.slf4j.Logger +import org.slf4j.LoggerFactory +import java.io.ByteArrayOutputStream +import java.io.IOException +import java.math.BigInteger + +class ProfileValidator : ConfigurationValidator { + + companion object { + private const val NAME = "PDFBOX_3_PROFILE_VALIDATOR" + private val logger: Logger = LoggerFactory.getLogger(ProfileValidator::class.java) + } + + @Throws(PdfAsSettingsValidationException::class) + override fun validate(settings: ISettings) { + val profileIds: MutableSet<String?> = HashSet<String?>() + + for (key in settings.getFirstLevelKeys("sig_obj.types.")) { + val profile = key.substring("sig_obj.types.".length) + + if (settings.getValue(key) == "on") { + profileIds.add(profile) + } + } + logger.debug("Validating {} Profiles.", profileIds.size) + + val profileSettings = ArrayList<SignatureProfileSettings?>() + + val opState = OperationStatus(settings, null, null, null) + + val dummyCert = X509Certificate() + dummyCert.setSerialNumber(BigInteger("123")) + val n = Name() + n.addRDN(ObjectID.country, "AT") + n.addRDN(ObjectID.locality, "Graz") + n.addRDN(ObjectID.organization, "test") + n.addRDN(ObjectID.organizationalUnit, "test") + n.addRDN(ObjectID.commonName, "testca") + dummyCert.setIssuerDN(n) + dummyCert.setSubjectDN(n) + + val certProvider: ICertificateProvider = DummyCertificateProvider(dummyCert) + + val pdfBoxObject = PDFBOXObject(opState) + val origDoc = PDDocument() + origDoc.addPage(PDPage(PDRectangle.A4)) + val baos = ByteArrayOutputStream() + try { + origDoc.save(baos) + baos.close() + origDoc.close() + + pdfBoxObject.setOriginalDocument(ByteArrayDataSource(baos.toByteArray())) + } catch (e1: IOException) { + logger.info("Configuration validation failed!") + throw PdfAsSettingsValidationException("Configuration validation failed!", e1) + } + + + for (id in profileIds) { + try { + val profileSetting = SignatureProfileSettings(id, settings) + profileSettings.add(profileSetting) + if (profileSetting.getValue("isvisible") != null) { + if (profileSetting.getValue("isvisible") == "false") { + continue + } + } + } catch (e: PDFASError) { + logger.error("Find suspect signature-profile configuration. Ignore it", e) + } + } + } + + override fun usedAsDefault(): Boolean { + return true + } + + override fun getName(): String { + return NAME + } + + private class DummyCertificateProvider(private val cert: X509Certificate?) : ICertificateProvider { + override fun getCertificate(): X509Certificate? { + return cert + } + } +}
\ No newline at end of file diff --git a/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/signing/pdfbox3/PDFBOXSigner.kt b/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/signing/pdfbox3/PDFBOXSigner.kt new file mode 100644 index 00000000..07d84eb6 --- /dev/null +++ b/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/signing/pdfbox3/PDFBOXSigner.kt @@ -0,0 +1,620 @@ +package at.gv.egiz.pdfas.lib.impl.signing.pdfbox3 + +import at.gv.egiz.pdfas.common.exceptions.PDFASError +import at.gv.egiz.pdfas.common.exceptions.PdfAsException +import at.gv.egiz.pdfas.common.exceptions.PdfAsValidationException +import at.gv.egiz.pdfas.common.exceptions.PdfAsWrappedIOException +import at.gv.egiz.pdfas.common.exceptions.SLPdfAsException +import at.gv.egiz.pdfas.common.messages.MessageResolver +import at.gv.egiz.pdfas.common.settings.SignatureProfileSettings +import at.gv.egiz.pdfas.lib.api.ByteArrayDataSource +import at.gv.egiz.pdfas.lib.api.IConfigurationConstants +import at.gv.egiz.pdfas.lib.api.sign.SignParameter +import at.gv.egiz.pdfas.lib.impl.ErrorExtractor +import at.gv.egiz.pdfas.lib.impl.SignaturePositionImpl +import at.gv.egiz.pdfas.lib.impl.configuration.SignatureProfileConfiguration +import at.gv.egiz.pdfas.lib.impl.pdfbox3.PDFBOXObject +import at.gv.egiz.pdfas.lib.impl.pdfbox3.PDFBoxPlaceholderExtractor.signaturePlaceholderId +import at.gv.egiz.pdfas.lib.impl.pdfbox3.Positioning +import at.gv.egiz.pdfas.lib.impl.placeholder.PlaceholderFilter +import at.gv.egiz.pdfas.lib.impl.placeholder.SignaturePlaceholderData +import at.gv.egiz.pdfas.lib.impl.signing.IPdfSigner +import at.gv.egiz.pdfas.lib.impl.signing.PDFASSignatureExtractor +import at.gv.egiz.pdfas.lib.impl.signing.PDFASSignatureInterface +import at.gv.egiz.pdfas.lib.impl.stamping.IPDFVisualObject +import at.gv.egiz.pdfas.lib.impl.stamping.TableFactory +import at.gv.egiz.pdfas.lib.impl.stamping.ValueResolver +import at.gv.egiz.pdfas.lib.impl.stamping.pdfbox3.PDFAsVisualSignature +import at.gv.egiz.pdfas.lib.impl.stamping.pdfbox3.PDFBOXStamper +import at.gv.egiz.pdfas.lib.impl.status.OperationStatus +import at.gv.egiz.pdfas.lib.impl.status.RequestedSignature +import at.knowcenter.wag.egov.egiz.pdf.PositioningInstruction +import at.knowcenter.wag.egov.egiz.pdf.TablePos +import iaik.x509.X509Certificate +import org.apache.pdfbox.Loader +import org.apache.pdfbox.cos.COSArray +import org.apache.pdfbox.cos.COSDictionary +import org.apache.pdfbox.cos.COSInteger +import org.apache.pdfbox.cos.COSName +import org.apache.pdfbox.cos.COSString +import org.apache.pdfbox.io.RandomAccessReadBuffer +import org.apache.pdfbox.pdmodel.PDDocument +import org.apache.pdfbox.pdmodel.PDPage +import org.apache.pdfbox.pdmodel.PDResources +import org.apache.pdfbox.pdmodel.common.PDNumberTreeNode +import org.apache.pdfbox.pdmodel.common.PDRectangle +import org.apache.pdfbox.pdmodel.documentinterchange.logicalstructure.PDStructureElement +import org.apache.pdfbox.pdmodel.graphics.color.PDOutputIntent +import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature +import org.apache.pdfbox.pdmodel.interactive.digitalsignature.SignatureInterface +import org.apache.pdfbox.pdmodel.interactive.digitalsignature.SignatureOptions +import org.apache.pdfbox.pdmodel.interactive.form.PDSignatureField +import org.apache.pdfbox.preflight.PreflightDocument +import org.apache.pdfbox.preflight.exception.SyntaxValidationException +import org.apache.pdfbox.preflight.exception.ValidationException +import org.apache.pdfbox.preflight.parser.PreflightParser +import org.apache.pdfbox.rendering.ImageType +import org.apache.pdfbox.rendering.PDFRenderer +import org.apache.xmpbox.XMPMetadata +import org.apache.xmpbox.xml.DomXmpParser +import org.slf4j.LoggerFactory +import java.awt.Graphics2D +import java.awt.Image +import java.awt.image.BufferedImage +import java.io.ByteArrayInputStream +import java.io.ByteArrayOutputStream +import java.io.IOException +import java.io.InputStream +import java.util.* + +private fun makeSignaturePositionImpl(i: PositioningInstruction, o: IPDFVisualObject) = + SignaturePositionImpl().also { position -> + position.x = i.x + position.y = i.y + position.page = i.page + position.height = o.height + position.width = o.width + } + +object PDFBOXSigner : IPdfSigner<PDFBOXObject, PDFBOXSigner.SignatureDataExtractor> { + private val logger = LoggerFactory.getLogger(PDFBOXSigner::class.java) + + override fun rewritePlainSignature(plainSignature: ByteArray) = + COSString(plainSignature).toHexString().toByteArray() + + override fun buildPDFObject(operationStatus: OperationStatus) = + PDFBOXObject(operationStatus) + + @Throws(PdfAsValidationException::class) + override fun checkPDFPermissions(pdfObject: PDFBOXObject) { + + pdfObject.document!!.checkPDFPermissions() + } + + fun PDDocument.checkPDFPermissions() { + if (isEncrypted || !currentAccessPermission.isOwnerPermission) { + if ( + (currentAccessPermission.canModify() && currentAccessPermission.canModifyAnnotations()) || + currentAccessPermission.canFillInForm()) { + + logger.debug("Document is protected, but signing is still allowed") + } else { + throw PdfAsValidationException("error.pdf.sig.12", null) + } + } + } + + class SignatureDataExtractor( + val certificate: X509Certificate, + private val pdfFilter: String, + private val pdfSubFilter: String, + private val signingDate: Calendar) + : PDFASSignatureExtractor, PDFASSignatureInterface, SignatureInterface { + + override fun getPDFFilter() = pdfFilter + override fun getPDFSubFilter() = pdfSubFilter + override fun getSigningDate() = signingDate + + private lateinit var signatureData: ByteArray + override fun getSignatureData() = signatureData + lateinit var byteRange: IntArray private set + + /** Called by PDFBox. + * We save the data to be signed and return an all-zeros signature (padded by pdfbox). + * We splice the actual signature in at a later point. + */ + override fun sign(content: InputStream): ByteArray { + signatureData = content.readAllBytes() + return byteArrayOf(0) + } + + fun setPDSignature(signature: PDSignature) { + byteRange = signature.byteRange + } + + + } + override fun buildBlindSignaturInterface( + certificate: X509Certificate, + filter: String, + subfilter: String, + date: Calendar + ) = SignatureDataExtractor(certificate, filter, subfilter, date) + + private fun findExistingSignature(doc: PDDocument, sigFieldName: String?): PDSignature? = + doc.documentCatalog.acroForm + ?.let { it.getField(sigFieldName) as? PDSignatureField } + ?.let { field -> + if (field.signature != null) { + throw IllegalStateException("The signature field $sigFieldName is already signed.") + } + PDSignature().also { field.cosObject.setItem(COSName.V, it) } + } + + private fun getSignatureFieldNameConfig(pdfObject: PDFBOXObject): String? = + pdfObject.status.settings.getValue(IConfigurationConstants.SIGNATURE_FIELD_NAME) + + private fun getPDFAVersion(doc: PDDocument): String? = try { + doc.documentCatalog.metadata + ?.let { DomXmpParser().parse(it.exportXMPMetadata()) } + ?.let(XMPMetadata::getPDFAIdentificationSchema) + ?.let { + val pdfaVersion = it.part + val conformance = it.conformance + logger.info("Detected PDF/A version: {} - {}", pdfaVersion, conformance) + pdfaVersion.toString() + } + } catch (e: Throwable) { + logger.warn("Failed to determine PDF/A version", e) + null + } + + private fun logPdfUpdateError(e: Throwable) { + if (e is SLPdfAsException && !e.isCriticalError) + logger.info("Could not save incremental update", e) + else + logger.error("Could not save incremental update", e) + } + + private fun SignatureProfileSettings.calculateBlankAreaForSignature() : Int = + runCatching { + this.getValue(IConfigurationConstants.SIG_RESERVED_SIZE)?.toInt() + }.getOrElse { + logger.warn("Invalid configuration value for ${IConfigurationConstants.SIG_RESERVED_SIZE} (should be a number), using default") + null + } ?: 0x1000 + + private fun prepareTablePosition(nextPlaceholderData: SignaturePlaceholderData?, signatureProfileConfiguration: SignatureProfileConfiguration, signParameterPosParam: String?): TablePos { + nextPlaceholderData?.tablePos?.let { placeholderTablePos -> + val minWidth = signatureProfileConfiguration.minWidth + if ((minWidth > 0) && (placeholderTablePos.width < minWidth)) { + placeholderTablePos.width = minWidth + logger.debug("Correcting placeholder to minimum required width ({})", minWidth) + } + logger.debug("Placeholder position set to: {}", placeholderTablePos) + return placeholderTablePos + } + + val defaultProfilePos = signatureProfileConfiguration.defaultPositioning?.let { + logger.debug("Using Signature positioning from profile: {}", it) + TablePos(it) + } + + logger.debug("Signature positioning from sign parameter: {}", signParameterPosParam) + return when (signParameterPosParam) { + null -> defaultProfilePos ?: TablePos() + else -> TablePos(signParameterPosParam, defaultProfilePos) + } + } + + private fun buildNextSignatureFieldName(doc: PDDocument, pdfObject: PDFBOXObject): String { + val baseName = getSignatureFieldNameConfig(pdfObject) ?: "PDF-AS Signatur" + + val existingSignatureNames = + doc.document.trailer + .getCOSDictionary(COSName.ROOT) + .getCOSDictionary(COSName.ACRO_FORM) + .getCOSArray(COSName.FIELDS) + .asSequence() + .mapNotNull { + if (it !is COSDictionary) return@mapNotNull null + if (it.getNameAsString(COSName.FT) != "Sig") return@mapNotNull null + it.getString(COSName.T)?.takeIf { n -> n.startsWith(baseName) } + } + .toSet() + + var i = 1 + return generateSequence { "$baseName ${i++}" } + .first { !existingSignatureNames.contains(it) } + } + + private fun injectPdfUaContent(doc: PDDocument, signatureField: PDSignatureField, + sigFieldName: String, signatureProfileSettings: SignatureProfileSettings) { + try { + logger.info("Adding PDF/UA content...") + val structureTreeRoot = doc.documentCatalog.structureTreeRoot + val docElement = (structureTreeRoot?.kids ?: run { + logger.info("No kid elements in structure tree root, maybe not PDF/UA document. Skipping PDF/UA injection...") + return@injectPdfUaContent + }).firstNotNullOf { it as? PDStructureElement } + + val annotationObj = signatureField.widgets[0] + val annotationPage = annotationObj.page + val objectDic = COSDictionary().apply { + setName(COSName.TYPE, "OBJR") + setItem(COSName.PG, annotationPage) + setItem(COSName.OBJ, annotationObj) + } + + val sigBlock = PDStructureElement("Form", docElement).apply { + kids = listOf(objectDic) + page = annotationPage + + cosObject.apply { + setItem(COSName.A, COSDictionary().apply { + setName(COSName.O, "Layout") + setName("Placement", "Block") + }) + isNeedToBeUpdated = true + } + }.also(docElement::appendKid) + + val ntn = structureTreeRoot.parentTree ?: run { + logger.info("No number-tree-node found!") + PDNumberTreeNode(objectDic, null) + } + + val (ntnKids, ntnNumbers) = ntn.cosObject.run { + Pair(getCOSArray(COSName.KIDS), getCOSArray(COSName.NUMS)) + } + + val parentTreeNextKey = structureTreeRoot.parentTreeNextKey.takeIf { it >= 0 } ?: run { + structureTreeRoot.parentTree.upperLimit?.plus(1) ?: 0 + } + val parentTreeNextKeyCOS = COSInteger.get(parentTreeNextKey.toLong()) + + if ((ntnKids != null) && (ntnNumbers == null)) { + PDNumberTreeNode(COSDictionary().apply { + setItem(COSName.NUMS, COSArray().apply { + add(parentTreeNextKeyCOS) + add(sigBlock) + }) + setItem(COSName.LIMITS, COSArray().apply { + add(parentTreeNextKeyCOS) + add(parentTreeNextKeyCOS) + }) + }, PDNumberTreeNode::class.java).let { + ntnKids.add(it) + ntnKids.isNeedToBeUpdated = true + } + } else if ((ntnNumbers != null) && (ntnKids == null)) { + ntnNumbers.add(parentTreeNextKeyCOS) + ntnNumbers.add(sigBlock.cosObject) + ntnNumbers.isNeedToBeUpdated = true + structureTreeRoot.parentTree = ntn + } else { + logger.error( + "Document is not PDF/UA conformant before signature creation (ntnKids = {}, ntnNumbers = {})", + ntnKids, ntnNumbers) + throw PdfAsException("error.pdf.sig.pdfua.1") + } + + annotationObj.structParent = parentTreeNextKey + structureTreeRoot.parentTreeNextKey = parentTreeNextKey + 1 + annotationPage.cosObject.let { + it.setName("Tabs", "S") + it.isNeedToBeUpdated = true + } + + if (signatureField.alternateFieldName.isEmpty()) + signatureField.alternateFieldName = sigFieldName + + ntn.cosObject.isNeedToBeUpdated = true + sigBlock.cosObject.isNeedToBeUpdated = true + structureTreeRoot.cosObject.isNeedToBeUpdated = true + objectDic.isNeedToBeUpdated = true + docElement.cosObject.isNeedToBeUpdated = true + + } catch (e: Throwable) { + if (signatureProfileSettings.isPDFUA) { + logger.error("Could not create PDF/UA conformant document!", e) + throw PdfAsException("error.pdf.sig.pdfua.1", e) + } else { + if (logger.isDebugEnabled) { + logger.debug("Could not create PDF/UA conformant signature. Reason: {}", e.message, e) + } else { + logger.info("Could not create PDF/UA conformant signature. Reason: {}", e.message) + } + } + } + } + + private fun validatePDFAPreflight(signedDocument: ByteArray) { + RandomAccessReadBuffer(signedDocument).use { buf -> + try { + val result = + (PreflightParser(buf).parse() as PreflightDocument).use(PreflightDocument::validate) + + logger.info("PDF-A Validation Result: {}", result.isValid) + result.errorsList.takeIf { it.isNotEmpty() }?.let { errors -> + logger.error("The following validation errors occurred for PDF-A validation:") + errors.forEach { + logger.error("\t{}: {}", it.errorCode, it.details) + } + } + if (!result.isValid) { + logger.info("The file is not a valid PDF-A document") + } + } catch (e: SyntaxValidationException) { + logger.error("The file is syntactically invalid", e) + throw PdfAsException("Resulting PDF document is syntactically invalid.") + } catch (e: ValidationException) { + logger.error("The file is not a valid PDF-A document.", e) + } catch (e: IOException) { + logger.error("IOException (${e.message}) occurred while validating PDF-A conformance", e) + throw PdfAsException("Failed validating PDF Document.", e) + } catch (e: RuntimeException) { + logger.error("RuntimeException occurred while validating PDF-A conformance", e) + throw PdfAsException("Failed validating PDF Document.", e) + } + } + } + + override fun signPDF( + pdfObject: PDFBOXObject, + requestedSignature: RequestedSignature, + signer: SignatureDataExtractor + ) { + + val isAdobeSignatureForm: Boolean + try { SignatureOptions().use { options -> pdfObject.document!!.use { doc -> + val signature = findExistingSignature(doc, getSignatureFieldNameConfig(pdfObject)) + .also { isAdobeSignatureForm = (it != null) } + ?: PDSignature() + signature.setFilter(COSName.getPDFName(signer.pdfFilter)) + signature.setSubFilter(COSName.getPDFName(signer.pdfSubFilter)) + signature.signDate = Calendar.getInstance() + logger.debug("Signing at {}", signature.signDate.time) + + val nextPlaceholderData: SignaturePlaceholderData? = PlaceholderFilter.checkPlaceholderSignatureLocation( + pdfObject.status, pdfObject.status.settings, + pdfObject.status.signParameter.placeHolderId) + if (nextPlaceholderData != null) { + logger.info("Placeholder data found.") + signature.signaturePlaceholderId = nextPlaceholderData.placeholderName + nextPlaceholderData.profile?.let { profile -> + if (pdfObject.status.settings.isValue(IConfigurationConstants.PLACEHOLDER_PROFILE_OVERWRITE, true)) { + logger.debug("Placeholder profile override applied. Using profile {}...", profile) + requestedSignature.signatureProfileID = profile + } else { + logger.debug("Placeholder profile override is disabled. Using profile from request...") + } + } + } + + val signatureProfileSettings = + TableFactory.createProfile(requestedSignature.signatureProfileID, pdfObject.status.settings) + val resolver = ValueResolver(requestedSignature, pdfObject.status) + + signature.name = resolver.resolve("SIG_SUBJECT", + signatureProfileSettings.getValue("SIG_SUBJECT"), signatureProfileSettings) + signature.reason = + (signatureProfileSettings.signingReason ?: "PAdES Signature").also { logger.debug("Signing reason: $it") } + + signer.setPDSignature(signature) + + if (signatureProfileSettings.isPDFA() || signatureProfileSettings.isPDFA3) { + signatureProfileSettings.setPDFAVersion(getPDFAVersion(doc)) + } + + options.preferredSignatureSize = signatureProfileSettings.calculateBlankAreaForSignature() + .also { logger.debug("Reserving {} bytes for signature", it) } + + var alternateCaption: String? = null + if (requestedSignature.isVisual) { + logger.info("Creating visual signature block") + + val signatureProfileConfiguration = + pdfObject.status.getSignatureProfileConfiguration(requestedSignature.signatureProfileID) + val tablePos = + prepareTablePosition(nextPlaceholderData, signatureProfileConfiguration, + pdfObject.status.signParameter.signaturePosition) + val main = TableFactory.createSigTable( + signatureProfileSettings, IConfigurationConstants.MAIN, + pdfObject.status, requestedSignature) + + val visualObject = PDFBOXStamper.createVisualPDFObject(pdfObject, main) + + val positioningInstruction: PositioningInstruction = Positioning.determineTablePositioning( + tablePos, doc, visualObject, pdfObject.status.settings, signatureProfileSettings + ) + logger.debug("Positioning: {}", positioningInstruction) + + if (!isAdobeSignatureForm) { + if (positioningInstruction.isMakeNewPage) { + val last = doc.numberOfPages - 1 + val root = doc.documentCatalog + val lastPage = root.pages[last] + root.pages.cosObject.isNeedToBeUpdated = true + + doc.addPage( + PDPage(lastPage.mediaBox).apply { + setResources(PDResources()) + rotation = lastPage.rotation + }) + } + + // TODO: this is a no-op, right? + val targetPage = doc.pages.get(positioningInstruction.page - 1) + val rot = targetPage.rotation + logger.debug("Page rotation: $rot") + logger.debug("Resulting sign rotation: ${positioningInstruction.rotation}") + + requestedSignature.signaturePosition = + makeSignaturePositionImpl(positioningInstruction, visualObject) + } + + if (signatureProfileSettings.isPDFA() || signatureProfileSettings.isPDFA3) { + val root = doc.documentCatalog + + PDFBOXSigner.javaClass.getResourceAsStream("/icm/sRGB Color Space Profile.icm").use { colorProfile -> + root.outputIntents = listOf(PDOutputIntent(doc, colorProfile).apply { + info = "sRGB IEC61966-2.1" + outputCondition = "sRGB IEC61966-2.1" + outputConditionIdentifier = "sRGB IEC61966-2.1" + registryName = "http://www.color.org" + }) + root.cosObject.isNeedToBeUpdated = true + } + + } + + options.page = positioningInstruction.page - 1 + + PDFAsVisualSignature.build( + pdfObject, visualObject, positioningInstruction, signatureProfileSettings, false + ).let { (signatureBlock, caption) -> + options.setVisualSignature(ByteArrayInputStream(signatureBlock)) + alternateCaption = caption + } + } + + doc.addSignature(signature, signer, options) + + val sigFieldName = buildNextSignatureFieldName(doc, pdfObject) + + if (!isAdobeSignatureForm) { + val signatureField = + doc.documentCatalog.acroForm?.fields?.asSequence() + ?.filterIsInstance<PDSignatureField>() + ?.firstOrNull { it.signature?.cosObject == signature.cosObject } + if (signatureField != null) { + signatureField.partialName = sigFieldName + signatureField.alternateFieldName = alternateCaption ?: sigFieldName + } else { + logger.warn("Failed to name Signature Field! [Cannot find AcroForm field list]") + } + } + + val signatureField = doc.documentCatalog.acroForm?.getField(sigFieldName) as PDSignatureField + injectPdfUaContent(doc, signatureField, sigFieldName, signatureProfileSettings) + try { + synchronized(doc) { + pdfObject.signedDocument = ByteArrayOutputStream().also(doc::saveIncremental).toByteArray() + if (signatureProfileSettings.isPDFA) { + validatePDFAPreflight(pdfObject.signedDocument) + } + } + } catch (e: PdfAsWrappedIOException) { + throw e.decoratedException.also(::logPdfUpdateError) + } catch (e: Throwable) { + throw PdfAsException("error.pdf.sig.06", e.also(::logPdfUpdateError)) + } + logger.debug("Signature done!") + }}} catch (e: IOException) { + logger.warn(MessageResolver.resolveMessage("error.pdf.sig.01"), e) + throw PdfAsException("error.pdf.sig.01", e) + } catch (e: PDFASError) { + logger.warn(e.info) + throw PdfAsException("error.pdf.sig.01", e) + } finally { + System.gc() + } + } + + override fun generateVisibleSignaturePreview( + parameter: SignParameter, + cert: java.security.cert.X509Certificate, + resolution: Int, + status: OperationStatus, + requestedSignature: RequestedSignature + ): Image { + try { + val pdfObject = status.pdfObject as PDFBOXObject + + val signatureProfileSettings: SignatureProfileSettings + val visualObject: PDFBOXStamper.VisualObject + val positioningInstruction: PositioningInstruction + PDDocument().use { previewDoc -> + previewDoc.addPage(PDPage(PDRectangle.A4)) + pdfObject.originalDocument = ByteArrayDataSource( + ByteArrayOutputStream().use { + previewDoc.save(it) + it.toByteArray() + }) + + signatureProfileSettings = TableFactory.createProfile( + requestedSignature.signatureProfileID, + pdfObject.status.settings + ) + + visualObject = + PDFBOXStamper.createVisualPDFObject( + pdfObject, + TableFactory.createSigTable( + signatureProfileSettings, IConfigurationConstants.MAIN, + pdfObject.status, requestedSignature + ) + ) + + positioningInstruction = when ( + val signaturePosString = pdfObject.status + .getSignatureProfileConfiguration(requestedSignature.signatureProfileID) + .defaultPositioning + ) { + null -> TablePos() + else -> TablePos(signaturePosString) + }.let { + Positioning.determineTablePositioning( + it, + previewDoc, + visualObject, + pdfObject.status.settings, + signatureProfileSettings + ) + } + } + + val stdRes = 72.0 + val targetRes = resolution.toFloat() + val factor = targetRes / stdRes + + requestedSignature.signaturePosition = makeSignaturePositionImpl(positioningInstruction, visualObject) + val pageImage = + PDFAsVisualSignature.build( + pdfObject, + visualObject, + positioningInstruction, + signatureProfileSettings, + true + ) + .let { (bytes, _) -> + synchronized(PDDocument::javaClass) { Loader.loadPDF(bytes) } + } + .use { visualDoc -> + PDFRenderer(visualDoc) + .renderImageWithDPI(0, targetRes, ImageType.ARGB) + } + + + return BufferedImage( + (requestedSignature.signaturePosition.width * factor).toInt(), + (requestedSignature.signaturePosition.height * factor).toInt(), + BufferedImage.TYPE_4BYTE_ABGR + ).also { cutOut -> + // TODO: these coordinates feel scuffed + (cutOut.graphics as Graphics2D).drawImage( + pageImage, 0, 0, cutOut.width, cutOut.height, + (0 * factor).toInt(), + (pageImage.height - (requestedSignature.signaturePosition.height + 1) * factor).toInt(), + ((requestedSignature.signaturePosition.width + 2) * factor).toInt(), + (pageImage.height).toInt(), + null + ) + } + } catch (e: Throwable) { + logger.warn("Failed to generate signature preview", e) + throw ErrorExtractor.searchPdfAsError(e, status) + } + } +}
\ No newline at end of file diff --git a/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox3/PDFAsVisualSignature.kt b/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox3/PDFAsVisualSignature.kt new file mode 100644 index 00000000..bf8b448d --- /dev/null +++ b/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox3/PDFAsVisualSignature.kt @@ -0,0 +1,560 @@ +package at.gv.egiz.pdfas.lib.impl.stamping.pdfbox3 + +import at.gv.egiz.pdfas.common.exceptions.PdfAsException +import at.gv.egiz.pdfas.common.settings.ISettings +import at.gv.egiz.pdfas.common.settings.SignatureProfileSettings +import at.gv.egiz.pdfas.common.utils.ImageUtils +import at.gv.egiz.pdfas.lib.impl.pdfbox3.PDFBOXObject +import at.knowcenter.wag.egov.egiz.pdf.PositioningInstruction +import at.knowcenter.wag.egov.egiz.table.Entry +import at.knowcenter.wag.egov.egiz.table.Style +import org.apache.pdfbox.cos.COSArray +import org.apache.pdfbox.cos.COSName +import org.apache.pdfbox.pdmodel.PDDocument +import org.apache.pdfbox.pdmodel.PDPage +import org.apache.pdfbox.pdmodel.PDPageContentStream +import org.apache.pdfbox.pdmodel.PDResources +import org.apache.pdfbox.pdmodel.common.PDRectangle +import org.apache.pdfbox.pdmodel.common.PDStream +import org.apache.pdfbox.pdmodel.font.PDType0Font +import org.apache.pdfbox.pdmodel.graphics.form.PDFormXObject +import org.apache.pdfbox.pdmodel.graphics.image.LosslessFactory +import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAppearanceDictionary +import org.apache.pdfbox.pdmodel.interactive.annotation.PDAppearanceStream +import org.apache.pdfbox.pdmodel.interactive.digitalsignature.PDSignature +import org.apache.pdfbox.pdmodel.interactive.digitalsignature.visible.PDFTemplateStructure +import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm +import org.apache.pdfbox.pdmodel.interactive.form.PDSignatureField +import org.slf4j.LoggerFactory +import java.awt.Color +import java.awt.geom.AffineTransform +import java.awt.geom.Point2D +import java.io.ByteArrayOutputStream +import kotlin.properties.Delegates + +// This unifies the old PDFAsVisualSignatureProperties, PDFAsVisualSignatureDesigner, PDFAsVisualSignatureBuilder, and PDFAsTemplateCreator +object PDFAsVisualSignature { + val logger = LoggerFactory.getLogger(PDFAsVisualSignature::class.java) + fun build( + pdfObject: PDFBOXObject, visualObject: PDFBOXStamper.VisualObject, + pos: PositioningInstruction, signatureProfileSettings: SignatureProfileSettings, + buildPreviewOnly: Boolean + ): Pair<ByteArray, String> { + try { + val main = visualObject.table + val rotationAngle = pos.rotation + val origDoc = pdfObject.document + + if (pos.page < 1) { + throw IllegalArgumentException("PDF pages start at 1, expected page number >= 1, got ${pos.page}") + } + + val (pageWidth, pageHeight, pageRotation) = + pdfObject.document!!.documentCatalog.pages.let { pages -> + when (pos.isMakeNewPage) { + true -> pages[pages.count-1] + false -> pages[pos.page-1] + } + }.let { page -> + val rotation = page.rotation % 360 + val mediaBox = page.mediaBox + when (rotation % 180) { + 0 -> Triple(mediaBox.width, mediaBox.height, rotation) + 90 -> Triple(mediaBox.height, mediaBox.width, rotation) + else -> throw IllegalStateException("Invalid page rotation $rotation") + } + } + + val page = when (pos.isMakeNewPage) { + true -> pdfObject.document!!.documentCatalog.pages.let { it[it.count-1] } + false -> pdfObject.document!!.documentCatalog.pages[pos.page-1] + } + val posx = pos.x + val posy = pageHeight - pos.y + + // designer formater rectangle params: 0, 0, main.width + 1, main.height + 1 + val pdfStructure = PDFTemplateStructure() + pdfStructure.procSet = COSArray().apply { + sequenceOf("PDF","Text","ImageC","ImageB","ImageI") + .map(COSName::getPDFName).forEach(this::add) + } + pdfStructure.page = PDPage().apply { + mediaBox = PDRectangle(pageWidth, pageHeight) + rotation = pageRotation + } + pdfStructure.template = PDDocument().apply { + addPage(pdfStructure.page) + } + pdfStructure.acroForm = PDAcroForm(pdfStructure.template).also { + pdfStructure.template.documentCatalog.acroForm = it + } + pdfStructure.signatureField = PDSignatureField(pdfStructure.acroForm) + pdfStructure.pdSignature = PDSignature().apply { + pdfStructure.signatureField.value = this + pdfStructure.signatureField.widgets[0].page = pdfStructure.page + pdfStructure.page.annotations.add(pdfStructure.signatureField.widgets[0]) + name = "sig" + byteRange = intArrayOf(0,0,0,0) + contents = ByteArray(4096) + } + pdfStructure.acroFormFields = pdfStructure.acroForm.fields.apply { + add(pdfStructure.signatureField) + } + pdfStructure.acroFormDictionary = pdfStructure.acroForm.cosObject.apply { + isDirect = true + setInt(COSName.SIG_FLAGS, 3) + setString(COSName.DA, "/sylfaen 0 Tf 0 g") + } + pdfStructure.affineTransform = AffineTransform(floatArrayOf(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f)) + pdfStructure.signatureRectangle = createSignatureRectangle( + pageWidth = pageWidth, pageHeight = pageHeight, + posx, posy, + main.width, main.height, + rotationAngle, pageRotation, + ).also { + pdfStructure.signatureField.widgets[0].rectangle = it + } + pdfStructure.formatterRectangle = FloatArray(4).also { + pdfStructure.affineTransform.transform( + floatArrayOf(0.0f, 0.0f, main.width + 1, main.height + 1), 0, + it, 0, + 2) + }.let { + PDRectangle().apply { + upperRightX = it[0] + upperRightY = it[1] + lowerLeftX = it[2] + lowerLeftY = it[3] + } + } + + pdfStructure.holderFormStream = PDStream(pdfStructure.template) + pdfStructure.holderFormResources = PDResources() + pdfStructure.holderForm = PDFormXObject(pdfStructure.holderFormStream).apply { + resources = pdfStructure.holderFormResources + bBox = pdfStructure.formatterRectangle + formType = 1 + } + + pdfStructure.appearanceDictionary = PDAppearanceDictionary().apply { + cosObject.isDirect = true + setNormalAppearance(PDAppearanceStream(pdfStructure.holderForm.cosObject).apply { + setMatrix(AffineTransform().apply { + setToIdentity() + rotate(Math.toRadians(rotationAngle.toDouble() + pageRotation)) + }) + }) + }.also { pdfStructure.signatureField.widgets[0].appearance = it } + + val (alternativeTableCaption, innerFormResources) = + Table.draw(main, + pdfStructure.template, pdfStructure.page, + main.width, main.height, + signatureProfileSettings, pdfObject.settings) + + pdfStructure.innerFormResources = innerFormResources + + pdfStructure.setInnterFormStream(PDStream(pdfStructure.template, pdfStructure.page.contents)) + + pdfStructure.innerForm = PDFormXObject(pdfStructure.innerFormStream).apply { + resources = pdfStructure.innerFormResources + bBox = pdfStructure.formatterRectangle + formType = 1 + }.also { + pdfStructure.innerFormName = pdfStructure.holderFormResources.add(it, "FRM") + } + + pdfStructure.innerForm.resources.cosObject.setItem(COSName.PROC_SET, pdfStructure.procSet) + pdfStructure.page.cosObject.setItem(COSName.PROC_SET, pdfStructure.procSet) + pdfStructure.innerFormResources.cosObject.setItem(COSName.PROC_SET, pdfStructure.procSet) + pdfStructure.holderFormResources.cosObject.setItem(COSName.PROC_SET, pdfStructure.procSet) + + if (!buildPreviewOnly) { + val holderFormComment = pdfStructure.affineTransform.run { + "q $scaleX $shearY $shearX $scaleY $translateX $translateY cm /${pdfStructure.innerFormName.name} Do Q" + } + logger.debug("Holder form stream: {}", holderFormComment) + + val innerFormComment = pdfStructure.innerFormStream.toByteArray() + + pdfStructure.holderFormStream.createOutputStream().use { + it.write(holderFormComment.trim().filterNot {c -> c == '\r' || c == '\n' }.toByteArray()) + } + pdfStructure.innerFormStream.createOutputStream().use { + it.write(innerFormComment) + } + logger.debug("Injected appearance stream to PDF") + } + + pdfStructure.visualSignature = pdfStructure.template.document + + pdfStructure.widgetDictionary = pdfStructure.signatureField.widgets[0].cosObject.apply { + isNeedToBeUpdated = true + setItem(COSName.DR, pdfStructure.holderFormResources.cosObject) + } + + if (signatureProfileSettings.isPDFA3) { + pdfStructure.template.pages.forEach { page -> + page.resources.fontNames.forEach { fontName -> + val pdFont = page.resources.getFont(fontName) + if (pdFont is PDType0Font) { + pdFont.descendantFont?.fontDescriptor?.cosObject?.removeItem(COSName.CID_SET) + } + } + } + } + + return Pair( + ByteArrayOutputStream().also { + pdfStructure.template.save(it) + pdfStructure.template.close() + }.toByteArray(), + alternativeTableCaption) + } catch (e: Throwable) { + logger.warn("Failed to create visual signature block", e) + throw PdfAsException("Failed to create visual signature block", e) + } + } + + fun createSignatureRectangle( + pageWidth: Float, pageHeight: Float, + /** from left edge of page */ + signaturePosX: Float, + /** from top edge of page */ + signaturePosY: Float, + signatureWidth: Float, signatureHeight: Float, rotationDegrees: Float, pageRotationDegrees: Int + ): PDRectangle { + val leftX = signaturePosX + /** from bottom edge of page */ + val topY = pageHeight - signaturePosY + logger.debug("POS: ({}, {})", leftX, topY) + logger.debug("SIZE: {} by {}", signatureWidth, signatureHeight) + val upperRight = Point2D.Float(leftX + signatureWidth, topY) + val lowerLeft = Point2D.Float(leftX, topY - signatureHeight) + logger.debug("Corners: upper right {}, lower left {}", upperRight, lowerLeft) + + ((rotationDegrees + pageRotationDegrees) % 360).takeIf { it != 0.0f } + ?.let { deg -> + AffineTransform().apply { + setToRotation( + Math.toRadians(deg.toDouble()), + lowerLeft.x.toDouble(), + lowerLeft.y.toDouble()) + }.let { + it.transform(upperRight, upperRight) + it.transform(lowerLeft, lowerLeft) + } + } + logger.debug("Rotated corners: upper right {}, lower left {}", upperRight, lowerLeft) + + when (pageRotationDegrees) { + 90 -> AffineTransform().apply { + setToTranslation( + (pageHeight - topY - leftX + signatureHeight).toDouble(), + (leftX + signatureHeight - topY).toDouble() + ) + } + 180 -> AffineTransform().apply { + setToTranslation( + (pageWidth - 2 * leftX).toDouble(), + (pageHeight - 2 * (topY - signatureHeight)).toDouble() + ) + } + 270 -> AffineTransform().apply { + setToTranslation( + (-signatureHeight + topY - leftX).toDouble(), + (pageWidth - (topY - signatureHeight) - leftX).toDouble() + ) + } + else -> null + }?.let { + it.transform(upperRight, upperRight) + it.transform(lowerLeft, lowerLeft) + } + logger.debug("Adjusted for page rotation: upper right {}, lower left {}", upperRight, lowerLeft) + + return PDRectangle().apply { + upperRightX = upperRight.x + upperRightY = upperRight.y + lowerLeftX = lowerLeft.x + lowerLeftY = lowerLeft.y + }.also { logger.debug("Signature rectangle: {}", it) } + } + + data class ImageObject(val image: PDImageXObject, /** width/height */ val aspectRatio: Float) + + object Table { + fun draw( + mainTable: PDFBOXStamper.Table, + document: PDDocument, page: PDPage, + width: Float, height: Float, + signatureProfileSettings: SignatureProfileSettings, globalSettings: ISettings + ): Pair<String, PDResources> { + val innerFormResources = PDResources() + page.resources = innerFormResources + PDPageContentStream(document, page).use { stream -> + val imageCache = mutableMapOf<String, ImageObject>() + val alternativeTableCaption = stream.drawTable( + mainTable, isSubtable = false, + 0.0f, 1.0f, width, height, + document, innerFormResources, imageCache, signatureProfileSettings, globalSettings + ) + return Pair(alternativeTableCaption, innerFormResources) + } + } + + private fun PDPageContentStream.drawTable( + table: PDFBOXStamper.Table, isSubtable: Boolean, + tableLeftX: Float, tableBottomY: Float, width: Float, height: Float, + document: PDDocument, innerFormResources: PDResources, imageCache: MutableMap<String, ImageObject>, + signatureProfileSettings: SignatureProfileSettings, globalSettings: ISettings + ): String { + + logger.debug("Drawing table at ({},{}), size {} by {}\n{}", tableLeftX, tableBottomY, width, height, table.abstractTable) + table.abstractTable.width = width + + // draw background + table.bgColor?.let { drawRect(tableLeftX, tableBottomY, table.width, table.height, it) } + + val colSizes = (table.colRelativeWidths ?: FloatArray(table.colCount) { 1.0f }).let { sizes -> + val factor = width / sizes.sum() + FloatArray(sizes.size) { sizes[it]*factor } + } + + val alternateTableCaption = StringBuilder() + + (0..<table.rowCount).asSequence() + .map { it to table.getRow(it) } + .fold(tableBottomY + height) + { rowTopY, (rowIdx, row) -> + (rowTopY - table.rowHeights[rowIdx]).also { rowBottomY -> + // draw top line of row + drawLine(tableLeftX, rowTopY, tableLeftX + width, rowTopY, table.style.border, Color.BLACK) + + var cellLeftX = tableLeftX + var colIdx = 0 + while (true) { + // left border + drawLine(cellLeftX, rowTopY, cellLeftX, rowBottomY, table.style.border, Color.BLACK) + + if (colIdx >= row.size) break + + val cell = row[colIdx] + val nextColIdx = colIdx + cell.colSpan + val cellRightX = cellLeftX + (colIdx..<nextColIdx).asSequence().map(colSizes::get).sum() + + // taken from pdfbox 2 code: + // "cell only contains default values so table style is the primary style" + cell.style = Style.doInherit(table.style, cell.style) + + when (cell.type) { + Entry.TYPE_CAPTION -> { + val captionText = cell.value as String + alternateTableCaption.append(captionText).append(":\n") + drawString( + content = captionText, + leftX = cellLeftX, topY = rowTopY, + width = cellRightX - cellLeftX, height = rowTopY - rowBottomY, + hAlign = cell.style.hAlign, vAlign = cell.style.vAlign, + padding = table.padding, font = table.font, color = Color.BLACK, + settings = globalSettings + ) + } + Entry.TYPE_VALUE -> { + val cellText = cell.value as String + alternateTableCaption.append(cellText).append('\n') + drawString( + content = cellText, + leftX = cellLeftX, topY = rowTopY, + width = cellRightX - cellLeftX, height = rowTopY - rowBottomY, + hAlign = cell.style.valueHAlign, vAlign = cell.style.valueVAlign, + padding = table.padding, font = table.valueFont, color = Color.BLACK, + settings = globalSettings + ) + } + Entry.TYPE_IMAGE -> + drawImage( + imageIdentifier = cell.value as String, + leftX = cellLeftX, topY = rowTopY, + width = cellRightX - cellLeftX, height = rowTopY - rowBottomY, + padding = table.padding, + scaleToFit = table.style.imageScaleToFit, + hAlign = cell.style.imageHAlign, vAlign = cell.style.imageVAlign, + document = document, innerFormResources = innerFormResources, + imageCache = imageCache, globalSettings = globalSettings, + signatureProfileSettings = signatureProfileSettings + ) + Entry.TYPE_TABLE -> { + val subTable = cell.value as PDFBOXStamper.Table + subTable.abstractTable.style = Style.doInherit(table.style, cell.style) + drawTable( + subTable, isSubtable = true, + tableLeftX = cellLeftX, tableBottomY = rowBottomY, + width = cellRightX - cellLeftX, height = rowTopY - rowBottomY, + document = document, innerFormResources = innerFormResources, + signatureProfileSettings = signatureProfileSettings, + imageCache = imageCache, globalSettings = globalSettings + ).also { alternateTableCaption.append(it) } + } + } + + // setup next iteration + cellLeftX = cellRightX + colIdx = nextColIdx + } + } + }.also { + // draw bottom table border + drawLine(tableLeftX, it, tableLeftX + width, it, table.style.border, Color.BLACK) + } + + return alternateTableCaption.toString() + } + + private fun PDPageContentStream.drawRect( + leftX: Float, bottomY: Float, width: Float, height: Float, + color: Color + ) { + setNonStrokingColor(color) + addRect(leftX, bottomY, width, height) + fill() + } + + private fun PDPageContentStream.drawLine( + startX: Float, startY: Float, + endX: Float, endY: Float, + width: Float, color: Color + ) { + if (width <= 0) return + setStrokingColor(color) + setLineWidth(width) + moveTo(startX, startY) + lineTo(endX, endY) + stroke() + } + + private fun PDDocument.loadImage( + identifier: String, + signatureProfileSettings: SignatureProfileSettings, globalSettings: ISettings + ) : ImageObject { + var image = ImageUtils.getImage(identifier, globalSettings) + if ( + signatureProfileSettings.isPDFA || + /* not sure what this does -- copied from pdfbox 2 code */ + ((image.alphaRaster == null) && image.colorModel.hasAlpha()) + ) { + image = ImageUtils.removeAlphaChannel(image) + } + return ImageObject( + image = LosslessFactory.createFromImage(this@loadImage, image), + aspectRatio = image.width.toFloat() / image.height.toFloat() + ) + } + + private fun PDPageContentStream.drawImage( + imageIdentifier: String, + leftX: Float, topY: Float, width: Float, height: Float, padding: Float, + scaleToFit: Style.ImageScaleToFit?, hAlign: String?, vAlign: String?, + document: PDDocument, innerFormResources: PDResources, imageCache: MutableMap<String, ImageObject>, + signatureProfileSettings: SignatureProfileSettings, globalSettings: ISettings + ) { + val image = imageCache.computeIfAbsent(imageIdentifier) { identifier -> + document.loadImage(identifier, signatureProfileSettings, globalSettings).also { + innerFormResources.add(it.image, "Im") + } + } + + val cellWidth = (width - 2*padding) + val cellHeight = (height - 2*padding) + + val renderBoxWidth = scaleToFit?.width ?: cellWidth + val renderBoxHeight = scaleToFit?.height ?: cellHeight + val boxAspectRatio = renderBoxWidth/renderBoxHeight + val (imageWidth, imageHeight) = when { + boxAspectRatio > image.aspectRatio -> + /** box width is too wide, height is limiting factor */ + Pair(renderBoxHeight * image.aspectRatio, renderBoxHeight) + boxAspectRatio < image.aspectRatio -> + /** box width is too low, width is limiting factor */ + Pair(renderBoxWidth, renderBoxWidth / image.aspectRatio) + else -> + Pair(renderBoxWidth, renderBoxHeight) + } + assert(imageWidth <= renderBoxWidth) + assert(imageHeight <= renderBoxHeight) + + val imageLeftX = leftX + padding + when (hAlign) { + Style.RIGHT -> (cellWidth - imageWidth) + Style.LEFT -> 0.0f + else -> (cellWidth - imageWidth)/2 + } + val imageTopY = topY - padding - when (vAlign) { + Style.BOTTOM -> (cellHeight - imageHeight) + Style.MIDDLE -> (cellHeight - imageHeight)/2 + else -> 0.0f + } + drawImage(image.image, imageLeftX, imageTopY - imageHeight, imageWidth, imageHeight) + } + + private fun PDPageContentStream.drawString( + content: String, + leftX: Float, topY: Float, width: Float, height: Float, padding: Float, font: PDFBOXStamper.Table.Font, + hAlign: String?, vAlign: String?, color: Color, settings: ISettings + ) { + + val lines = content.split('\n') + val actualHeight = height - 2*padding + val actualWidth = width - 2*padding + + val textHeight = font.fontSize*lines.size + val actualY = (topY - padding) - when (vAlign) { + Style.BOTTOM -> (actualHeight - textHeight) + Style.MIDDLE -> (actualHeight - textHeight)/2 + else -> 0.0f + } + + setNonStrokingColor(color) + beginText() + if ((hAlign == Style.LINECENTER) && (lines.size > 1)) { + setFont(font.font, font.fontSize) + var previousBonusPadding by Delegates.notNull<Float>() + lines.forEachIndexed { i, line -> + val width = font.font.getStringWidth(line) / 1000.0f * font.fontSize + val bonusPadding = (actualWidth - width) / 2.0f + if (i == 0) { + newLineAtOffset( + leftX + padding + bonusPadding, + (actualY - (1 + font.font.fontDescriptor.descent / 1000.0f) * font.fontSize) + ) + } else { + newLineAtOffset(bonusPadding - previousBonusPadding, -font.fontSize) + } + showText(line) + previousBonusPadding = bonusPadding + } + } else { + val textWidth by lazy { lines.maxOf { font.font.getStringWidth(it) } / 1000.0f * font.fontSize } + val actualX = (leftX + padding) + when (hAlign) { + Style.CENTER, Style.LINECENTER -> (actualWidth - textWidth)/2 + Style.RIGHT -> (actualWidth - textWidth) + else -> 0.0f + } + setFont(font.font, font.fontSize) + lines.forEachIndexed { i, line -> + if (i == 0) { + newLineAtOffset( + actualX, + (actualY - (1 + font.font.fontDescriptor.descent / 1000.0f) * font.fontSize) + ) + } else { + newLineAtOffset(0.0f, -font.fontSize) + } + + showText(line) + } + } + endText() + } + } +}
\ No newline at end of file diff --git a/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox3/PDFBOXStamper.kt b/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox3/PDFBOXStamper.kt new file mode 100644 index 00000000..fe1f70b9 --- /dev/null +++ b/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox3/PDFBOXStamper.kt @@ -0,0 +1,332 @@ +package at.gv.egiz.pdfas.lib.impl.stamping.pdfbox3 + +import at.gv.egiz.pdfas.common.exceptions.PdfAsException +import at.gv.egiz.pdfas.common.settings.ISettings +import at.gv.egiz.pdfas.common.utils.ImageUtils +import at.gv.egiz.pdfas.common.utils.StringUtils +import at.gv.egiz.pdfas.lib.impl.pdfbox3.PDFBOXObject +import at.gv.egiz.pdfas.lib.impl.stamping.IPDFStamper +import at.gv.egiz.pdfas.lib.impl.stamping.IPDFVisualObject +import at.gv.egiz.pdfas.lib.impl.status.PDFObject +import at.knowcenter.wag.egov.egiz.pdf.PositioningInstruction +import at.knowcenter.wag.egov.egiz.table.Entry +import at.knowcenter.wag.egov.egiz.table.Style +import org.apache.pdfbox.pdmodel.font.PDFont +import org.apache.pdfbox.pdmodel.font.PDType1Font +import org.apache.pdfbox.pdmodel.font.Standard14Fonts +import org.slf4j.LoggerFactory +import java.io.IOException +import java.io.UnsupportedEncodingException +import kotlin.math.floor +import kotlin.math.log +import kotlin.properties.Delegates +import at.knowcenter.wag.egov.egiz.table.Table as AbstractTable + +object PDFBOXStamper: IPDFStamper<PDFBOXObject> { + private val logger = LoggerFactory.getLogger(PDFBOXStamper::class.java) + + override fun createVisualPDFObject(pdf: PDFBOXObject, table: AbstractTable) = + VisualObject(table, pdf) + + class VisualObject(abstractTable: AbstractTable, val pdf: PDFBOXObject): IPDFVisualObject { + val settings get() = pdf.status.settings + var table = Table(abstractTable, null, pdf) + val abstractTable get() = table.abstractTable + + // this is necessary to mirror the strange behavior of setWidth/getWidth + // setWidth needs to be followed by fixWidth to take effect + // getWidth always returns the current effective width + private var pendingWidth: Float? = null + override fun getWidth() = table.width + override fun setWidth(width: Float) { this.pendingWidth = width } + override fun fixWidth() { + val newWidth = pendingWidth ?: return + try { + table = Table(abstractTable, null, newWidth, pdf) + pendingWidth = null + } catch (e: Exception) { + logger.warn("Failed to fix width of Table", e) + } + } + + override fun getHeight() = table.height + + var x by Delegates.notNull<Float>() + override fun setXPos(x: Float) { this.x = x } + + var y by Delegates.notNull<Float>() + override fun setYPos(y: Float) { this.y = y } + + private var _page: Int? = null + override fun getPage() = _page!! + override fun setPage(page: Int) { this._page = page } + + } + + class Table private constructor(val abstractTable: AbstractTable, parent: Table?, val pdf: PDFBOXObject, dummy: Unit) { + constructor(abstractTable: AbstractTable, parent: Table?, pdf: PDFBOXObject) : this(abstractTable, parent, pdf, Unit) { + colWidths = FloatArray(abstractTable.maxCols) { 0.0f } + rowHeights = FloatArray(abstractTable.rows.size) { 0.0f } + abstractTable.rows.forEachIndexed { i, row -> + var j = 0 + while (j < row.size) { + val cell = row[j] + colWidths[j] = maxOf(colWidths[j], getCellWidth(cell)) + rowHeights[i] = maxOf(rowHeights[i], getCellHeight(cell)) + j += cell.colSpan + } + } + width = colWidths.sum() + height = rowHeights.sum() + abstractTable.rows.forEachIndexed { i, row -> for (cell in row) { + if (cell.type != Entry.TYPE_TABLE) continue + (cell.value as Table).let { + if (rowHeights[i] != it.height) it.setHeight(rowHeights[i]) + } + }} + } + constructor(abstractTable: AbstractTable, parent: Table?, fixSize: Float, pdf: PDFBOXObject) : this(abstractTable, parent, pdf, Unit) { + val relativeSizes = abstractTable.colsRelativeWith + if (relativeSizes != null) { + val factor = fixSize / relativeSizes.sum() + colWidths = FloatArray(relativeSizes.size) { relativeSizes[it] * factor } + } else { + val width = fixSize / abstractTable.maxCols + colWidths = FloatArray(abstractTable.maxCols) { width } + } + + rowHeights = FloatArray(abstractTable.rows.size) { 0.0f } + + abstractTable.rows.forEachIndexed { i, row -> + var j = 0 + while (j < row.size) { + val cell = row[j] + + val max = j + cell.colSpan + if (max > colWidths.size) { + throw IOException("Configuration error. Cannot determine column width! (Colspan ${cell.colSpan} at col $j is out of bounds for ${colWidths.size}.)") + } + val thisCellWidth = (j until max).asSequence().map(colWidths::get).sum() + rowHeights[i] = maxOf(rowHeights[i], getCellHeight(cell, thisCellWidth)) + j = max + } + } + + width = colWidths.sum() + height = rowHeights.sum() + abstractTable.rows.forEachIndexed { i, row -> for (cell in row) { + if (cell.type != Entry.TYPE_TABLE) continue + (cell.value as Table).let { + if (rowHeights[i] != it.height) it.setHeight(rowHeights[i]) + } + }} + } + val settings get() = pdf.status.settings + val name get() = abstractTable.name + val style: Style = when (parent) { + null -> abstractTable.style + else -> Style.doInherit(abstractTable.style, parent.style) + } ?: throw IOException("Failed to determine Table style for ${abstractTable.name}") + val font: Font + val valueFont: Font + private fun fontFor(type: Int) = when (type) { + Entry.TYPE_CAPTION -> font + Entry.TYPE_VALUE -> valueFont + else -> throw IllegalArgumentException("type $type") + } + init { + val valueFontString = style.valueFont + if (parent != null && style == parent.style) { + font = parent.font + valueFont = parent.valueFont + } else { + font = Font(style.font ?: parent?.style?.font ?: + throw IOException("Failed to determine Table font style for $name")) + valueFont = Font(style.valueFont ?: parent?.style?.valueFont ?: + throw IOException("Failed to determine Table value font style for $name")) + } + } + val padding get() = style.padding + val bgColor get() = style.bgColor + + init { /** normalizeContent */ + try { + for (row in abstractTable.rows) for (cell in row) { + val font = when (cell.type) { + Entry.TYPE_CAPTION -> font + Entry.TYPE_VALUE -> valueFont + else -> continue + }.font + val value = cell.value as String + try { + font.getStringWidth(value) + } catch (e: Exception) { + when (e) { + is IOException, is IllegalArgumentException -> { + logger.warn("Font ${font.name} does not support every character in value '$value'") + cell.value = StringUtils.convertStringToPDFFormat(value) + } + else -> throw e + } + } + } + } catch (e: UnsupportedEncodingException) { + throw PdfAsException("Unsupported Encoding", e) + } + } + + var width by Delegates.notNull<Float>() + var height: Float = 0.0f; private set + fun setHeight(newHeight: Float) { + val delta = newHeight - height + if (delta > 0) { + rowHeights[rowHeights.lastIndex] += delta + height = rowHeights.sum() + } else { + logger.warn("Table cannot be this small! (request to resize by $delta)") + } + } + val rowCount get() = abstractTable.rows.size + fun getRow(i: Int) = abstractTable.rows[i] + val colCount get() = abstractTable.maxCols + val colRelativeWidths: FloatArray? get() = abstractTable.colsRelativeWith + lateinit var colWidths: FloatArray private set + lateinit var rowHeights: FloatArray private set + + companion object { + private const val NB_SPACE = '\u00A0' + private const val SPACE = ' ' + private val DEFAULT_FONT by lazy { PDType1Font(Standard14Fonts.FontName.HELVETICA) } + private const val DEFAULT_FONT_SIZE = 8.0f + } + + inner class Font(fontString: String) { + val font: PDFont + val fontSize: Float + init { + val fontArr = fontString.split(',') + when { + fontArr.size == 3 -> { + font = pdf.generateFont(fontArr[0], fontArr[2]) + fontSize = fontArr[1].toFloat() + } + (fontArr.size == 2) && fontArr[0].startsWith("TTF:") -> { + font = pdf.generateFont(fontArr[0], null) + fontSize = fontArr[1].toFloat() + } + else -> { + logger.warn("Using default font because $fontString is not a valid font descriptor.") + font = DEFAULT_FONT + fontSize = DEFAULT_FONT_SIZE + } + } + } + } + + private fun resolveTableCell(cell: Entry): Table = when (val v = cell.value) { + is AbstractTable -> Table(v, this, pdf).also { cell.value = it } + is Table -> v + else -> throw IOException("Failed to build PDFBox Table") + } + private fun resolveTableCell(cell: Entry, fixedWidth: Float): Table = when (val v = cell.value) { + is AbstractTable -> Table(v, this, fixedWidth, pdf).also { cell.value = it } + is Table -> if (v.width == fixedWidth) v else Table(v.abstractTable, this, fixedWidth, pdf).also { cell.value = it } + else -> throw IOException("Failed to build PDFBox Table") + } + private fun getCellWidth(cell: Entry): Float = + when (cell.type) { + Entry.TYPE_CAPTION, Entry.TYPE_VALUE -> { + val theFont = fontFor(cell.type) + if (cell.value == null) cell.value = "" + (cell.value as String).replace(NB_SPACE, SPACE).split("\n").maxOf { + theFont.font.getStringWidth(it) / 1000 * theFont.fontSize + } + } + Entry.TYPE_IMAGE -> style.imageScaleToFit?.width ?: 80.0f + Entry.TYPE_TABLE -> resolveTableCell(cell).width + else -> { + logger.warn("Invalid cell entry type ${cell.type} when calculating width") + 0.0f + } + } + private fun getCellHeight(cell: Entry): Float = + when (cell.type) { + Entry.TYPE_CAPTION, Entry.TYPE_VALUE -> { + val theFontSize = fontFor(cell.type).fontSize + (cell.value as String).splitToSequence('\n').count() * theFontSize + 2 * padding + } + Entry.TYPE_IMAGE -> { + 2*padding + (style.imageScaleToFit?.height + ?: minOf( + ImageUtils.getImageDimensions(cell.value as String, settings).height, + 80).toFloat()) + } + Entry.TYPE_TABLE -> { + resolveTableCell(cell).height + } + else -> { + logger.warn("Invalid cell entry type ${cell.type} when calculating height") + 0.0f + } + } + + private fun getCellHeight(cell: Entry, width: Float): Float = + when (cell.type) { + Entry.TYPE_CAPTION, Entry.TYPE_VALUE -> { + val theFont = fontFor(cell.type) + // string splitting dark magic + val lines = breakString(cell.value as String, theFont, width - 2*padding) + cell.value = lines.joinToString("\n") + 2*padding + lines.size*theFont.fontSize + } + Entry.TYPE_IMAGE -> { + 2*padding + (style.imageScaleToFit?.height + ?: ImageUtils.getImageDimensions(cell.value as String, settings).let { + floor(it.height * ((width - 2 * padding) / it.width)) + }) + } + Entry.TYPE_TABLE -> { + resolveTableCell(cell, width).height + } + else -> { + logger.warn("Invalid cell entry type ${cell.type} when calculating height") + 0.0f + } + } + + private fun breakString(str: String, font: Font, boxWidth: Float) = buildList<String> { + str.splitToSequence('\n').forEach { line -> + /* null means there is nothing to put on this line (the line should not be added); + by contrast, empty string is "something" (will be added as a line) */ + var currentLine: String? = null + line.splitToSequence(SPACE) + .map { it.replace(NB_SPACE, SPACE) } + .forEach { word -> + if (word.isEmpty()) { + // make sure the current line will get printed even if it is an empty line + if (currentLine == null) currentLine = "" + return@forEach + } + /* try to append the word to the current line... */ + val maybeNewCurrentLine = when (currentLine) { + null, "" -> word + else -> "$currentLine $word" + } + /* ... and check if this would still fit in the box */ + val newCurrentLineWidth = font.font.getStringWidth(maybeNewCurrentLine) / 1000.0f * font.fontSize + if (newCurrentLineWidth <= boxWidth) { + /* if it does, add the word to the current line and continue */ + currentLine = maybeNewCurrentLine + } else { + /* if it does not, print the current line (if there is one) and start a new line */ + /* note that if the word by itself is overly wide it will still be printed + (in a line by itself) on the next iteration */ + currentLine?.let { add(it) } + currentLine = word + } + } + currentLine?.let { add(it) } + } + } + } +}
\ No newline at end of file diff --git a/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/verify/pdfbox3/PDFBOXVerifier.kt b/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/verify/pdfbox3/PDFBOXVerifier.kt new file mode 100644 index 00000000..7c442ac8 --- /dev/null +++ b/pdf-as-pdfbox-3/src/main/kotlin/at/gv/egiz/pdfas/lib/impl/verify/pdfbox3/PDFBOXVerifier.kt @@ -0,0 +1,66 @@ +package at.gv.egiz.pdfas.lib.impl.verify.pdfbox3 + +import at.gv.egiz.pdfas.common.settings.ISettings +import at.gv.egiz.pdfas.lib.api.verify.VerifyParameter +import at.gv.egiz.pdfas.lib.api.verify.VerifyResult +import at.gv.egiz.pdfas.lib.impl.verify.SignatureInputData +import at.gv.egiz.pdfas.lib.impl.verify.VerifierDispatcher +import at.gv.egiz.pdfas.lib.impl.verify.VerifyBackend +import org.apache.pdfbox.Loader +import org.apache.pdfbox.cos.COSDictionary +import org.apache.pdfbox.cos.COSName +import org.apache.pdfbox.cos.COSObject +import org.apache.pdfbox.cos.COSString +import org.apache.pdfbox.pdmodel.PDDocument + +object PDFBOXVerifier : VerifyBackend { + override fun verify(parameter: VerifyParameter): List<VerifyResult> { + val dispatcher = VerifierDispatcher(parameter.configuration as ISettings) + val pdfData = parameter.dataSource.inputStream.readAllBytes() + Loader.loadPDF(pdfData).use { document -> + val trailer = document.document.trailer ?: return emptyList() + val root = trailer.getCOSDictionary(COSName.ROOT) ?: return emptyList() + val acroForm = root.getCOSDictionary(COSName.ACRO_FORM) ?: return emptyList() + val fields = acroForm.getCOSArray(COSName.FIELDS) ?: return emptyList() + + val signatureIndex = parameter.whichSignature + val onlyVerifyThisSignature = when { + signatureIndex >= 0 -> parameter.whichSignature + // TODO: document this magic value somewhere? + signatureIndex == -2 -> -2 + else -> null + } + return fields.asSequence() + .filterIsInstance<COSObject>() + .mapNotNull { it.`object` as? COSDictionary } + .filter { it.getCOSName(COSName.FT) == COSName.SIG } + .let { + if (onlyVerifyThisSignature == -2) sequenceOf(it.last()) + else it.filterIndexed { i, _ -> onlyVerifyThisSignature?.equals(i) ?: true } + } + .mapNotNull { it.getCOSDictionary(COSName.V) } + .flatMap { dispatcher.checkSignature(it, pdfData, parameter) } + .toList() + } + } + + private fun VerifierDispatcher.checkSignature( + sigDict: COSDictionary, document: ByteArray, parameter: VerifyParameter + ): List<VerifyResult> { + val byteRanges = sigDict.getCOSArray(COSName.BYTERANGE).let { + IntArray(it.size(), it::getInt) + } + val filter = sigDict.getNameAsString(COSName.FILTER) + val subFilter = sigDict.getNameAsString(COSName.SUB_FILTER) + val content = sigDict.getDictionaryObject(COSName.CONTENTS) as COSString + + val filterVerifier = getVerifier(filter, subFilter) + val levelVerifier = getVerifierByLevel(parameter.signatureVerificationLevel) + synchronized(levelVerifier) { + levelVerifier.setConfiguration(parameter.configuration) + return filterVerifier.verify( + SignatureInputData(document, byteRanges), + content.bytes, parameter.verificationTime, levelVerifier) + } + } +}
\ No newline at end of file diff --git a/pdf-as-pdfbox-3/src/main/resources/META-INF/services/at.gv.egiz.pdfas.lib.backend.PDFASBackend b/pdf-as-pdfbox-3/src/main/resources/META-INF/services/at.gv.egiz.pdfas.lib.backend.PDFASBackend new file mode 100644 index 00000000..356fda73 --- /dev/null +++ b/pdf-as-pdfbox-3/src/main/resources/META-INF/services/at.gv.egiz.pdfas.lib.backend.PDFASBackend @@ -0,0 +1 @@ +at.gv.egiz.pdfas.lib.impl.pdfbox3.PDFBOXBackend
\ No newline at end of file diff --git a/pdf-as-pdfbox-3/src/main/resources/META-INF/services/at.gv.egiz.pdfas.lib.configuration.ConfigurationValidator b/pdf-as-pdfbox-3/src/main/resources/META-INF/services/at.gv.egiz.pdfas.lib.configuration.ConfigurationValidator new file mode 100644 index 00000000..25d5c14c --- /dev/null +++ b/pdf-as-pdfbox-3/src/main/resources/META-INF/services/at.gv.egiz.pdfas.lib.configuration.ConfigurationValidator @@ -0,0 +1 @@ +at.gv.egiz.pdfas.lib.impl.pdfbox3.configuration.ProfileValidator
\ No newline at end of file diff --git a/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/pdfbox3/SignVerifyTest.kt b/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/pdfbox3/SignVerifyTest.kt new file mode 100644 index 00000000..500b15ed --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/pdfbox3/SignVerifyTest.kt @@ -0,0 +1,102 @@ +package at.gv.egiz.pdfas.lib.impl.pdfbox3 + +import at.gv.egiz.pdfas.lib.api.ByteArrayDataSource +import at.gv.egiz.pdfas.lib.api.PdfAs +import at.gv.egiz.pdfas.lib.api.PdfAsFactory +import at.gv.egiz.pdfas.lib.api.sign.IPlainSigner +import at.gv.egiz.pdfas.lib.api.sign.SignParameter +import at.gv.egiz.pdfas.lib.api.verify.VerifyParameter +import at.gv.egiz.pdfas.sigs.pades.PAdESSignerKeystore +import org.junit.Assert +import org.junit.BeforeClass +import org.junit.ClassRule +import org.junit.Test +import org.junit.rules.TemporaryFolder +import org.junit.runner.RunWith +import org.junit.runners.BlockJUnit4ClassRunner +import org.zeroturnaround.zip.ZipUtil +import java.io.ByteArrayOutputStream +import java.security.KeyStore +import jakarta.activation.DataSource + +@RunWith(BlockJUnit4ClassRunner::class) +class SignVerifyTest { + companion object { + @JvmField + @field:ClassRule + public val tempFolder = TemporaryFolder() + + lateinit var pdfAs: PdfAs + fun captureSign(param: SignParameter): ByteArray = + ByteArrayOutputStream().use { + param.outputStream = it + pdfAs.sign(param) + it.toByteArray() + } + + fun captureSign(pdf: DataSource, signer: IPlainSigner) = + captureSign( + PdfAsFactory.createSignParameter(pdfAs.configuration, pdf, null) + .apply { plainSigner = signer } + ) + + @JvmStatic + @BeforeClass + fun setUp() { + // unzip default config to temp dir + val configDir = tempFolder.newFolder() + ZipUtil.unpack( + PdfAs::class.java.getResourceAsStream("/config/config.zip"), + configDir + ) + pdfAs = PdfAsFactory.createPdfAs(configDir) + } + + val getInputPdf = object : Function1<String, ByteArrayDataSource> { + private val _map = mutableMapOf<String, ByteArrayDataSource>() + private fun normalize(key: String) = when { + key.endsWith(".pdf") -> key + else -> "$key.pdf" + } + + override operator fun invoke(key: String) = normalize(key).let { pdfName -> + _map.getOrPut(pdfName) { + SignVerifyTest::class.java.getResourceAsStream("/data/$pdfName").use { + ByteArrayDataSource(it!!.readAllBytes()) + } + } + } + } + + val getKeystoreSigner = object : Function1<String, PAdESSignerKeystore> { + private val _keyStore = KeyStore.getInstance("PKCS12").apply { + SignVerifyTest::class.java.getResourceAsStream("/test.p12").use { + load(it, "password".toCharArray()) + } + } + private val _map = mutableMapOf<String, PAdESSignerKeystore>() + override operator fun invoke(alias: String) = _map.getOrPut(alias) { + PAdESSignerKeystore(_keyStore, alias, "password") + } + } + } + + @Test + fun signVerify() { + val signedPdf = captureSign(getInputPdf("align.pdf"), getKeystoreSigner("test-key")) + val verificationResult = + PdfAsFactory.createVerifyParameter( + pdfAs.configuration, + ByteArrayDataSource(signedPdf) + ) + .apply { + signatureVerificationLevel = VerifyParameter.SignatureVerificationLevel.INTEGRITY_ONLY_VERIFICATION + } + .let(pdfAs::verify) + Assert.assertEquals(verificationResult.size, 1) + verificationResult[0].let { + Assert.assertTrue(it.isVerificationDone) + Assert.assertEquals(it.signerCertificate, getKeystoreSigner("test-key").getCertificate(null)) + } + } +} diff --git a/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/PDFBoxPlaceholderExtractorTest.java b/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/PDFBoxPlaceholderExtractorTest.java new file mode 100644 index 00000000..e766c385 --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/PDFBoxPlaceholderExtractorTest.java @@ -0,0 +1,69 @@ +package at.gv.egiz.pdfas.lib.impl.sign.pdfbox3; + +import static org.junit.Assert.*; + +import java.io.IOException; +import java.util.List; + +import org.apache.pdfbox.Loader; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.junit.Ignore; +import org.junit.Test; + +import at.gv.egiz.pdfas.lib.impl.pdfbox3.PDFBoxPlaceholderExtractor; +import at.gv.egiz.pdfas.lib.impl.placeholder.SignaturePlaceholderData; +import lombok.SneakyThrows; + +public class PDFBoxPlaceholderExtractorTest { + + @Test + @SneakyThrows + public void nextPlaceholder() { + SignaturePlaceholderData result = getNextSignaturePlaceHolder("/data/platzhalter_en_de_test.pdf"); + assertEquals("Im48", result.getPlaceholderName()); + } + + @Test + @SneakyThrows + public void allPlaceHolders() { + List<String> listOfPlaceHolders = getPlaceHolders("/data/platzhalter_en_de_test.pdf"); + assertNotNull(listOfPlaceHolders); + assertTrue(listOfPlaceHolders.isEmpty()); + } + + @Test + @SneakyThrows + public void nextPlaceholderDuplicateElements() { + assertEquals("Im0_1", getNextSignaturePlaceHolder("/data/Testdoc_Signatur.pdf").getPlaceholderName()); + assertEquals("Im0_2", getNextSignaturePlaceHolder("/data/own_Testdoc+Signatur-sign-sign.pdf").getPlaceholderName()); + assertEquals("Im0_2", getNextSignaturePlaceHolder("/data/own_Testdoc+Signatur-sign-sign-4_sign.pdf").getPlaceholderName()); + assertEquals("Im0", getNextSignaturePlaceHolder("/data/own_Testdoc+Signatur-sign-sign-4_sign-sign.pdf").getPlaceholderName()); + + } + + @Test + @Ignore + @SneakyThrows + public void placeHolderInAnnotation() { + SignaturePlaceholderData listOfPlaceHolders = getNextSignaturePlaceHolder("/data/Test-sign.pdf"); + assertNotNull(listOfPlaceHolders); + + } + + private static List<String> getPlaceHolders(String filePath) throws IOException { + try (final PDDocument doc = Loader.loadPDF( + PDFBoxPlaceholderExtractorTest.class.getResourceAsStream(filePath) + .readAllBytes())) { + return PDFBoxPlaceholderExtractor.findEmptySignatureFields(doc); + } + } + + private static SignaturePlaceholderData getNextSignaturePlaceHolder(String filePath) throws IOException { + try (final PDDocument doc = Loader.loadPDF( + PDFBoxPlaceholderExtractorTest.class.getResourceAsStream(filePath) + .readAllBytes())) { + return PDFBoxPlaceholderExtractor.getNextUnusedSignaturePlaceholder(doc); + } + } + +} diff --git a/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/SignatureFieldsAndPlaceHolderExtractorTest.java b/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/SignatureFieldsAndPlaceHolderExtractorTest.java new file mode 100644 index 00000000..e1a7f09b --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/SignatureFieldsAndPlaceHolderExtractorTest.java @@ -0,0 +1,182 @@ +package at.gv.egiz.pdfas.lib.impl.sign.pdfbox3; + +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.apache.pdfbox.pdmodel.PDDocument; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +import at.gv.egiz.pdfas.lib.impl.pdfbox2.placeholder.SignatureFieldsAndPlaceHolderExtractor; +import at.gv.egiz.pdfas.lib.impl.placeholder.SignaturePlaceholderData; + +@RunWith(JUnit4.class) +public class SignatureFieldsAndPlaceHolderExtractorTest { + + public String getPath(String resourceName) { + ClassLoader classLoader = this.getClass().getClassLoader(); + File file = new File(classLoader.getResource(resourceName).getFile()); + String absolutePath = file.getAbsolutePath(); + + System.out.println(absolutePath); + return absolutePath; + } + + @Test + public void notSigned(){ + SignaturePlaceholderData result = getNextSignaturePlaceHolder(getPath("new_qr_2-2.pdf")); + Assert.assertEquals("Image5",result.getPlaceholderName()); + } + @Test + public void signedOnce(){ + SignaturePlaceholderData result = getNextSignaturePlaceHolder(getPath("new_qr_2_signed.pdf")); + Assert.assertEquals("Image8",result.getPlaceholderName()); + } + @Test + public void signedTwice(){ + SignaturePlaceholderData result = getNextSignaturePlaceHolder(getPath("new_qr_2_signed_signed.pdf")); + Assert.assertEquals(null,result); + } + @Test + public void signedThrice(){ + SignaturePlaceholderData result = getNextSignaturePlaceHolder(getPath("new_qr_2_signed_signed_signed.pdf")); + Assert.assertEquals(null,result); + } + + @Test + public void noPlaceHolder(){ + SignaturePlaceholderData result = getNextSignaturePlaceHolder(getPath("manySignFields.pdf")); + Assert.assertEquals(null,result); + } + + @Test + public void firstQrCodeOnUnsignedDoc() { + SignaturePlaceholderData result = getNextSignaturePlaceHolder(getPath("new_qr_2-2.pdf")); + Assert.assertEquals("Image5",result.getPlaceholderName()); + + } + + @Test + public void subsequentCalls(){ + SignaturePlaceholderData result = getNextSignaturePlaceHolder(getPath("new_qr_2_signed_signed_signed.pdf")); + Assert.assertEquals(null,result); + + result = getNextSignaturePlaceHolder(getPath("new_qr_2_signed.pdf")); + Assert.assertEquals("Image8",result.getPlaceholderName()); + + result = getNextSignaturePlaceHolder(getPath("new_qr_2-2.pdf")); + Assert.assertEquals("Image5",result.getPlaceholderName()); + + result = getNextSignaturePlaceHolder(getPath("new_qr_2-2.pdf")); + Assert.assertEquals("Image5",result.getPlaceholderName()); + + result = getNextSignaturePlaceHolder(getPath("new_qr_2-2.pdf")); + Assert.assertEquals("Image5",result.getPlaceholderName()); + + result = getNextSignaturePlaceHolder(getPath("new_qr_2_signed.pdf")); + Assert.assertEquals("Image8",result.getPlaceholderName()); + + result = getNextSignaturePlaceHolder(getPath("new_qr_2_signed_signed_signed.pdf")); + Assert.assertEquals(null,result); + + result = getNextSignaturePlaceHolder(getPath("new_qr_2-2.pdf")); + Assert.assertEquals("Image5",result.getPlaceholderName()); + + result = getNextSignaturePlaceHolder(getPath("new_qr_2_signed.pdf")); + Assert.assertEquals("Image8",result.getPlaceholderName()); + } + @Test + public void notSignedAndNoFields(){ + List<String> result = getPlaceHolders(getPath("new_qr_2-2.pdf")); + + List<String> expectedResult = new ArrayList<>(); + Assert.assertEquals(expectedResult,result); + } + + @Test + public void notSignedFields(){ + List<String> result = getPlaceHolders(getPath("manySignFields.pdf")); + + List<String> expectedResult = Arrays.asList("Signature_0", "Signature_1", "Signature_2", "Signature_3", + "Signature_4", "Signature_5", "Signature_6", "Signature_7"); + Assert.assertEquals(expectedResult,result); + } + + @Test + public void signedOncePosition4FieldTest(){ + List<String> result = getPlaceHolders(getPath("manySignFields_signed4.pdf")); + + List<String> expectedResult = Arrays.asList("Signature_0", "Signature_1", "Signature_2", "Signature_3", + "Signature_5", "Signature_6", "Signature_7"); + Assert.assertEquals(expectedResult,result); + } + + @Test + public void multipleCallsFieldTest(){ + List<String> result = getPlaceHolders(getPath("manySignFields_signed4.pdf")); + List<String> expectedResult = Arrays.asList("Signature_0", "Signature_1", "Signature_2", "Signature_3", + "Signature_5", "Signature_6", "Signature_7"); + Assert.assertEquals(expectedResult,result); + + result = getPlaceHolders(getPath("manySignFields_signed4.pdf")); + expectedResult = Arrays.asList("Signature_0", "Signature_1", "Signature_2", "Signature_3", + "Signature_5", "Signature_6", "Signature_7"); + Assert.assertEquals(expectedResult,result); + + result = getPlaceHolders(getPath("manySignFields.pdf")); + expectedResult = Arrays.asList("Signature_0", "Signature_1", "Signature_2", "Signature_3", + "Signature_4", "Signature_5", "Signature_6", "Signature_7"); + Assert.assertEquals(expectedResult,result); + + result = getPlaceHolders(getPath("manySignFields.pdf")); + expectedResult = Arrays.asList("Signature_0", "Signature_1", "Signature_2", "Signature_3", + "Signature_4", "Signature_5", "Signature_6", "Signature_7"); + Assert.assertEquals(expectedResult,result); + + result = getPlaceHolders(getPath("manySignFields_signed4.pdf")); + expectedResult = Arrays.asList("Signature_0", "Signature_1", "Signature_2", "Signature_3", + "Signature_5", "Signature_6", "Signature_7"); + Assert.assertEquals(expectedResult,result); + + result = getPlaceHolders(getPath("manySignFields_signed4.pdf")); + expectedResult = Arrays.asList("Signature_0", "Signature_1", "Signature_2", "Signature_3", + "Signature_5", "Signature_6", "Signature_7"); + Assert.assertEquals(expectedResult,result); + + result = getPlaceHolders(getPath("manySignFields.pdf")); + expectedResult = Arrays.asList("Signature_0", "Signature_1", "Signature_2", "Signature_3", + "Signature_4", "Signature_5", "Signature_6", "Signature_7"); + Assert.assertEquals(expectedResult,result); + + } + + private static List<String> getPlaceHolders(String filePath) { + try { + PDDocument doc = PDDocument.load(new File(filePath)); + List<String> results = SignatureFieldsAndPlaceHolderExtractor.findEmptySignatureFields(doc); +// System.out.println(filePath + ": " + result); + return results; + } catch (Throwable e) { + e.printStackTrace(); + } + return null; + } + + public static SignaturePlaceholderData getNextSignaturePlaceHolder(String filePath) { + try { + PDDocument doc = PDDocument.load(new File(filePath)); + SignaturePlaceholderData result = + SignatureFieldsAndPlaceHolderExtractor.getNextUnusedSignaturePlaceHolder(doc); +// System.out.println(filePath + ": " + result); + return result; + } catch (Throwable e) { + e.printStackTrace(); + } + return null; + } + +} diff --git a/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/TTFFontTest.java b/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/TTFFontTest.java new file mode 100644 index 00000000..ce395785 --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/sign/pdfbox3/TTFFontTest.java @@ -0,0 +1,46 @@ +package at.gv.egiz.pdfas.lib.impl.sign.pdfbox3; + +import java.io.File; +import java.util.Iterator; +import java.util.List; + +import org.apache.pdfbox.cos.COSBase; +import org.apache.pdfbox.cos.COSDictionary; +import org.apache.pdfbox.cos.COSName; +import org.apache.pdfbox.cos.COSObject; +import org.apache.pdfbox.pdmodel.PDDocument; + +public class TTFFontTest { + + public static void main(String[] args) { + try { + PDDocument doc = PDDocument.load(new File("/home/afitzek/Downloads/pdf_groesse/willenserklaerung_signedByUser.pdf")); + + List<COSObject> cosObjects = doc.getDocument().getObjectsByType(COSName.FONT); + + Iterator<COSObject> cosObjectIt = cosObjects.iterator(); + + while(cosObjectIt.hasNext()) { + COSObject cosObject = cosObjectIt.next(); + COSBase subType = ((COSDictionary)cosObject.getObject()).getItem(COSName.SUBTYPE); + COSBase baseFont = ((COSDictionary)cosObject.getObject()).getItem(COSName.BASE_FONT); + COSBase aTest = ((COSDictionary)cosObject.getObject()).getItem(COSName.A); + + System.out.println(aTest); + + if(subType.equals(COSName.TRUE_TYPE)) { + System.out.println("Object Number: " + cosObject.getObjectNumber() + + subType.toString()); + System.out.println(" BaseFont: " + baseFont.toString()); + } + + + } + + + } catch(Throwable e) { + e.printStackTrace(); + } + } + +} diff --git a/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/verify/pdfbox3/PDFBox2To3Test.kt b/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/verify/pdfbox3/PDFBox2To3Test.kt new file mode 100644 index 00000000..847018c4 --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/kotlin/at/gv/egiz/pdfas/lib/impl/verify/pdfbox3/PDFBox2To3Test.kt @@ -0,0 +1,93 @@ +package at.gv.egiz.pdfas.lib.impl.verify.pdfbox3 + +import at.gv.egiz.pdfas.lib.api.ByteArrayDataSource +import at.gv.egiz.pdfas.lib.api.PdfAs +import at.gv.egiz.pdfas.lib.api.PdfAsFactory +import at.gv.egiz.pdfas.lib.api.sign.SignParameter +import at.gv.egiz.pdfas.lib.api.verify.VerifyParameter +import at.gv.egiz.pdfas.sigs.pades.PAdESSignerKeystore +import org.junit.Assert +import org.junit.BeforeClass +import org.junit.ClassRule +import org.junit.Test +import org.junit.rules.TemporaryFolder +import org.junit.runner.RunWith +import org.junit.runners.BlockJUnit4ClassRunner +import org.zeroturnaround.zip.ZipUtil +import java.io.ByteArrayOutputStream +import java.security.KeyStore + +@RunWith(BlockJUnit4ClassRunner::class) +class PDFBox2To3Test { + + companion object { + @JvmField + @field:ClassRule + public val tempFolder = TemporaryFolder() + + lateinit var pdfAs: PdfAs + fun captureSign(param: SignParameter): ByteArray = + ByteArrayOutputStream().use { + param.outputStream = it + pdfAs.sign(param) + it.toByteArray() + } + + @JvmStatic + @BeforeClass + fun setUp() { + // unzip default config to temp dir + val configDir = tempFolder.newFolder() + ZipUtil.unpack( + PdfAs::class.java.getResourceAsStream("/config/config.zip"), + configDir + ) + pdfAs = PdfAsFactory.createPdfAs(configDir) + } + + val getInputPdf = object : Function1<String, ByteArrayDataSource> { + private val _map = mutableMapOf<String, ByteArrayDataSource>() + private fun normalize(key: String) = when { + key.endsWith(".pdf") -> key + else -> "$key.pdf" + } + + override operator fun invoke(key: String) = normalize(key).let { pdfName -> + _map.getOrPut(pdfName) { + PDFBox2To3Test::class.java.getResourceAsStream("/data/$pdfName").use { + ByteArrayDataSource(it!!.readAllBytes()) + } + } + } + } + + val getKeystoreSigner = object : Function1<String, PAdESSignerKeystore> { + private val _keyStore = KeyStore.getInstance("PKCS12").apply { + PDFBox2To3Test::class.java.getResourceAsStream("/test.p12").use { + load(it, "password".toCharArray()) + } + } + private val _map = mutableMapOf<String, PAdESSignerKeystore>() + override operator fun invoke(alias: String) = _map.getOrPut(alias) { + PAdESSignerKeystore(_keyStore, alias, "password") + } + } + } + + @Test + fun pdfBox2To3Test() { + val verificationResult = + PdfAsFactory.createVerifyParameter( + pdfAs.configuration, + getInputPdf("align_signed.pdf")) + .apply { + signatureVerificationLevel = VerifyParameter.SignatureVerificationLevel.INTEGRITY_ONLY_VERIFICATION + } + .let(PDFBOXVerifier::verify) + Assert.assertEquals(verificationResult.size, 1) + verificationResult[0].let { + Assert.assertTrue(it.isVerificationDone) + Assert.assertEquals(it.signerCertificate, getKeystoreSigner("test-key").getCertificate(null)) + } + } +}
\ No newline at end of file diff --git a/pdf-as-pdfbox-3/src/test/resources/1Sign_manyQR.pdf b/pdf-as-pdfbox-3/src/test/resources/1Sign_manyQR.pdf Binary files differnew file mode 100644 index 00000000..0784592a --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/resources/1Sign_manyQR.pdf diff --git a/pdf-as-pdfbox-3/src/test/resources/data/Test-sign.pdf b/pdf-as-pdfbox-3/src/test/resources/data/Test-sign.pdf Binary files differnew file mode 100644 index 00000000..7395663e --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/resources/data/Test-sign.pdf diff --git a/pdf-as-pdfbox-3/src/test/resources/data/Testdoc_Signatur.pdf b/pdf-as-pdfbox-3/src/test/resources/data/Testdoc_Signatur.pdf Binary files differnew file mode 100644 index 00000000..81af9006 --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/resources/data/Testdoc_Signatur.pdf diff --git a/pdf-as-pdfbox-3/src/test/resources/data/align.pdf b/pdf-as-pdfbox-3/src/test/resources/data/align.pdf Binary files differnew file mode 100644 index 00000000..274d28d0 --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/resources/data/align.pdf diff --git a/pdf-as-pdfbox-3/src/test/resources/data/align_signed.pdf b/pdf-as-pdfbox-3/src/test/resources/data/align_signed.pdf Binary files differnew file mode 100644 index 00000000..7860a66f --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/resources/data/align_signed.pdf diff --git a/pdf-as-pdfbox-3/src/test/resources/data/own_Testdoc+Signatur-sign-sign-4_sign-sign.pdf b/pdf-as-pdfbox-3/src/test/resources/data/own_Testdoc+Signatur-sign-sign-4_sign-sign.pdf Binary files differnew file mode 100644 index 00000000..d1623f5e --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/resources/data/own_Testdoc+Signatur-sign-sign-4_sign-sign.pdf diff --git a/pdf-as-pdfbox-3/src/test/resources/data/own_Testdoc+Signatur-sign-sign-4_sign.pdf b/pdf-as-pdfbox-3/src/test/resources/data/own_Testdoc+Signatur-sign-sign-4_sign.pdf Binary files differnew file mode 100644 index 00000000..72d6007f --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/resources/data/own_Testdoc+Signatur-sign-sign-4_sign.pdf diff --git a/pdf-as-pdfbox-3/src/test/resources/data/own_Testdoc+Signatur-sign-sign.pdf b/pdf-as-pdfbox-3/src/test/resources/data/own_Testdoc+Signatur-sign-sign.pdf Binary files differnew file mode 100644 index 00000000..5c472d46 --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/resources/data/own_Testdoc+Signatur-sign-sign.pdf diff --git a/pdf-as-pdfbox-3/src/test/resources/data/own_Testdoc+Signatur-sign.pdf b/pdf-as-pdfbox-3/src/test/resources/data/own_Testdoc+Signatur-sign.pdf Binary files differnew file mode 100644 index 00000000..1bda36c6 --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/resources/data/own_Testdoc+Signatur-sign.pdf diff --git a/pdf-as-pdfbox-3/src/test/resources/data/platzhalter_en_de_test.pdf b/pdf-as-pdfbox-3/src/test/resources/data/platzhalter_en_de_test.pdf Binary files differnew file mode 100644 index 00000000..06b9aa0e --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/resources/data/platzhalter_en_de_test.pdf diff --git a/pdf-as-pdfbox-3/src/test/resources/manySignFields.pdf b/pdf-as-pdfbox-3/src/test/resources/manySignFields.pdf Binary files differnew file mode 100644 index 00000000..970cd132 --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/resources/manySignFields.pdf diff --git a/pdf-as-pdfbox-3/src/test/resources/manySignFields_signed4.pdf b/pdf-as-pdfbox-3/src/test/resources/manySignFields_signed4.pdf Binary files differnew file mode 100644 index 00000000..fb639c99 --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/resources/manySignFields_signed4.pdf diff --git a/pdf-as-pdfbox-3/src/test/resources/new_qr_2-2.pdf b/pdf-as-pdfbox-3/src/test/resources/new_qr_2-2.pdf Binary files differnew file mode 100644 index 00000000..565ce8e6 --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/resources/new_qr_2-2.pdf diff --git a/pdf-as-pdfbox-3/src/test/resources/new_qr_2_signed.pdf b/pdf-as-pdfbox-3/src/test/resources/new_qr_2_signed.pdf Binary files differnew file mode 100644 index 00000000..be6fdddb --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/resources/new_qr_2_signed.pdf diff --git a/pdf-as-pdfbox-3/src/test/resources/new_qr_2_signed_signed.pdf b/pdf-as-pdfbox-3/src/test/resources/new_qr_2_signed_signed.pdf Binary files differnew file mode 100644 index 00000000..ee0f140f --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/resources/new_qr_2_signed_signed.pdf diff --git a/pdf-as-pdfbox-3/src/test/resources/new_qr_2_signed_signed_signed.pdf b/pdf-as-pdfbox-3/src/test/resources/new_qr_2_signed_signed_signed.pdf Binary files differnew file mode 100644 index 00000000..34769dd0 --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/resources/new_qr_2_signed_signed_signed.pdf diff --git a/pdf-as-pdfbox-3/src/test/resources/test.p12 b/pdf-as-pdfbox-3/src/test/resources/test.p12 Binary files differnew file mode 100644 index 00000000..0096779d --- /dev/null +++ b/pdf-as-pdfbox-3/src/test/resources/test.p12 diff --git a/pdf-as-tests/build.gradle b/pdf-as-tests/build.gradle index 95b953d6..1cc793f7 100644 --- a/pdf-as-tests/build.gradle +++ b/pdf-as-tests/build.gradle @@ -8,7 +8,7 @@ jar { } repositories { - maven { url "https://apps.egiz.gv.at/maven-internal/" } + maven { url = "https://apps.egiz.gv.at/maven-internal/" } // mavenLocal() // mavenCentral() // maven { url "https://repository.jboss.org/maven2/" } @@ -18,12 +18,16 @@ repositories { configurations{ pdfBox2Compile + pdfBox3Compile } sourceSets{ pdfBox2{ compileClasspath = configurations.pdfBox2Compile } + pdfBox3{ + compileClasspath = configurations.pdfBox3Compile + } } dependencies { @@ -33,10 +37,11 @@ dependencies { implementation project (':signature-standards:sigs-pkcs7detached') implementation project (':signature-standards:sigs-pades') - implementation group: 'org.slf4j', name: 'slf4j-api', version: '1.7.36' - implementation group: 'javax.activation', name: 'activation', version: '1.1.1' + implementation group: 'org.slf4j', name: 'slf4j-api', version: slf4jVersion + implementation group: 'jakarta.activation', name: 'jakarta.activation-api', version: jakartaActivationVersion - implementation project (':pdf-as-pdfbox-2') + implementation project (':pdf-as-pdfbox-3') + implementation group: 'org.apache.pdfbox', name: 'preflight', version: pdfboxVersion } @@ -52,63 +57,68 @@ suiteDir.eachDir { File subDir -> def dirname = subDir.name logger.info("Test Suite " + subDir.name + " found in " + subDir.absolutePath) - task "runTestSuite${dirname.capitalize()}"(type: Test) { + tasks.register("runTestSuite${dirname.capitalize()}", Test) { test -> - description "runs tests from Test Suite: " + dirname + description = "runs tests from Test Suite: " + dirname systemProperties 'test.dir': subDir.absolutePath - if(dirname =="public_pdfbox2"){ + testClassesDirs = testing.suites.test.sources.output.classesDirs + classpath = testing.suites.test.sources.runtimeClasspath + + if (dirname =="public_pdfbox2"){ classpath += sourceSets.pdfBox2.compileClasspath compileTestJava.classpath += sourceSets.pdfBox2.compileClasspath + } else if (dirname == "public_pdfbox3") { + classpath += sourceSets.pdfBox3.compileClasspath + compileTestJava.classpath += sourceSets.pdfBox3.compileClasspath } include '**/ParameterizedSignatureTestSuite.class' beforeSuite { TestDescriptor descriptor -> - if(descriptor.getParent() == null) { - logger.quiet("++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); + test.logger.quiet("++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); } if(descriptor.getClassName().equals("at.gv.egiz.param_tests.ParameterizedSignatureTestSuite")) { - logger.quiet("Starting suite: " + dirname + " (" + descriptor.getName() + ")") + test.logger.quiet("Starting suite: " + dirname + " (" + descriptor.getName() + ")") } } afterSuite { TestDescriptor descriptor, TestResult result -> if(descriptor.getClassName().equals("at.gv.egiz.param_tests.ParameterizedSignatureTestSuite")) { - logger.quiet("------------------"); - logger.quiet("Ending suite: " + dirname); - logger.quiet("\tResult (SUCCESS/ERROR/SKIPPED/TOTAL): " + + test.logger.quiet("------------------"); + test.logger.quiet("Ending suite: " + dirname); + test.logger.quiet("\tResult (SUCCESS/ERROR/SKIPPED/TOTAL): " + result.getSuccessfulTestCount() + "/" + result.getFailedTestCount() + "/" + result.getSkippedTestCount() + "/" + result.getTestCount()); float duration_ms = result.getEndTime() - result.getStartTime() float duration_sec = duration_ms / 1000.0f - logger.quiet("\tDuration: " + duration_sec + " s [" + duration_ms + " ms]") - logger.quiet("\tReport @ file://" + subDir.absolutePath + "/index.html") + test.logger.quiet("\tDuration: " + duration_sec + " s [" + duration_ms + " ms]") + test.logger.quiet("\tReport @ file://" + subDir.absolutePath + "/index.html") } if(descriptor.getParent() == null) { - logger.quiet("++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); + test.logger.quiet("++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); } } beforeTest { TestDescriptor descriptor -> - logger.quiet("------------------"); - logger.info("Running test: " + descriptor.getName()) + test.logger.quiet("------------------"); + test.logger.info("Running test: " + descriptor.getName()) } afterTest { TestDescriptor descriptor, TestResult result -> float duration_ms = result.getEndTime() - result.getStartTime() float duration_sec = duration_ms / 1000.0f - logger.quiet(result.getResultType().toString() + " => [" + + test.logger.quiet(result.getResultType().toString() + " => [" + descriptor.getName() + "] took " + duration_sec + " s [" + duration_ms + " ms]") if(TestResult.ResultType.FAILURE.equals(result.getResultType())) { if(result.getException() != null) { - logger.error("Failed test: " + result.getException().getMessage()); + test.logger.error("Failed test: " + result.getException().getMessage()); result.getException().printStackTrace(); } else { - logger.error("Failed test provided no exception"); + test.logger.error("Failed test provided no exception"); } } } @@ -121,13 +131,13 @@ suiteDir.eachDir { File subDir -> - task "cleanTestSuite${dirname.capitalize()}"(type: Delete) { + tasks.register("cleanTestSuite${dirname.capitalize()}", Delete) { outputs.upToDateWhen { false } delete fileTree (dir: subDir.absolutePath, include: "index.html") delete fileTree (dir: subDir.absolutePath, include: "**/test_result.html") } - task "cleanOutFolders${dirname.capitalize()}"() { + tasks.register("cleanOutFolders${dirname.capitalize()}") { doLast { subDir.eachDir { File tcDir -> File outDir = new File(tcDir, "out"); @@ -148,6 +158,7 @@ suiteDir.eachDir { File subDir -> tasks.getByPath(":pdf-as-lib:test").dependsOn test test { + failOnNoDiscoveredTests = false include '**/DummyTest.class' beforeTest { TestDescriptor descriptor -> diff --git a/pdf-as-tests/src/test/java/at/gv/egiz/param_tests/PDFASignatureTest.java b/pdf-as-tests/src/test/java/at/gv/egiz/param_tests/PDFASignatureTest.java index 4c3e754b..e661bbc2 100644 --- a/pdf-as-tests/src/test/java/at/gv/egiz/param_tests/PDFASignatureTest.java +++ b/pdf-as-tests/src/test/java/at/gv/egiz/param_tests/PDFASignatureTest.java @@ -12,6 +12,7 @@ import java.util.Collection; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; +import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.preflight.PreflightDocument; import org.apache.pdfbox.preflight.ValidationResult; import org.apache.pdfbox.preflight.exception.SyntaxValidationException; @@ -134,15 +135,12 @@ public class PDFASignatureTest extends SignatureTest { * null) */ private Pair<ValidationResult, Throwable> checkPDFAConformance(File fd) { - PreflightDocument document = null; ValidationResult result = null; try { PreflightParser parser = new PreflightParser(fd); - parser.parse(); - document = parser.getPreflightDocument(); - document.validate(); - document.close(); - result = document.getResult(); + try (PreflightDocument document = (PreflightDocument) parser.parse()){ + result = document.validate(); + } return new ImmutablePair<ValidationResult, Throwable>(result, null); } catch (SyntaxValidationException e) { logger.debug("The file " + fd.getName() @@ -158,10 +156,6 @@ public class PDFASignatureTest extends SignatureTest { + ") occurred, while validating the PDF-A conformance of " + fd.getName(), e); return new ImmutablePair<ValidationResult, Throwable>(result, e); - } finally { - if (document != null) { - IOUtils.closeQuietly((Closeable)document); - } } } diff --git a/pdf-as-tests/src/test/java/at/gv/egiz/param_tests/SignaturePositionTest.java b/pdf-as-tests/src/test/java/at/gv/egiz/param_tests/SignaturePositionTest.java index 84d12cfb..5e40b4dd 100644 --- a/pdf-as-tests/src/test/java/at/gv/egiz/param_tests/SignaturePositionTest.java +++ b/pdf-as-tests/src/test/java/at/gv/egiz/param_tests/SignaturePositionTest.java @@ -19,6 +19,7 @@ import java.util.List; import javax.imageio.ImageIO; +import org.apache.pdfbox.Loader; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.rendering.PDFRenderer; import org.junit.Assume; @@ -323,10 +324,10 @@ public class SignaturePositionTest extends SignatureTest { */ private BufferedImage captureImage(String fileName, int pageNumber) throws InterruptedException { try { - PDDocument signedPdf = PDDocument.load(new File(fileName)); - PDFRenderer renderer = new PDFRenderer(signedPdf); - return renderer.renderImage(pageNumber - 1, ZOOM); - + try (PDDocument signedPdf = Loader.loadPDF(new File(fileName))) { + PDFRenderer renderer = new PDFRenderer(signedPdf); + return renderer.renderImage(pageNumber - 1, ZOOM); + } } catch (IOException e) { fail(String .format("Not possible to capture page %d of file %s, because of %s.", diff --git a/pdf-as-tests/src/test/java/at/gv/egiz/param_tests/SignatureTest.java b/pdf-as-tests/src/test/java/at/gv/egiz/param_tests/SignatureTest.java index f0e47896..2de7d65e 100644 --- a/pdf-as-tests/src/test/java/at/gv/egiz/param_tests/SignatureTest.java +++ b/pdf-as-tests/src/test/java/at/gv/egiz/param_tests/SignatureTest.java @@ -11,7 +11,7 @@ import java.security.cert.CertificateException; import java.util.Map; import java.util.UUID; -import javax.activation.DataSource; +import jakarta.activation.DataSource; import org.apache.commons.io.IOUtils; import org.junit.Rule; diff --git a/pdf-as-tests/src/test/java/at/gv/egiz/param_tests/provider/BaseSignatureDataProvider.java b/pdf-as-tests/src/test/java/at/gv/egiz/param_tests/provider/BaseSignatureDataProvider.java index 1ce78e14..629c9d1a 100644 --- a/pdf-as-tests/src/test/java/at/gv/egiz/param_tests/provider/BaseSignatureDataProvider.java +++ b/pdf-as-tests/src/test/java/at/gv/egiz/param_tests/provider/BaseSignatureDataProvider.java @@ -148,8 +148,7 @@ public abstract class BaseSignatureDataProvider { } else { String[] wildcards = testFilter.split(";"); childFiles = testDirFile - .listFiles((FilenameFilter) new WildcardFileFilter( - wildcards)); + .listFiles((FilenameFilter)WildcardFileFilter.builder().setWildcards(wildcards).get()); } int idx = 0; for (File child : childFiles) { diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_ABSOLUT_PAGE_LAST/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_ABSOLUT_PAGE_LAST/example_ref.png Binary files differdeleted file mode 100644 index 063bf516..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_ABSOLUT_PAGE_LAST/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_ABSOLUT_PAGE_NUM_HIGH/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_ABSOLUT_PAGE_NUM_HIGH/example_ref.png Binary files differdeleted file mode 100644 index 6f537317..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_ABSOLUT_PAGE_NUM_HIGH/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_DE/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_DE/example_ref.png Binary files differdeleted file mode 100644 index 3802aae4..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_DE/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_DE_SMALL/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_DE_SMALL/example_ref.png Binary files differdeleted file mode 100644 index 1eb82370..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_DE_SMALL/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_EN/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_EN/example_ref.png Binary files differdeleted file mode 100644 index ab26c869..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_EN/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_EN_SMALL/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_EN_SMALL/example_ref.png Binary files differdeleted file mode 100644 index 49f9b00e..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_EN_SMALL/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AUTO_WITH_NEWPAGE/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AUTO_WITH_NEWPAGE/example_ref.png Binary files differdeleted file mode 100644 index 6f537317..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AUTO_WITH_NEWPAGE/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST/example_ref.png Binary files differdeleted file mode 100644 index 063bf516..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST_ALREADY_SIGNED/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST_ALREADY_SIGNED/example_ref.png Binary files differdeleted file mode 100644 index e4445336..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST_ALREADY_SIGNED/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST_ALREADY_SIGNED_FORCE_NEW/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST_ALREADY_SIGNED_FORCE_NEW/example_ref.png Binary files differdeleted file mode 100644 index 6f537317..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST_ALREADY_SIGNED_FORCE_NEW/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST_WITH_POS/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST_WITH_POS/example_ref.png Binary files differdeleted file mode 100644 index f43f91dc..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST_WITH_POS/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE/example_ref.png Binary files differdeleted file mode 100644 index 75234dcc..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_MINIMAL/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_MINIMAL/example_ref.png Binary files differdeleted file mode 100644 index f01aaa6b..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_MINIMAL/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_NOTE/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_NOTE/example_ref.png Binary files differdeleted file mode 100644 index fc02f592..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_NOTE/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_PDFA/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_PDFA/example_ref.png Binary files differdeleted file mode 100644 index 4d8be34f..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_PDFA/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_PDFA_NOTE/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_PDFA_NOTE/example_ref.png Binary files differdeleted file mode 100644 index 126e877b..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_PDFA_NOTE/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_SMALL/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_SMALL/example_ref.png Binary files differdeleted file mode 100644 index 87e5e8f5..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_SMALL/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_SMALL_NOTE/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_SMALL_NOTE/example_ref.png Binary files differdeleted file mode 100644 index 8c9a6ff3..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_SMALL_NOTE/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN/example_ref.png Binary files differdeleted file mode 100644 index b7b30433..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_MINIMAL/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_MINIMAL/example_ref.png Binary files differdeleted file mode 100644 index 5bb02e82..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_MINIMAL/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_NOTE/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_NOTE/example_ref.png Binary files differdeleted file mode 100644 index c0a3a7ee..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_NOTE/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_PDFA/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_PDFA/example_ref.png Binary files differdeleted file mode 100644 index fc20dcc7..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_PDFA/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_PDFA_NOTE/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_PDFA_NOTE/example_ref.png Binary files differdeleted file mode 100644 index 47684166..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_PDFA_NOTE/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_SMALL/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_SMALL/example_ref.png Binary files differdeleted file mode 100644 index 65915a67..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_SMALL/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_SMALL_NOTE/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_SMALL_NOTE/example_ref.png Binary files differdeleted file mode 100644 index 775504c2..00000000 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_SMALL_NOTE/example_ref.png +++ /dev/null diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/PDFA_SIGNATURBLOCK_DE/TestGhostscriptPdfA.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/PDFA_SIGNATURBLOCK_DE/TestGhostscriptPdfA.pdf Binary files differindex 7357c46d..7357c46d 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/PDFA_SIGNATURBLOCK_DE/TestGhostscriptPdfA.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/PDFA_SIGNATURBLOCK_DE/TestGhostscriptPdfA.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/PDFA_SIGNATURBLOCK_DE/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/PDFA_SIGNATURBLOCK_DE/config.properties index 59811375..59811375 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/PDFA_SIGNATURBLOCK_DE/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/PDFA_SIGNATURBLOCK_DE/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/PDFA_SIGNATURBLOCK_DE_NOTE/TestGhostscriptPdfA.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/PDFA_SIGNATURBLOCK_DE_NOTE/TestGhostscriptPdfA.pdf Binary files differindex 7357c46d..7357c46d 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/PDFA_SIGNATURBLOCK_DE_NOTE/TestGhostscriptPdfA.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/PDFA_SIGNATURBLOCK_DE_NOTE/TestGhostscriptPdfA.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/PDFA_SIGNATURBLOCK_DE_NOTE/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/PDFA_SIGNATURBLOCK_DE_NOTE/config.properties index 33b9bef0..33b9bef0 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/PDFA_SIGNATURBLOCK_DE_NOTE/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/PDFA_SIGNATURBLOCK_DE_NOTE/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/PDFA_SIGNATURBLOCK_EN/TestGhostscriptPdfA.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/PDFA_SIGNATURBLOCK_EN/TestGhostscriptPdfA.pdf Binary files differindex 7357c46d..7357c46d 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/PDFA_SIGNATURBLOCK_EN/TestGhostscriptPdfA.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/PDFA_SIGNATURBLOCK_EN/TestGhostscriptPdfA.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/PDFA_SIGNATURBLOCK_EN/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/PDFA_SIGNATURBLOCK_EN/config.properties index 2e2d3a37..2e2d3a37 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/PDFA_SIGNATURBLOCK_EN/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/PDFA_SIGNATURBLOCK_EN/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/PDFA_SIGNATURBLOCK_EN_NOTE/TestGhostscriptPdfA.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/PDFA_SIGNATURBLOCK_EN_NOTE/TestGhostscriptPdfA.pdf Binary files differindex 7357c46d..7357c46d 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/PDFA_SIGNATURBLOCK_EN_NOTE/TestGhostscriptPdfA.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/PDFA_SIGNATURBLOCK_EN_NOTE/TestGhostscriptPdfA.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/PDFA_SIGNATURBLOCK_EN_NOTE/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/PDFA_SIGNATURBLOCK_EN_NOTE/config.properties index 88e7e2c1..88e7e2c1 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/PDFA_SIGNATURBLOCK_EN_NOTE/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/PDFA_SIGNATURBLOCK_EN_NOTE/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_ABSOLUT_PAGE_LAST/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_ABSOLUT_PAGE_LAST/config.properties index 88ece194..88ece194 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_ABSOLUT_PAGE_LAST/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_ABSOLUT_PAGE_LAST/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_ABSOLUT_PAGE_LAST/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_ABSOLUT_PAGE_LAST/example.pdf Binary files differindex 488e5898..488e5898 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_ABSOLUT_PAGE_LAST/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_ABSOLUT_PAGE_LAST/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_ABSOLUT_PAGE_LAST/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_ABSOLUT_PAGE_LAST/example_ref.png Binary files differnew file mode 100644 index 00000000..9ab692bd --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_ABSOLUT_PAGE_LAST/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_ABSOLUT_PAGE_NUM_HIGH/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_ABSOLUT_PAGE_NUM_HIGH/config.properties index c2f8bc74..c2f8bc74 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_ABSOLUT_PAGE_NUM_HIGH/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_ABSOLUT_PAGE_NUM_HIGH/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_ABSOLUT_PAGE_NUM_HIGH/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_ABSOLUT_PAGE_NUM_HIGH/example.pdf Binary files differindex 488e5898..488e5898 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_ABSOLUT_PAGE_NUM_HIGH/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_ABSOLUT_PAGE_NUM_HIGH/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_ABSOLUT_PAGE_NUM_HIGH/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_ABSOLUT_PAGE_NUM_HIGH/example_ref.png Binary files differnew file mode 100644 index 00000000..f6be95f4 --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_ABSOLUT_PAGE_NUM_HIGH/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_DE/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_DE/config.properties index 7409d0d8..7409d0d8 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_DE/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_DE/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_DE/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_DE/example.pdf Binary files differindex 867f68db..867f68db 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_DE/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_DE/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_DE/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_DE/example_ref.png Binary files differnew file mode 100644 index 00000000..1c7eb899 --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_DE/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_DE_SMALL/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_DE_SMALL/config.properties index 186f5bdd..186f5bdd 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_DE_SMALL/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_DE_SMALL/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_DE_SMALL/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_DE_SMALL/example.pdf Binary files differindex 867f68db..867f68db 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_DE_SMALL/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_DE_SMALL/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_DE_SMALL/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_DE_SMALL/example_ref.png Binary files differnew file mode 100644 index 00000000..88be9ef7 --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_DE_SMALL/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_EN/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_EN/config.properties index 4ddf33d0..4ddf33d0 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_EN/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_EN/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_EN/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_EN/example.pdf Binary files differindex 867f68db..867f68db 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_EN/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_EN/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_EN/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_EN/example_ref.png Binary files differnew file mode 100644 index 00000000..d7551183 --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_EN/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_EN_SMALL/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_EN_SMALL/config.properties index 1110f058..1110f058 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_EN_SMALL/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_EN_SMALL/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_EN_SMALL/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_EN_SMALL/example.pdf Binary files differindex 867f68db..867f68db 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AMTSSIGNATURBLOCK_EN_SMALL/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_EN_SMALL/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_EN_SMALL/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_EN_SMALL/example_ref.png Binary files differnew file mode 100644 index 00000000..81afebe6 --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AMTSSIGNATURBLOCK_EN_SMALL/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AUTO/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AUTO/config.properties index e8b47027..e8b47027 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AUTO/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AUTO/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AUTO/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AUTO/example.pdf Binary files differindex c760770a..c760770a 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AUTO/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AUTO/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AUTO/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AUTO/example_ref.png Binary files differindex 8d679bbe..9f7c6e3f 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AUTO/example_ref.png +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AUTO/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AUTO_WITH_NEWPAGE/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AUTO_WITH_NEWPAGE/config.properties index 7013bc17..7013bc17 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AUTO_WITH_NEWPAGE/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AUTO_WITH_NEWPAGE/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AUTO_WITH_NEWPAGE/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AUTO_WITH_NEWPAGE/example.pdf Binary files differindex 488e5898..488e5898 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_AUTO_WITH_NEWPAGE/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AUTO_WITH_NEWPAGE/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AUTO_WITH_NEWPAGE/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AUTO_WITH_NEWPAGE/example_ref.png Binary files differnew file mode 100644 index 00000000..5f4d5488 --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_AUTO_WITH_NEWPAGE/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST/config.properties index 94af6eec..94af6eec 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST/example.pdf Binary files differindex 488e5898..488e5898 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST/example_ref.png Binary files differnew file mode 100644 index 00000000..ef35ea26 --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST_ALREADY_SIGNED/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST_ALREADY_SIGNED/config.properties index 572f9801..572f9801 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST_ALREADY_SIGNED/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST_ALREADY_SIGNED/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST_ALREADY_SIGNED/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST_ALREADY_SIGNED/example.pdf Binary files differindex 3ce5f831..3ce5f831 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST_ALREADY_SIGNED/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST_ALREADY_SIGNED/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST_ALREADY_SIGNED/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST_ALREADY_SIGNED/example_ref.png Binary files differnew file mode 100644 index 00000000..6b2d343e --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST_ALREADY_SIGNED/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST_ALREADY_SIGNED_FORCE_NEW/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST_ALREADY_SIGNED_FORCE_NEW/config.properties index 28d4438f..28d4438f 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST_ALREADY_SIGNED_FORCE_NEW/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST_ALREADY_SIGNED_FORCE_NEW/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST_ALREADY_SIGNED_FORCE_NEW/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST_ALREADY_SIGNED_FORCE_NEW/example.pdf Binary files differindex 3ce5f831..3ce5f831 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST_ALREADY_SIGNED_FORCE_NEW/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST_ALREADY_SIGNED_FORCE_NEW/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST_ALREADY_SIGNED_FORCE_NEW/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST_ALREADY_SIGNED_FORCE_NEW/example_ref.png Binary files differnew file mode 100644 index 00000000..213118fc --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST_ALREADY_SIGNED_FORCE_NEW/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST_WITH_POS/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST_WITH_POS/config.properties index def92788..def92788 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST_WITH_POS/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST_WITH_POS/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST_WITH_POS/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST_WITH_POS/example.pdf Binary files differindex 488e5898..488e5898 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_LAST_WITH_POS/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST_WITH_POS/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST_WITH_POS/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST_WITH_POS/example_ref.png Binary files differnew file mode 100644 index 00000000..d61d32e9 --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_LAST_WITH_POS/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE/config.properties index c8ccefb0..c8ccefb0 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE/example.pdf Binary files differindex 867f68db..867f68db 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE/example_ref.png Binary files differnew file mode 100644 index 00000000..b2feee46 --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_MINIMAL/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_MINIMAL/config.properties index 6e617d9e..6e617d9e 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_MINIMAL/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_MINIMAL/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_MINIMAL/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_MINIMAL/example.pdf Binary files differindex 867f68db..867f68db 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_MINIMAL/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_MINIMAL/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_MINIMAL/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_MINIMAL/example_ref.png Binary files differnew file mode 100644 index 00000000..681ae5c8 --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_MINIMAL/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_NOTE/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_NOTE/config.properties index 9699a1b6..9699a1b6 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_NOTE/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_NOTE/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_NOTE/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_NOTE/example.pdf Binary files differindex 867f68db..867f68db 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_NOTE/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_NOTE/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_NOTE/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_NOTE/example_ref.png Binary files differnew file mode 100644 index 00000000..dcfd416c --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_NOTE/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_PDFA/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_PDFA/config.properties index ab0108a6..ab0108a6 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_PDFA/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_PDFA/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_PDFA/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_PDFA/example.pdf Binary files differindex 867f68db..867f68db 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_PDFA/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_PDFA/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_PDFA/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_PDFA/example_ref.png Binary files differnew file mode 100644 index 00000000..9084aba7 --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_PDFA/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_PDFA_NOTE/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_PDFA_NOTE/config.properties index da997c01..da997c01 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_PDFA_NOTE/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_PDFA_NOTE/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_PDFA_NOTE/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_PDFA_NOTE/example.pdf Binary files differindex 867f68db..867f68db 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_PDFA_NOTE/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_PDFA_NOTE/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_PDFA_NOTE/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_PDFA_NOTE/example_ref.png Binary files differnew file mode 100644 index 00000000..8406eda7 --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_PDFA_NOTE/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_SMALL/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_SMALL/config.properties index 58f415c1..58f415c1 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_SMALL/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_SMALL/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_SMALL/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_SMALL/example.pdf Binary files differindex 867f68db..867f68db 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_SMALL/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_SMALL/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_SMALL/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_SMALL/example_ref.png Binary files differnew file mode 100644 index 00000000..9577cb74 --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_SMALL/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_SMALL_NOTE/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_SMALL_NOTE/config.properties index 6276ab18..6276ab18 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_SMALL_NOTE/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_SMALL_NOTE/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_SMALL_NOTE/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_SMALL_NOTE/example.pdf Binary files differindex 867f68db..867f68db 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_DE_SMALL_NOTE/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_SMALL_NOTE/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_SMALL_NOTE/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_SMALL_NOTE/example_ref.png Binary files differnew file mode 100644 index 00000000..92f7e995 --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_DE_SMALL_NOTE/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN/config.properties index 3107a1e9..3107a1e9 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN/example.pdf Binary files differindex 867f68db..867f68db 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN/example_ref.png Binary files differnew file mode 100644 index 00000000..e5f88c2b --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_MINIMAL/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_MINIMAL/config.properties index 03ca9a45..03ca9a45 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_MINIMAL/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_MINIMAL/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_MINIMAL/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_MINIMAL/example.pdf Binary files differindex 867f68db..867f68db 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_MINIMAL/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_MINIMAL/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_MINIMAL/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_MINIMAL/example_ref.png Binary files differnew file mode 100644 index 00000000..97319af5 --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_MINIMAL/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_NOTE/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_NOTE/config.properties index 5c3d8c30..5c3d8c30 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_NOTE/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_NOTE/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_NOTE/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_NOTE/example.pdf Binary files differindex 867f68db..867f68db 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_NOTE/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_NOTE/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_NOTE/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_NOTE/example_ref.png Binary files differnew file mode 100644 index 00000000..66112265 --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_NOTE/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_PDFA/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_PDFA/config.properties index d6f9cc5c..d6f9cc5c 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_PDFA/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_PDFA/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_PDFA/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_PDFA/example.pdf Binary files differindex 867f68db..867f68db 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_PDFA/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_PDFA/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_PDFA/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_PDFA/example_ref.png Binary files differnew file mode 100644 index 00000000..4d493e47 --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_PDFA/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_PDFA_NOTE/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_PDFA_NOTE/config.properties index e0b5f0c1..e0b5f0c1 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_PDFA_NOTE/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_PDFA_NOTE/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_PDFA_NOTE/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_PDFA_NOTE/example.pdf Binary files differindex 867f68db..867f68db 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_PDFA_NOTE/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_PDFA_NOTE/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_PDFA_NOTE/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_PDFA_NOTE/example_ref.png Binary files differnew file mode 100644 index 00000000..7ba03d9e --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_PDFA_NOTE/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_SMALL/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_SMALL/config.properties index 7cdd8d64..7cdd8d64 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_SMALL/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_SMALL/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_SMALL/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_SMALL/example.pdf Binary files differindex 867f68db..867f68db 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_SMALL/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_SMALL/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_SMALL/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_SMALL/example_ref.png Binary files differnew file mode 100644 index 00000000..f39f9ee6 --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_SMALL/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_SMALL_NOTE/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_SMALL_NOTE/config.properties index 65c045cb..65c045cb 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_SMALL_NOTE/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_SMALL_NOTE/config.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_SMALL_NOTE/example.pdf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_SMALL_NOTE/example.pdf Binary files differindex 867f68db..867f68db 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/POS_SIGNATURBLOCK_EN_SMALL_NOTE/example.pdf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_SMALL_NOTE/example.pdf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_SMALL_NOTE/example_ref.png b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_SMALL_NOTE/example_ref.png Binary files differnew file mode 100644 index 00000000..a227307c --- /dev/null +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/POS_SIGNATURBLOCK_EN_SMALL_NOTE/example_ref.png diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/auto_pos_example.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/auto_pos_example.properties index 15c779b1..15c779b1 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/auto_pos_example.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/auto_pos_example.properties diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/config.properties b/pdf-as-tests/src/test/test-suites/public_pdfbox3/config.properties index c00ea2b4..dc60f9c1 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/config.properties +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/config.properties @@ -1,6 +1,6 @@ config.file=../pdf-as-lib/src/configuration/ connector=ks -ks.filename=src/test/test-suites/public_pdfbox2/test.p12 +ks.filename=src/test/test-suites/public_pdfbox3/test.p12 ks.type=PKCS12 ks.pass=123456 ks.keypass=123456 diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/css/bootstrap-theme.css b/pdf-as-tests/src/test/test-suites/public_pdfbox3/css/bootstrap-theme.css index f860bbc0..f860bbc0 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/css/bootstrap-theme.css +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/css/bootstrap-theme.css diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/css/bootstrap-theme.css.map b/pdf-as-tests/src/test/test-suites/public_pdfbox3/css/bootstrap-theme.css.map index 4cc41ab0..4cc41ab0 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/css/bootstrap-theme.css.map +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/css/bootstrap-theme.css.map diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/css/bootstrap-theme.min.css b/pdf-as-tests/src/test/test-suites/public_pdfbox3/css/bootstrap-theme.min.css index 2e97597c..2e97597c 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/css/bootstrap-theme.min.css +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/css/bootstrap-theme.min.css diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/css/bootstrap.css b/pdf-as-tests/src/test/test-suites/public_pdfbox3/css/bootstrap.css index 037dd056..037dd056 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/css/bootstrap.css +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/css/bootstrap.css diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/css/bootstrap.css.map b/pdf-as-tests/src/test/test-suites/public_pdfbox3/css/bootstrap.css.map index bfb56168..bfb56168 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/css/bootstrap.css.map +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/css/bootstrap.css.map diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/css/bootstrap.min.css b/pdf-as-tests/src/test/test-suites/public_pdfbox3/css/bootstrap.min.css index a9f35cee..a9f35cee 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/css/bootstrap.min.css +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/css/bootstrap.min.css diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/fonts/DejaVuSansCondensed-Bold.ttf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/fonts/DejaVuSansCondensed-Bold.ttf Binary files differindex 2364a473..2364a473 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/fonts/DejaVuSansCondensed-Bold.ttf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/fonts/DejaVuSansCondensed-Bold.ttf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/fonts/DejaVuSansCondensed.ttf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/fonts/DejaVuSansCondensed.ttf Binary files differindex 94a9b01c..94a9b01c 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/fonts/DejaVuSansCondensed.ttf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/fonts/DejaVuSansCondensed.ttf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/fonts/DejaVuSansMono.ttf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/fonts/DejaVuSansMono.ttf Binary files differindex a96ac6f4..a96ac6f4 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/fonts/DejaVuSansMono.ttf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/fonts/DejaVuSansMono.ttf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/fonts/arial.ttf b/pdf-as-tests/src/test/test-suites/public_pdfbox3/fonts/arial.ttf Binary files differindex 12cc15c8..12cc15c8 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/fonts/arial.ttf +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/fonts/arial.ttf diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/js/bootstrap.js b/pdf-as-tests/src/test/test-suites/public_pdfbox3/js/bootstrap.js index 53da1c77..53da1c77 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/js/bootstrap.js +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/js/bootstrap.js diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/js/bootstrap.min.js b/pdf-as-tests/src/test/test-suites/public_pdfbox3/js/bootstrap.min.js index 7c1561a8..7c1561a8 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/js/bootstrap.min.js +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/js/bootstrap.min.js diff --git a/pdf-as-tests/src/test/test-suites/public_pdfbox2/test.p12 b/pdf-as-tests/src/test/test-suites/public_pdfbox3/test.p12 Binary files differindex 660bf7cc..660bf7cc 100644 --- a/pdf-as-tests/src/test/test-suites/public_pdfbox2/test.p12 +++ b/pdf-as-tests/src/test/test-suites/public_pdfbox3/test.p12 diff --git a/pdf-as-web-client/build.gradle b/pdf-as-web-client/build.gradle index 781ee45b..8d9628ad 100644 --- a/pdf-as-web-client/build.gradle +++ b/pdf-as-web-client/build.gradle @@ -13,11 +13,12 @@ repositories { } dependencies { - implementation 'org.apache.commons:commons-collections4:4.5.0' - implementation group: 'javax.xml.ws', name: 'jaxws-api', version: '2.3.1' + implementation group: 'org.apache.commons', name: 'commons-collections4', version: commonsCollectionsVersion + implementation group: 'jakarta.xml.ws', name: 'jakarta.xml.ws-api', version: jakartaXmlWsVersion implementation project (':pdf-as-common') } test { systemProperties 'property': 'value' + failOnNoDiscoveredTests = false } diff --git a/pdf-as-web-client/src/main/java/at/gv/egiz/pdfas/web/client/RemotePDFSigner.java b/pdf-as-web-client/src/main/java/at/gv/egiz/pdfas/web/client/RemotePDFSigner.java index c8a89541..52f6b928 100644 --- a/pdf-as-web-client/src/main/java/at/gv/egiz/pdfas/web/client/RemotePDFSigner.java +++ b/pdf-as-web-client/src/main/java/at/gv/egiz/pdfas/web/client/RemotePDFSigner.java @@ -26,9 +26,9 @@ package at.gv.egiz.pdfas.web.client; import java.net.URL; import javax.xml.namespace.QName; -import javax.xml.ws.BindingProvider; -import javax.xml.ws.Service; -import javax.xml.ws.soap.SOAPBinding; +import jakarta.xml.ws.BindingProvider; +import jakarta.xml.ws.Service; +import jakarta.xml.ws.soap.SOAPBinding; import at.gv.egiz.pdfas.api.ws.PDFASBulkSignRequest; import at.gv.egiz.pdfas.api.ws.PDFASBulkSignResponse; diff --git a/pdf-as-web-client/src/main/java/at/gv/egiz/pdfas/web/client/RemotePDFVerifier.java b/pdf-as-web-client/src/main/java/at/gv/egiz/pdfas/web/client/RemotePDFVerifier.java index 25561577..2b305b35 100644 --- a/pdf-as-web-client/src/main/java/at/gv/egiz/pdfas/web/client/RemotePDFVerifier.java +++ b/pdf-as-web-client/src/main/java/at/gv/egiz/pdfas/web/client/RemotePDFVerifier.java @@ -3,9 +3,9 @@ package at.gv.egiz.pdfas.web.client; import java.net.URL; import javax.xml.namespace.QName; -import javax.xml.ws.BindingProvider; -import javax.xml.ws.Service; -import javax.xml.ws.soap.SOAPBinding; +import jakarta.xml.ws.BindingProvider; +import jakarta.xml.ws.Service; +import jakarta.xml.ws.soap.SOAPBinding; import at.gv.egiz.pdfas.api.ws.PDFASVerification; import at.gv.egiz.pdfas.api.ws.PDFASVerifyRequest; diff --git a/pdf-as-web-db/build.gradle b/pdf-as-web-db/build.gradle index c54b9dbb..78611668 100644 --- a/pdf-as-web-db/build.gradle +++ b/pdf-as-web-db/build.gradle @@ -1,6 +1,8 @@ -apply plugin: 'java' -apply plugin: 'eclipse' -apply plugin: 'java-library-distribution' +plugins { + id 'java-library' + id 'eclipse' + id 'distribution' +} jar { manifest { @@ -17,9 +19,8 @@ dependencies { implementation project (':pdf-as-web') implementation project (':pdf-as-web-status') implementation project (':pdf-as-web-statistic-api') - api "org.hibernate:hibernate-core:5.6.15.Final" - api "org.hibernate:hibernate-entitymanager:5.6.15.Final" - implementation 'ch.qos.logback:logback-classic:1.2.13' + api "org.hibernate:hibernate-core:6.6.44.Final" + implementation group: 'ch.qos.logback', name: 'logback-classic', version: logbackVersion implementation group: 'org.slf4j', name: 'slf4j-api', version: slf4jVersion } diff --git a/pdf-as-web-db/src/main/java/at/gv/egiz/pdfas/web/store/DBRequestStore.java b/pdf-as-web-db/src/main/java/at/gv/egiz/pdfas/web/store/DBRequestStore.java index e5a789d2..b371026d 100644 --- a/pdf-as-web-db/src/main/java/at/gv/egiz/pdfas/web/store/DBRequestStore.java +++ b/pdf-as-web-db/src/main/java/at/gv/egiz/pdfas/web/store/DBRequestStore.java @@ -9,6 +9,7 @@ import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration; +import org.hibernate.query.MutationQuery; import org.hibernate.query.Query; import org.hibernate.service.ServiceRegistry; import org.slf4j.Logger; @@ -28,7 +29,6 @@ public class DBRequestStore implements IRequestStore { .getLogger(DBRequestStore.class); private final SessionFactory sessions; - private final ServiceRegistry serviceRegistry; public DBRequestStore() { final Configuration cfg = new Configuration(); @@ -37,8 +37,8 @@ public class DBRequestStore implements IRequestStore { cfg.addAnnotatedClass(StatisticRequest.class); cfg.setProperties(WebConfiguration.getHibernateProps()); - serviceRegistry = new StandardServiceRegistryBuilder().applySettings( - cfg.getProperties()).build(); + ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings( + cfg.getProperties()).build(); sessions = cfg.buildSessionFactory(serviceRegistry); } @@ -50,24 +50,18 @@ public class DBRequestStore implements IRequestStore { final Date date = calendar.getTime(); final SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); logger.info("Clearing Entries before: " + dt.format(date)); - Session session = null; - Transaction tx = null; - try { - session = sessions.openSession(); - tx = session.beginTransaction(); - final Query query = session.createQuery("delete from Request as req" - + " where req.created < :date"); - query.setCalendar("date", calendar); - query.executeUpdate(); - tx.commit(); - } catch (final Throwable e) { - logger.error("Failed to save Request", e); - tx.rollback(); - } finally { - if (session != null) { - session.close(); + Transaction tx = null; + try (Session session = sessions.openSession()) { + tx = session.beginTransaction(); + final MutationQuery query = session.createMutationQuery("delete from Request as req" + + " where req.created < :date"); + query.setParameter("date", calendar.getTime()); + query.executeUpdate(); + tx.commit(); + } catch (final Throwable e) { + logger.error("Failed to save Request", e); + if (tx != null) tx.rollback(); } - } } public void cleanOldRequestException() { @@ -77,29 +71,23 @@ public class DBRequestStore implements IRequestStore { final Date date = calendar.getTime(); final SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); logger.info("Clearing Entries before: " + dt.format(date)); - Session session = null; - try { - session = sessions.openSession(); - final Query query = session.createQuery("delete from Request as req" - + " where req.created < :date"); - query.setCalendar("date", calendar); - query.executeUpdate(); - - final Query queryStat = session.createQuery("delete from StatisticRequest as req" - + " where req.created < :date"); - queryStat.setCalendar("date", calendar); - queryStat.executeUpdate(); - - final Query queryResponse = session.createQuery("delete from Response as req" - + " where req.created < :date"); - queryResponse.setCalendar("date", calendar); - queryResponse.executeUpdate(); - - } finally { - if (session != null) { - session.close(); + try (Session session = sessions.openSession()) { + final MutationQuery query = session.createMutationQuery("delete from Request as req" + + " where req.created < :date"); + query.setParameter("date", calendar.getTime()); + query.executeUpdate(); + + final MutationQuery queryStat = session.createMutationQuery("delete from StatisticRequest as req" + + " where req.created < :date"); + queryStat.setParameter("date", calendar.getTime()); + queryStat.executeUpdate(); + + final MutationQuery queryResponse = session.createMutationQuery("delete from Response as req" + + " where req.created < :date"); + queryResponse.setParameter("date", calendar.getTime()); + queryResponse.executeUpdate(); + } - } } @Override @@ -107,32 +95,26 @@ public class DBRequestStore implements IRequestStore { StatisticEvent event) { // Clean Old Requests this.cleanOldRequests(); - Session session = null; - Transaction tx = null; - try { - session = sessions.openSession(); - tx = session.beginTransaction(); - final Request dbRequest = new Request(); - dbRequest.setSignRequest(request); - dbRequest.setCreated(Calendar.getInstance().getTime()); - session.save(dbRequest); - - final StatisticRequest statisticRequest = new StatisticRequest(); - statisticRequest.setStatisticEvent(event); - statisticRequest.setCreated(Calendar.getInstance().getTime()); - session.save(statisticRequest); - - tx.commit(); - return dbRequest.getId(); - } catch (final Throwable e) { - logger.error("Failed to save Request", e); - tx.rollback(); - return null; - } finally { - if (session != null) { - session.close(); + Transaction tx = null; + try (Session session = sessions.openSession()) { + tx = session.beginTransaction(); + final Request dbRequest = new Request(); + dbRequest.setSignRequest(request); + dbRequest.setCreated(Calendar.getInstance().getTime()); + session.persist(dbRequest); + + final StatisticRequest statisticRequest = new StatisticRequest(); + statisticRequest.setStatisticEvent(event); + statisticRequest.setCreated(Calendar.getInstance().getTime()); + session.persist(statisticRequest); + + tx.commit(); + return dbRequest.getId(); + } catch (final Throwable e) { + logger.error("Failed to save Request", e); + if (tx != null) tx.rollback(); + return null; } - } } @Override @@ -140,28 +122,22 @@ public class DBRequestStore implements IRequestStore { // Clean Old Requests this.cleanOldRequests(); - Session session = null; - Transaction tx = null; - try { - session = sessions.openSession(); - tx = session.beginTransaction(); - final Request dbRequest = session.get(Request.class, id); - - final PdfasSignRequest request = dbRequest.getSignRequest(); - - session.delete(dbRequest); - - tx.commit(); - return request; - } catch (final Throwable e) { - logger.error("Failed to fetch Request", e); - tx.rollback(); - return null; - } finally { - if (session != null) { - session.close(); + Transaction tx = null; + try (Session session = sessions.openSession()) { + tx = session.beginTransaction(); + final Request dbRequest = session.get(Request.class, id); + + final PdfasSignRequest request = dbRequest.getSignRequest(); + + session.remove(dbRequest); + + tx.commit(); + return request; + } catch (final Throwable e) { + logger.error("Failed to fetch Request", e); + if (tx != null) tx.rollback(); + return null; } - } } @@ -170,56 +146,44 @@ public class DBRequestStore implements IRequestStore { // Clean Old Requests this.cleanOldRequests(); - Session session = null; - Transaction tx = null; - try { - session = sessions.openSession(); - tx = session.beginTransaction(); - final StatisticRequest dbRequest = session.get( - StatisticRequest.class, id); - - final StatisticEvent request = dbRequest.getStatisticEvent(); - - session.delete(dbRequest); - - tx.commit(); - return request; - } catch (final Throwable e) { - logger.error("Failed to fetch Request", e); - tx.rollback(); - return null; - } finally { - if (session != null) { - session.close(); + Transaction tx = null; + try (Session session = sessions.openSession()) { + tx = session.beginTransaction(); + final StatisticRequest dbRequest = session.get( + StatisticRequest.class, id); + + final StatisticEvent request = dbRequest.getStatisticEvent(); + + session.remove(dbRequest); + + tx.commit(); + return request; + } catch (final Throwable e) { + logger.error("Failed to fetch Request", e); + if (tx != null) tx.rollback(); + return null; } - } } @Override public String createNewResponseEntry(PdfasSignResponse response) { // Clean Old Requests this.cleanOldRequests(); - Session session = null; - Transaction tx = null; - try { - session = sessions.openSession(); - tx = session.beginTransaction(); - final Response dbRequest = new Response(); - dbRequest.setSignedResponse(response); - dbRequest.setCreated(Calendar.getInstance().getTime()); - session.save(dbRequest); - - tx.commit(); - return dbRequest.getId(); - } catch (final Throwable e) { - logger.error("Failed to save Request", e); - tx.rollback(); - return null; - } finally { - if (session != null) { - session.close(); + Transaction tx = null; + try (Session session = sessions.openSession()) { + tx = session.beginTransaction(); + final Response dbRequest = new Response(); + dbRequest.setSignedResponse(response); + dbRequest.setCreated(Calendar.getInstance().getTime()); + session.persist(dbRequest); + + tx.commit(); + return dbRequest.getId(); + } catch (final Throwable e) { + logger.error("Failed to save Request", e); + if (tx != null) tx.rollback(); + return null; } - } } @Override @@ -227,27 +191,21 @@ public class DBRequestStore implements IRequestStore { // Clean Old Requests this.cleanOldRequests(); - Session session = null; - Transaction tx = null; - try { - session = sessions.openSession(); - tx = session.beginTransaction(); - final Response dbResponse = session.get(Response.class, id); - - final PdfasSignResponse request = dbResponse.getSignedResponse(); - - session.delete(dbResponse); - - tx.commit(); - return request; - } catch (final Throwable e) { - logger.error("Failed to fetch Response", e); - tx.rollback(); - return null; - } finally { - if (session != null) { - session.close(); + Transaction tx = null; + try (Session session = sessions.openSession()) { + tx = session.beginTransaction(); + final Response dbResponse = session.get(Response.class, id); + + final PdfasSignResponse request = dbResponse.getSignedResponse(); + + session.remove(dbResponse); + + tx.commit(); + return request; + } catch (final Throwable e) { + logger.error("Failed to fetch Response", e); + if (tx != null) tx.rollback(); + return null; } - } } } diff --git a/pdf-as-web-db/src/main/java/at/gv/egiz/pdfas/web/store/db/Request.java b/pdf-as-web-db/src/main/java/at/gv/egiz/pdfas/web/store/db/Request.java index f8a169c3..978601b1 100644 --- a/pdf-as-web-db/src/main/java/at/gv/egiz/pdfas/web/store/db/Request.java +++ b/pdf-as-web-db/src/main/java/at/gv/egiz/pdfas/web/store/db/Request.java @@ -2,11 +2,11 @@ package at.gv.egiz.pdfas.web.store.db; import java.util.Date; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.Table; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import org.hibernate.annotations.GenericGenerator; diff --git a/pdf-as-web-db/src/main/java/at/gv/egiz/pdfas/web/store/db/Response.java b/pdf-as-web-db/src/main/java/at/gv/egiz/pdfas/web/store/db/Response.java index a47f532c..2367dcf0 100644 --- a/pdf-as-web-db/src/main/java/at/gv/egiz/pdfas/web/store/db/Response.java +++ b/pdf-as-web-db/src/main/java/at/gv/egiz/pdfas/web/store/db/Response.java @@ -2,11 +2,11 @@ package at.gv.egiz.pdfas.web.store.db; import java.util.Date; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.Table; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import org.hibernate.annotations.GenericGenerator; diff --git a/pdf-as-web-db/src/main/java/at/gv/egiz/pdfas/web/store/db/StatisticRequest.java b/pdf-as-web-db/src/main/java/at/gv/egiz/pdfas/web/store/db/StatisticRequest.java index 23b2425b..276db6b0 100644 --- a/pdf-as-web-db/src/main/java/at/gv/egiz/pdfas/web/store/db/StatisticRequest.java +++ b/pdf-as-web-db/src/main/java/at/gv/egiz/pdfas/web/store/db/StatisticRequest.java @@ -2,11 +2,11 @@ package at.gv.egiz.pdfas.web.store.db; import java.util.Date; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.Table; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import org.hibernate.annotations.GenericGenerator; diff --git a/pdf-as-web-statistic-api/build.gradle b/pdf-as-web-statistic-api/build.gradle index 4b6b8c0a..82216460 100644 --- a/pdf-as-web-statistic-api/build.gradle +++ b/pdf-as-web-statistic-api/build.gradle @@ -1,7 +1,9 @@ -apply plugin: 'java-library' -apply plugin: 'war' -apply plugin: 'eclipse' -apply plugin: 'java-library-distribution' +plugins { + id 'java-library' + id 'war' + id 'eclipse' + id 'distribution' +} jar { manifest { @@ -22,8 +24,8 @@ sourceSets.test.runtimeClasspath += configurations.providedCompile dependencies { implementation group: 'org.slf4j', name: 'slf4j-api', version: slf4jVersion - implementation 'org.apache.commons:commons-lang3:3.20.0' - testImplementation group: 'junit', name: 'junit', version: '4.+' + implementation group: 'org.apache.commons', name: 'commons-lang3', version: commonsLang3Version + testImplementation group: 'junit', name: 'junit', version: junitVersion } task releases(type: Copy) { diff --git a/pdf-as-web-status/build.gradle b/pdf-as-web-status/build.gradle index 4f6c222c..ca227397 100644 --- a/pdf-as-web-status/build.gradle +++ b/pdf-as-web-status/build.gradle @@ -1,7 +1,9 @@ -apply plugin: 'java' -apply plugin: 'war' -apply plugin: 'eclipse' -apply plugin: 'java-library-distribution' +plugins { + id 'java-library' + id 'war' + id 'eclipse' + id 'distribution' +} jar { manifest { @@ -22,8 +24,8 @@ sourceSets.test.runtimeClasspath += configurations.providedCompile dependencies { implementation group: 'org.slf4j', name: 'slf4j-api', version: slf4jVersion - implementation 'org.apache.commons:commons-lang3:3.20.0' - compileOnly 'javax.servlet:javax.servlet-api:3.0.1' + implementation group: 'org.apache.commons', name: 'commons-text', version: commonsTextVersion + compileOnly group: 'jakarta.servlet', name: 'jakarta.servlet-api', version: jakartaServletVersion } task releases(type: Copy) { diff --git a/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/ContentGenerator.java b/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/ContentGenerator.java index 6ba85284..c15d58a6 100644 --- a/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/ContentGenerator.java +++ b/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/ContentGenerator.java @@ -3,8 +3,8 @@ package at.gv.egiz.status.content; import java.io.IOException; import java.util.Map; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import at.gv.egiz.status.TestResult; diff --git a/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/HtmlGenerator.java b/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/HtmlGenerator.java index c94cde22..8f80a91e 100644 --- a/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/HtmlGenerator.java +++ b/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/HtmlGenerator.java @@ -5,14 +5,13 @@ import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.lang3.StringEscapeUtils; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import at.gv.egiz.status.TestResult; import at.gv.egiz.status.TestStatus; import at.gv.egiz.status.impl.TestStatusString; +import org.apache.commons.text.StringEscapeUtils; public class HtmlGenerator implements ContentGenerator { @@ -21,15 +20,13 @@ public class HtmlGenerator implements ContentGenerator { HttpServletResponse response, Map<String, TestResult> results, boolean details) throws IOException { boolean allOk = true; - - Iterator<TestResult> testIterator = results.values().iterator(); - while(testIterator.hasNext()) { - TestResult result = testIterator.next(); - if(!result.getStatus().equals(TestStatus.OK)){ - allOk = false; - break; - } - } + + for (TestResult result : results.values()) { + if (!result.getStatus().equals(TestStatus.OK)) { + allOk = false; + break; + } + } if(!allOk) { response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); @@ -49,37 +46,32 @@ public class HtmlGenerator implements ContentGenerator { } sb.append("</tr></thead><tbody>"); - - Iterator<Entry<String,TestResult>> testResultIterator = results.entrySet().iterator(); - while(testResultIterator.hasNext()) { - Entry<String,TestResult> entry = testResultIterator.next(); - TestResult result = entry.getValue(); - String testName = entry.getKey(); - - sb.append("<tr><td>"); - sb.append(StringEscapeUtils.escapeHtml4(testName)); - sb.append("</td><td>"); - sb.append(StringEscapeUtils.escapeHtml4(TestStatusString.getString(result.getStatus()))); - - - if(details) { - sb.append("</td><td>"); - - StringBuilder detail = new StringBuilder(); - - Iterator<String> detailStringIt = result.getDetails().iterator(); - - while(detailStringIt.hasNext()) { - String detailString = detailStringIt.next(); - detail.append(StringEscapeUtils.escapeHtml4(detailString)); - detail.append("</br>"); - } - - sb.append(detail.toString()); - } - - sb.append("</td></tr>"); - } + + for (Entry<String, TestResult> entry : results.entrySet()) { + TestResult result = entry.getValue(); + String testName = entry.getKey(); + + sb.append("<tr><td>"); + sb.append(StringEscapeUtils.escapeHtml4(testName)); + sb.append("</td><td>"); + sb.append(StringEscapeUtils.escapeHtml4(TestStatusString.getString(result.getStatus()))); + + + if (details) { + sb.append("</td><td>"); + + StringBuilder detail = new StringBuilder(); + + for (String detailString : result.getDetails()) { + detail.append(StringEscapeUtils.escapeHtml4(detailString)); + detail.append("</br>"); + } + + sb.append(detail); + } + + sb.append("</td></tr>"); + } sb.append("</tbody></table>"); diff --git a/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/JsonGenerator.java b/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/JsonGenerator.java index f26c0885..b3969131 100644 --- a/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/JsonGenerator.java +++ b/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/JsonGenerator.java @@ -1,14 +1,15 @@ package at.gv.egiz.status.content; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; -import org.apache.commons.lang3.StringEscapeUtils; +import org.apache.commons.text.StringEscapeUtils; import at.gv.egiz.status.TestResult; import at.gv.egiz.status.TestStatus; @@ -21,15 +22,13 @@ public class JsonGenerator implements ContentGenerator { HttpServletResponse response, Map<String, TestResult> results, boolean details) throws IOException { boolean allOk = true; - - Iterator<TestResult> testIterator = results.values().iterator(); - while(testIterator.hasNext()) { - TestResult result = testIterator.next(); - if(!result.getStatus().equals(TestStatus.OK)){ - allOk = false; - break; - } - } + + for (TestResult result : results.values()) { + if (!result.getStatus().equals(TestStatus.OK)) { + allOk = false; + break; + } + } if(!allOk) { response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); @@ -59,16 +58,13 @@ public class JsonGenerator implements ContentGenerator { sb.append(", \"Detail\": \""); StringBuilder detail = new StringBuilder(); + + for (String detailString : result.getDetails()) { + detail.append(StringEscapeUtils.escapeJson(detailString)); + detail.append(" "); + } - Iterator<String> detailStringIt = result.getDetails().iterator(); - - while(detailStringIt.hasNext()) { - String detailString = detailStringIt.next(); - detail.append(StringEscapeUtils.escapeJson(detailString)); - detail.append(" "); - } - - sb.append(detail.toString()); + sb.append(detail); sb.append("\""); } @@ -80,7 +76,7 @@ public class JsonGenerator implements ContentGenerator { sb.append("}"); - response.getOutputStream().write(sb.toString().getBytes("UTF-8")); + response.getOutputStream().write(sb.toString().getBytes(StandardCharsets.UTF_8)); response.getOutputStream().close(); } diff --git a/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/ResponseBuilder.java b/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/ResponseBuilder.java index 1e248808..c71b8fef 100644 --- a/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/ResponseBuilder.java +++ b/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/ResponseBuilder.java @@ -4,8 +4,8 @@ import java.io.IOException; import java.util.HashMap; import java.util.Map; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import at.gv.egiz.status.TestResult; diff --git a/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/XMLGenerator.java b/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/XMLGenerator.java index 00b116bb..0cc4f6b9 100644 --- a/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/XMLGenerator.java +++ b/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/XMLGenerator.java @@ -1,14 +1,15 @@ package at.gv.egiz.status.content; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; -import org.apache.commons.lang3.StringEscapeUtils; +import org.apache.commons.text.StringEscapeUtils; import at.gv.egiz.status.TestResult; import at.gv.egiz.status.TestStatus; @@ -21,15 +22,13 @@ public class XMLGenerator implements ContentGenerator { HttpServletResponse response, Map<String, TestResult> results, boolean details) throws IOException { boolean allOk = true; - - Iterator<TestResult> testIterator = results.values().iterator(); - while(testIterator.hasNext()) { - TestResult result = testIterator.next(); - if(!result.getStatus().equals(TestStatus.OK)){ - allOk = false; - break; - } - } + + for (TestResult result : results.values()) { + if (!result.getStatus().equals(TestStatus.OK)) { + allOk = false; + break; + } + } if(!allOk) { response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); @@ -44,42 +43,37 @@ public class XMLGenerator implements ContentGenerator { sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"); sb.append("<tests>"); - - Iterator<Entry<String,TestResult>> testResultIterator = results.entrySet().iterator(); - while(testResultIterator.hasNext()) { - Entry<String,TestResult> entry = testResultIterator.next(); - TestResult result = entry.getValue(); - String testName = entry.getKey(); - - sb.append("<test><name>"); - sb.append(StringEscapeUtils.escapeXml10(testName)); - sb.append("</name><status>"); - sb.append(StringEscapeUtils.escapeXml10(TestStatusString.getString(result.getStatus()))); - sb.append("</status>"); - - if(details) { - sb.append("<detail>"); - - StringBuilder detail = new StringBuilder(); - - Iterator<String> detailStringIt = result.getDetails().iterator(); - - while(detailStringIt.hasNext()) { - String detailString = detailStringIt.next(); - detail.append(StringEscapeUtils.escapeXml10(detailString)); - detail.append(" "); - } - - sb.append(detail.toString()); - sb.append("</detail>"); - } - - sb.append("</test>"); - } + + for (Entry<String, TestResult> entry : results.entrySet()) { + TestResult result = entry.getValue(); + String testName = entry.getKey(); + + sb.append("<test><name>"); + sb.append(StringEscapeUtils.escapeXml10(testName)); + sb.append("</name><status>"); + sb.append(StringEscapeUtils.escapeXml10(TestStatusString.getString(result.getStatus()))); + sb.append("</status>"); + + if (details) { + sb.append("<detail>"); + + StringBuilder detail = new StringBuilder(); + + for (String detailString : result.getDetails()) { + detail.append(StringEscapeUtils.escapeXml10(detailString)); + detail.append(" "); + } + + sb.append(detail.toString()); + sb.append("</detail>"); + } + + sb.append("</test>"); + } sb.append("</tests>"); - response.getOutputStream().write(sb.toString().getBytes("UTF-8")); + response.getOutputStream().write(sb.toString().getBytes(StandardCharsets.UTF_8)); response.getOutputStream().close(); } diff --git a/pdf-as-web-status/src/main/java/at/gv/egiz/status/servlet/StatusServlet.java b/pdf-as-web-status/src/main/java/at/gv/egiz/status/servlet/StatusServlet.java index 6790fccc..07b77c38 100644 --- a/pdf-as-web-status/src/main/java/at/gv/egiz/status/servlet/StatusServlet.java +++ b/pdf-as-web-status/src/main/java/at/gv/egiz/status/servlet/StatusServlet.java @@ -4,12 +4,12 @@ import java.io.IOException; import java.util.HashMap; import java.util.Map; -import javax.servlet.ServletConfig; -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.WebServlet; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/pdf-as-web/build.gradle b/pdf-as-web/build.gradle index 319aa7f8..84b44fe8 100644 --- a/pdf-as-web/build.gradle +++ b/pdf-as-web/build.gradle @@ -2,49 +2,51 @@ apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'eclipse-wtp' apply plugin: 'war' - -apply plugin: 'org.gretty' +apply plugin: 'org.springframework.boot' buildscript { repositories { gradlePluginPortal() - // enable this to use snapshot versions of Gretty: - // maven { url 'http://oss.jfrog.org/artifactory/oss-snapshot-local' } maven { - url "https://plugins.gradle.org/m2/" + url = "https://plugins.gradle.org/m2/" } } dependencies { - classpath 'org.gretty:gretty:3.0.7' + classpath group: 'org.springframework.boot', name: 'spring-boot-gradle-plugin', version: springBootVersion } } - - -configurations { providedCompile - pdfbox2 - } +configurations { + tomcatDist + pdfbox2 + pdfbox3 +} +dependencies { + tomcatDist "org.apache.tomcat:tomcat:${tomcatVersion}@zip" +} jar { + enabled = true manifest { attributes 'Implementation-Title': 'PDF-AS-WEB' } - } +bootJar { enabled = false } +war { enabled = false } +bootWar { enabled = true } + repositories { mavenLocal() mavenCentral() maven { - url "https://repo.spring.io/milestone/" + url = "https://repo.spring.io/milestone/" } } -sourceSets.main.compileClasspath += configurations.providedCompile -sourceSets.test.compileClasspath += configurations.providedCompile -sourceSets.test.runtimeClasspath += configurations.providedCompile +// providedCompile configuration removed - using compileOnly instead dependencies { @@ -55,35 +57,40 @@ dependencies { api project (':signature-standards:sigs-pades') api project (':pdf-as-web-status') api project (':pdf-as-web-statistic-api') - api project (':pdf-as-pdfbox-2') - api group: 'commons-fileupload', name: 'commons-fileupload', version: '1.5' - api group: 'commons-io', name: 'commons-io', version: '2.21.0' - api group: 'opensymphony', name: 'sitemesh', version: '2.4.2' - api group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1' - api group: 'javax.xml.ws', name: 'jaxws-api', version: '2.3.1' - api group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: '2.3.3' - api "commons-codec:commons-codec:1.17.1" - api 'org.apache.commons:commons-lang3:3.17.0' - api group: 'org.apache.commons', name: 'commons-collections4', version: '4.4' - api 'org.apache.cxf:cxf-rt-transports-http:3.5.11' - api 'org.apache.cxf:cxf-rt-frontend-jaxws:3.5.11' - api 'com.thetransactioncompany:cors-filter:2.10' - api 'ch.qos.logback:logback-classic:1.2.13' - api 'ch.qos.logback:logback-core:1.2.13' - api 'org.json:json:20251224' - api group: 'javax.jws', name: 'javax.jws-api', version: '1.1' - compileOnly 'javax.servlet:javax.servlet-api:3.0.1' - testImplementation 'org.springframework:spring-test:5.3.39' - testImplementation 'org.springframework:spring-web:5.3.39' - -} - -gretty { - // supported values: - // 'jetty7', 'jetty8', 'jetty9', 'jetty9.3', 'jetty9.4', 'tomcat85', 'tomcat9' - servletContainer = 'tomcat85' - - jvmArgs = [ '-Dpdf-as-web.conf=' + System.getProperty("user.home") + '/.pdfas/pdf-as-web.properties' ] + api project (':pdf-as-pdfbox-3') + api group: 'org.apache.commons', name: 'commons-fileupload2-jakarta-servlet6', version: '2.0.0-M5' + api group: 'commons-io', name: 'commons-io', version: commonsIoVersion + api group: 'org.sitemesh', name: 'sitemesh', version: '3.2.1' + api group: 'jakarta.xml.bind', name: 'jakarta.xml.bind-api', version: jaxbApiVersion + api group: 'org.glassfish.jaxb', name: 'jaxb-runtime', version: jaxbRuntimeVersion + api group: 'jakarta.xml.ws', name: 'jakarta.xml.ws-api', version: jakartaXmlWsVersion + api group: 'commons-codec', name: 'commons-codec', version: commonsCodecVersion + api group: 'org.apache.commons', name: 'commons-lang3', version: commonsLang3Version + api group: 'org.apache.commons', name: 'commons-text', version: commonsTextVersion + api group: 'org.apache.commons', name: 'commons-collections4', version: commonsCollectionsVersion + api group: 'org.apache.cxf', name: 'cxf-rt-transports-http', version: cxfVersion + api group: 'org.apache.cxf', name: 'cxf-rt-frontend-jaxws', version: cxfVersion + api 'com.thetransactioncompany:cors-filter:3.1' + api group: 'ch.qos.logback', name: 'logback-classic', version: logbackVersion + api group: 'ch.qos.logback', name: 'logback-core', version: logbackVersion + api group: 'org.json', name: 'json', version: jsonVersion + api group: 'jakarta.jws', name: 'jakarta.jws-api', version: jakartaJwsVersion + compileOnly group: 'jakarta.servlet', name: 'jakarta.servlet-api', version: jakartaServletVersion + implementation group: 'org.springframework.boot', name: 'spring-boot-starter', version: springBootVersion + implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: springBootVersion + implementation group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version: springBootVersion + implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.16' + implementation group: 'org.apache.tomcat.embed', name: 'tomcat-embed-jasper', version: tomcatVersion + implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.2' + implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl:3.0.1' + testImplementation group: 'jakarta.servlet', name: 'jakarta.servlet-api', version: jakartaServletVersion + testImplementation 'org.springframework:spring-test' + testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: springBootVersion + testImplementation group: 'org.apache.cxf', name: 'cxf-rt-transports-http-jetty', version: cxfVersion +} + +bootRun { + jvmArgs = [ '-Dpdf-as-web.conf=' + System.getProperty("user.home") + '/.pdfas/pdf-as-web.properties' ] } @@ -91,200 +98,76 @@ test { systemProperties 'pdf-as-web.conf': System.getProperty("user.home") + '/.pdfas/pdf-as-web.properties' } -task downloadTomcat { - doLast { - if(!project.buildDir.exists()){ - project.buildDir.mkdirs() - } - - String url = "https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/##VERSION##/tomcat-##VERSION##.zip" - String filename = project.buildDir.toString() + "/tomcat-##VERSION##.zip"; - - url = url.replaceAll("##VERSION##", project.tomcatVersion); - filename = filename.replaceAll("##VERSION##", project.tomcatVersion); - - println "Tomcat Version: " + url - - println "Tomcat file: " + filename - - def f = new File(filename) - if (!f.exists()) { - println "Downloading Tomcat ..." - new URL(url).withInputStream{ i -> f.withOutputStream{ it << i }} - } - } -} +def tomcatVer = tomcatVersion +def tomcatDir = layout.buildDirectory.dir("tomcat-bundling") +def tomcatHome = tomcatDir.map { it.dir("apache-tomcat-${tomcatVer}") } +def releasesDirectory = layout.projectDirectory.dir("releases/${project.version}") -task extractTomcat(dependsOn: downloadTomcat, type: Copy) { - - String filename = project.buildDir.toString() + "/tomcat-##VERSION##.zip"; - filename = filename.replaceAll("##VERSION##", project.tomcatVersion); - - inputs.file filename - - String targetDir = project.buildDir.toString() + "/tomcat-##VERSION##"; - targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); - - def zipFile = file(filename) - def outputDir = file(targetDir) - - from zipTree(zipFile) - into outputDir +tasks.register('extractTomcat', Sync) { + from({ + zipTree(configurations.tomcatDist.singleFile) + }) + into(tomcatDir) } -def deployVersions=[''] - -task copyTomcat(dependsOn: extractTomcat) { - doLast { - deployVersions.each{ - String targetDir = project.buildDir.toString() + "/tomcat-##VERSION##"+it; - targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); - println "copiing to "+targetDir - copy{ - with extractTomcat - into targetDir - } - } - } +tasks.register('cleanWebAppsInTomcat', Delete) { + dependsOn('extractTomcat') + delete(tomcatHome.map { it.dir("webapps") }) } -task cleanWebAppsInTomcat(dependsOn: copyTomcat) { - doLast { - deployVersions.each{ - String targetDir = project.buildDir.toString() + "/tomcat-##VERSION##"+it+"/apache-tomcat-##VERSION##/webapps/"; - targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); - - def webappDir = new File(targetDir); - println "Removing: " + webappDir.toString() - def result = webappDir.deleteDir() // Returns true if all goes well, false otherwise. - println result.toString() - - assert result - - webappDir.mkdirs() - } - } +tasks.register('putTemplateIntoTomcat', Copy) { + dependsOn('cleanWebAppsInTomcat') + from("src/main/assembly/tomcat") + into(tomcatHome) } -task putTemplateIntoTomcat(dependsOn: cleanWebAppsInTomcat) { - doLast { - deployVersions.each{ - String source = project.projectDir.toString() + "/"; - - String targetDir = "build/tomcat-##VERSION##"+it+"/apache-tomcat-##VERSION##"; - targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); - copy{ - from "src/main/assembly/tomcat" - into targetDir - } - } - } +tasks.register('putConfigIntoTomcat', Copy) { + dependsOn(':pdf-as-lib:processResources', 'putTemplateIntoTomcat') + from(zipTree(project(':pdf-as-lib').layout.buildDirectory.file('resources/main/config/config.zip'))) + into(tomcatHome.map { it.dir("conf/pdf-as") }) } -task putConfigIntoTomcat(dependsOn: putTemplateIntoTomcat) { - doLast { - deployVersions.each{ - String source = "../pdf-as-lib/build/resources/main/config/config.zip"; - - String targetDir = "build/tomcat-##VERSION##"+it+"/apache-tomcat-##VERSION##/conf/pdf-as"; - targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); - copy{ - from zipTree(source) - into targetDir - } - } - } +tasks.register('putWebConfigIntoTomcat', Copy) { + dependsOn('putConfigIntoTomcat') + from("src/main/configuration") + into(tomcatHome.map { it.dir("conf/pdf-as") }) } -task putWebConfigIntoTomcat(dependsOn: putConfigIntoTomcat) { - doLast { - deployVersions.each{ - String targetDir = "build/tomcat-##VERSION##"+it+"/apache-tomcat-##VERSION##/conf/pdf-as"; - targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); - - copy{ - from 'src/main/configuration/' - into targetDir - } - } - } +tasks.register('injectPdfAsWebApp', Copy) { + dependsOn('bootWar') + dependsOn('putWebConfigIntoTomcat') + from(tasks.named('bootWar').flatMap { it.archiveFile }) + into(tomcatHome.map { it.dir("webapps") }) + rename { "pdf-as-web.war" } } -task injectPdfAsWebApp(dependsOn: putWebConfigIntoTomcat, type: Copy) { - //war.execute(); - - String targetDir = project.buildDir.toString() + "/tomcat-##VERSION##/apache-tomcat-##VERSION##/webapps/"; - targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); - - from war.outputs - into targetDir - rename '.*.war', 'pdf-as-web.war' +tasks.register('buildTomcatZip', Zip) { + dependsOn('injectPdfAsWebApp') + from(tomcatDir) + archiveFileName = "apache-tomcat-${tomcatVer}-pdf-as-web-${project.version}.zip" + destinationDirectory = layout.buildDirectory } -injectPdfAsWebApp.dependsOn war -task buildTomcat(dependsOn: injectPdfAsWebApp, type: Zip) { - String targetDir = project.buildDir.toString() + "/tomcat-##VERSION##/apache-tomcat-##VERSION##"; - targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); - - String archive = "apache-tomcat-##VERSION##-pdf-as-web-##PVERSION##.zip"; - archive = archive.replaceAll("##VERSION##", project.tomcatVersion); - archive = archive.replaceAll("##PVERSION##", project.version); - - from targetDir - archiveName archive - destinationDir project.buildDir +tasks.register('buildTomcatTar', Tar) { + dependsOn('injectPdfAsWebApp') + from(tomcatDir) + archiveFileName = "apache-tomcat-${tomcatVer}-pdf-as-web-${project.version}.tar" + destinationDirectory = layout.buildDirectory + compression = Compression.NONE } -task buildTomcatTar(dependsOn: injectPdfAsWebApp, type: Tar) { - - String targetDir = project.buildDir.toString() + "/tomcat-##VERSION##/apache-tomcat-##VERSION##"; - targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); - - String archive = "apache-tomcat-##VERSION##-pdf-as-web-##PVERSION##.tar"; - archive = archive.replaceAll("##VERSION##", project.tomcatVersion); - archive = archive.replaceAll("##PVERSION##", project.version); - - from targetDir - archiveName archive - destinationDir project.buildDir -} - - - -task releaseConfig(type: Copy) { - from 'src/main/configuration/pdf-as-web.properties' - into rootDir.toString() + "/releases/" + version + "/cfg" +tasks.register('releaseConfig', Copy) { + from('src/main/configuration/pdf-as-web.properties') + into(releasesDirectory.dir("cfg")) } +tasks.register('releases', Copy) { + dependsOn('jar', 'sourcesJar', 'bootWar', 'releaseConfig', 'buildTomcatZip', 'buildTomcatTar') - -war{ - doFirst{ - sourceSets.main.compileClasspath += configurations.pdfbox2 - sourceSets.test.compileClasspath += configurations.pdfbox2 - classpath+=sourceSets.main.compileClasspath - } + from(tasks.named('jar').flatMap { it.archiveFile }) + from(tasks.named('sourcesJar').flatMap { it.archiveFile }) + from(tasks.named('bootWar').flatMap { it.archiveFile }) + from(tasks.named('buildTomcatZip').flatMap { it.archiveFile }) + from(tasks.named('buildTomcatTar').flatMap { it.archiveFile }) + into(releasesDirectory) } - -task releases(dependsOn: buildTomcat, type: Copy) { - String archive = project.buildDir.toString() + "/apache-tomcat-##VERSION##-pdf-as-web-##PVERSION##.zip"; - archive = archive.replaceAll("##VERSION##", project.tomcatVersion); - archive = archive.replaceAll("##PVERSION##", project.version); - - String tararchive = project.buildDir.toString() + "/apache-tomcat-##VERSION##-pdf-as-web-##PVERSION##.tar"; - tararchive = tararchive.replaceAll("##VERSION##", project.tomcatVersion); - tararchive = tararchive.replaceAll("##PVERSION##", project.version); - - - from war - from archive - from tararchive - into rootDir.toString() + "/releases/" + version -} - -releases.dependsOn jar -releases.dependsOn sourcesJar -releases.dependsOn war -releases.dependsOn releaseConfig -releases.dependsOn buildTomcatTar - diff --git a/pdf-as-web/gradle.properties b/pdf-as-web/gradle.properties index 887ae74e..06d755fd 100644 --- a/pdf-as-web/gradle.properties +++ b/pdf-as-web/gradle.properties @@ -1,3 +1,3 @@ jetty94Version = 9.4.44.v20210927 jetty93Version = 9.3.30.v20211001 -jetty9Version = 9.2.30.v20200428
\ No newline at end of file +jetty9Version = 9.2.30.v20200428 diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/PdfAsWeb.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/PdfAsWeb.java new file mode 100644 index 00000000..9d1cd7fe --- /dev/null +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/PdfAsWeb.java @@ -0,0 +1,11 @@ +package at.gv.egiz.pdfas.web; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class PdfAsWeb { + public static void main(String[] args) { + SpringApplication.run(PdfAsWeb.class, args); + } +} diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/config/WebConfiguration.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/config/WebConfiguration.java index 7177541c..c7d36d9a 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/config/WebConfiguration.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/config/WebConfiguration.java @@ -25,6 +25,7 @@ package at.gv.egiz.pdfas.web.config; import java.io.File; import java.io.FileInputStream; +import java.io.InputStream; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -131,15 +132,23 @@ public class WebConfiguration implements IConfigurationConstants { private static List<String> whiteListregEx = new ArrayList<String>(); private static List<String> overwritewhiteListregEx = new ArrayList<String>(); + + public static void configure(String configFile) { + try (InputStream is = new FileInputStream(configFile)) { + configure(is); + } catch (Exception e) { + logger.error("Failed to load configuration {}", configFile, e); + } + } - public static void configure(String config) { + public static void configure(InputStream config) { properties.clear(); whiteListregEx.clear(); overwritewhiteListregEx.clear(); try { - properties.load(new FileInputStream(config)); + properties.load(config); } catch (Exception e) { logger.error("Failed to load configuration: " + e.getMessage()); throw new RuntimeException(e); diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/filter/ExceptionCatchFilter.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/filter/ExceptionCatchFilter.java index 5d1abc15..15b8f61b 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/filter/ExceptionCatchFilter.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/filter/ExceptionCatchFilter.java @@ -28,15 +28,15 @@ import java.util.Collections; import java.util.Enumeration; import java.util.List; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import org.apache.commons.lang3.StringUtils; import org.slf4j.MDC; diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/filter/UserAgentFilter.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/filter/UserAgentFilter.java index ef7d391d..15cadb48 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/filter/UserAgentFilter.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/filter/UserAgentFilter.java @@ -2,13 +2,13 @@ package at.gv.egiz.pdfas.web.filter; import java.io.IOException; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java index 9900dda4..841acca9 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsHelper.java @@ -32,6 +32,7 @@ import java.io.StringWriter; import java.io.UnsupportedEncodingException; import java.net.URL; import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.security.cert.CertificateException; import java.util.ArrayList; import java.util.Iterator; @@ -40,20 +41,21 @@ import java.util.Map; import java.util.UUID; import javax.imageio.ImageIO; -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import javax.xml.bind.JAXBElement; -import javax.xml.ws.WebServiceException; - +import jakarta.servlet.RequestDispatcher; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; +import jakarta.xml.bind.JAXBElement; +import jakarta.xml.ws.WebServiceException; + +import lombok.val; import org.apache.commons.codec.binary.Base64; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringEscapeUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.text.StringEscapeUtils; import org.apache.http.entity.ContentType; import com.google.gson.JsonArray; @@ -594,7 +596,7 @@ public class PdfAsHelper { } - private static StatusRequest initializeSigningContextForNewDocument(HttpServletRequest request, String connector, PdfasSignRequest pdfAsRequest) + private static StatusRequest.Stage1 initializeSigningContextForNewDocument(HttpServletRequest request, String connector, PdfasSignRequest pdfAsRequest) throws PdfAsWebException, WriterException, IOException, PdfAsException, PDFASError { HttpSession session = request.getSession(); @@ -619,7 +621,7 @@ public class PdfAsHelper { } - private static StatusRequest buildPdfasStatusRequestToSignSingleDocument(DocumentToSign pdfToSign, HttpSession session, IPlainSigner signer, + private static StatusRequest.Stage1 buildPdfasStatusRequestToSignSingleDocument(DocumentToSign pdfToSign, HttpSession session, IPlainSigner signer, CoreSignParams coreSignParams, String qrCodeContent, Configuration config) throws WriterException, IOException, PdfAsException, PDFASError { ByteArrayOutputStream baos = new ByteArrayOutputStream(); session.setAttribute(PDF_OUTPUT, baos); @@ -738,7 +740,7 @@ public class PdfAsHelper { .getAttribute(PDF_STATUS); if(statusObject != null && statusObject instanceof StatusRequest) { StatusRequest statusRequest = (StatusRequest)statusObject; - if(statusRequest.needCertificate() || statusRequest.needSignature()) { + if (statusRequest instanceof StatusRequest.Stage1 || statusRequest instanceof StatusRequest.Stage2) { return true; } } @@ -756,21 +758,19 @@ public class PdfAsHelper { StatusRequest statusRequest = (StatusRequest) session .getAttribute(PDF_STATUS); - if (statusRequest == null) { + if (!(statusRequest instanceof StatusRequest.Stage1 statusRequest1)) { throw new PdfAsWebException("No Signature running in session:" + session.getId()); } - - statusRequest.setCertificate(certificate); - statusRequest = pdfAs.process(statusRequest); - session.setAttribute(PDF_STATUS, statusRequest); + val statusRequest2 = statusRequest1.setCertificate(certificate); + session.setAttribute(PDF_STATUS, statusRequest2); PdfAsHelper.process(request, response, context); } public static void injectSignature(HttpServletRequest request, HttpServletResponse response, - byte[] cmsSginature, + byte[] cmsSignature, ServletContext context) throws Exception { log.debug("Got CMS Signature Response"); @@ -779,14 +779,13 @@ public class PdfAsHelper { StatusRequest statusRequest = (StatusRequest) session .getAttribute(PDF_STATUS); - if (statusRequest == null) { + if (!(statusRequest instanceof StatusRequest.Stage2 statusRequest2)) { throw new PdfAsWebException("No Signature running in session:" + session.getId()); } - statusRequest.setSigature(cmsSginature); - statusRequest = pdfAs.process(statusRequest); - session.setAttribute(PDF_STATUS, statusRequest); + val statusRequest3 = statusRequest2.setSignature(cmsSignature); + session.setAttribute(PDF_STATUS, statusRequest3); PdfAsHelper.process(request, response, context); } @@ -807,7 +806,7 @@ public class PdfAsHelper { BKUSLConnector bkuSLConnector = (BKUSLConnector) session .getAttribute(PDF_SL_CONNECTOR); - if (statusRequest.needCertificate()) { + if (statusRequest instanceof StatusRequest.Stage1) { log.debug("Needing Certificate from BKU"); // build SL Request to read certificate InfoboxReadRequestType readCertificateRequest = bkuSLConnector @@ -833,7 +832,7 @@ public class PdfAsHelper { throws Exception { HttpSession session = request.getSession(); - StatusRequest statusRequest = (StatusRequest) session.getAttribute(PDF_STATUS); + StatusRequest statusRequestGeneric = (StatusRequest) session.getAttribute(PDF_STATUS); PdfasSignRequest pdfAsRequest = (PdfasSignRequest) session.getAttribute(PDF_PROCESSING_REQUEST); @@ -849,7 +848,7 @@ public class PdfAsHelper { if (!joseTools.isInitialized()) joseTools = null; - if (statusRequest.needCertificate()) { + if (statusRequestGeneric instanceof StatusRequest.Stage1 statusRequest) { log.debug("Needing Certificate from BKU"); // build SL Request to read certificate InfoboxReadRequestType readCertificateRequest = slConnector @@ -888,11 +887,10 @@ public class PdfAsHelper { response.setContentType("text/html"); response.getWriter().close(); - } else if (slConnector instanceof SL20Connector) { - //generate request for getCertificate command - SL20Connector sl20Connector = (SL20Connector)slConnector; - - //use 'SecureSigningKeypair' per default + } else if (slConnector instanceof SL20Connector sl20Connector) { + //generate request for getCertificate command + + //use 'SecureSigningKeypair' per default String keyId = SL20Connector.SecureSignatureKeypair; java.security.cert.X509Certificate x5cEnc = null; @@ -976,7 +974,7 @@ public class PdfAsHelper { } else throw new PdfAsWebException("Invalid connector: " + slConnector.getClass().getName()); - } else if (statusRequest.needSignature()) { + } else if (statusRequestGeneric instanceof StatusRequest.Stage2 statusRequest) { log.debug("Needing Signature from BKU"); // build SL Request for cms signature RequestPackage pack = slConnector.createCMSRequest( @@ -1077,7 +1075,7 @@ public class PdfAsHelper { log.trace("Write 'createCAdES' command to VDA: " + sl20CreateCAdES.toString()); StringWriter writer = new StringWriter(); writer.write(sl20CreateCAdES.toString()); - final byte[] content = writer.toString().getBytes("UTF-8"); + final byte[] content = writer.toString().getBytes(StandardCharsets.UTF_8); response.setStatus(HttpServletResponse.SC_OK); response.setContentLength(content.length); response.setContentType(ContentType.APPLICATION_JSON.toString()); @@ -1088,9 +1086,9 @@ public class PdfAsHelper { } - } else if (statusRequest.isReady()) { + } else if (statusRequestGeneric instanceof StatusRequest.Stage3 statusRequest) { log.debug("Single document is ready. Perform post-processing ... "); - SignResult result = pdfAs.finishSign(statusRequest); + SignResult result = statusRequest.finishSign(); ByteArrayOutputStream baos = (ByteArrayOutputStream) session.getAttribute(PDF_OUTPUT); baos.close(); @@ -1112,7 +1110,7 @@ public class PdfAsHelper { .getCode()); SignedDocument signPdfDoc = SignedDocument.builder() - .signingTimestamp(Long.valueOf(System.currentTimeMillis())) + .signingTimestamp(System.currentTimeMillis()) .outputData(baos.toByteArray()) .fileName(PdfAsHelper.getPDFFileName(request)) .verificationResponse(verResponse) @@ -1125,28 +1123,28 @@ public class PdfAsHelper { // check if more files are available if (pdfAsRequest.hasNext()) { log.debug("Find additional file, restarting signing process again ... "); - StatusRequestImpl nextStatusRequest = (StatusRequestImpl)initializeSigningContextForNewDocument(request, connector, pdfAsRequest); - nextStatusRequest.setCertificate(((StatusRequestImpl)statusRequest).getCertificate().getEncoded()); - nextStatusRequest.setNeedCertificate(true); - - statusRequest = pdfAs.process(nextStatusRequest); - session.setAttribute(PDF_STATUS, nextStatusRequest); - - PdfAsHelper.process(request, response, context); - session.setAttribute(PDF_STATUS, nextStatusRequest); + StatusRequest.Stage1 nextStatusRequest1 = initializeSigningContextForNewDocument(request, connector, pdfAsRequest); + StatusRequest.Stage2 nextStatusRequest2 = nextStatusRequest1.setCertificate( + statusRequest.getRequestedSignature().getCertificate().getEncoded()); + + session.setAttribute(PDF_STATUS, nextStatusRequest2); + + // recurse + PdfAsHelper.process(request, response, context); } else { - if (slConnector instanceof BKUSLConnector) { - PdfAsHelper.gotoProvidePdf(context, request, response); - - } else if (slConnector instanceof SL20Connector) { - //TODO: add code to send SL20 redirect command to redirect the user from DataURL connection to App Front-End connection - String callUrl = generateProvideURL(request, response); - String transactionId = (String) request.getAttribute(PdfAsHelper.PDF_SESSION_PREFIX + SL20Constants.SL20_TRANSACTIONID); - buildSL20RedirectResponse(request, response, transactionId, callUrl); - - } else - throw new PdfAsWebException("Invalid connector: " + slConnector.getClass().getName()); + if (slConnector instanceof BKUSLConnector) { + PdfAsHelper.gotoProvidePdf(context, request, response); + + } else if (slConnector instanceof SL20Connector) { + //TODO: add code to send SL20 redirect command to redirect the user from DataURL connection to App Front-End connection + String callUrl = generateProvideURL(request, response); + String transactionId = (String) request.getAttribute(PdfAsHelper.PDF_SESSION_PREFIX + SL20Constants.SL20_TRANSACTIONID); + buildSL20RedirectResponse(request, response, transactionId, callUrl); + + } else { + throw new PdfAsWebException("Invalid connector: " + slConnector.getClass().getName()); + } } @@ -1154,52 +1152,54 @@ public class PdfAsHelper { throw new PdfAsWebException("Invalid state!"); } - } + } private static String getTemplateSL() throws IOException { String xml = FileUtils.readFileToString( - FileUtils.toFile(PdfAsHelper.class.getResource("/template_sl.html"))); + FileUtils.toFile(PdfAsHelper.class.getResource("/template_sl.html")), + StandardCharsets.UTF_8); return xml; } public static String getErrorRedirectTemplateSL() throws IOException { - String xml = FileUtils.readFileToString(FileUtils - .toFile(PdfAsHelper.class - .getResource("/template_error_redirect.html"))); + String xml = FileUtils.readFileToString( + FileUtils.toFile(PdfAsHelper.class.getResource("/template_error_redirect.html")), + StandardCharsets.UTF_8); return xml; } public static String getProvideTemplate() throws IOException { - String xml = FileUtils - .readFileToString(FileUtils.toFile(PdfAsHelper.class - .getResource("/template_provide.html"))); + String xml = FileUtils.readFileToString( + FileUtils.toFile(PdfAsHelper.class.getResource("/template_provide.html")), + StandardCharsets.UTF_8); return xml; } public static String getErrorTemplate() throws IOException { - String xml = FileUtils.readFileToString(FileUtils - .toFile(PdfAsHelper.class.getResource("/template_error.html"))); + String xml = FileUtils.readFileToString( + FileUtils.toFile(PdfAsHelper.class.getResource("/template_error.html")), + StandardCharsets.UTF_8); return xml; } public static String getGenericTemplate() throws IOException { - String xml = FileUtils.readFileToString(FileUtils - .toFile(PdfAsHelper.class - .getResource("/template_generic_param.html"))); + String xml = FileUtils.readFileToString( + FileUtils.toFile(PdfAsHelper.class.getResource("/template_generic_param.html")), + StandardCharsets.UTF_8); return xml; } public static String getInvokeRedirectTemplateSL() throws IOException { - String xml = FileUtils.readFileToString(FileUtils - .toFile(PdfAsHelper.class - .getResource("/template_invoke_redirect.html"))); + String xml = FileUtils.readFileToString( + FileUtils.toFile(PdfAsHelper.class.getResource("/template_invoke_redirect.html")), + StandardCharsets.UTF_8); return xml; } public static String getInvokeRedirectTemplateMoreFiles() throws IOException { - String xml = FileUtils.readFileToString(FileUtils - .toFile(PdfAsHelper.class - .getResource("/template_invoke_redirect_more_files.html"))); + String xml = FileUtils.readFileToString( + FileUtils.toFile(PdfAsHelper.class.getResource("/template_invoke_redirect_more_files.html")), + StandardCharsets.UTF_8); return xml; } @@ -1602,7 +1602,7 @@ public class PdfAsHelper { public static void setSignatureActive(HttpServletRequest request, boolean value) { HttpSession session = request.getSession(); - session.setAttribute(SIGNATURE_ACTIVE, new Boolean(value)); + session.setAttribute(SIGNATURE_ACTIVE, Boolean.valueOf(value)); } public static boolean isSignatureActive(HttpServletRequest request) { diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsParameterExtractor.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsParameterExtractor.java index 1ed85e98..0791e37e 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsParameterExtractor.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/PdfAsParameterExtractor.java @@ -28,7 +28,7 @@ import java.util.Enumeration; import java.util.HashMap; import java.util.Map; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/RemotePDFFetcher.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/RemotePDFFetcher.java index 696a3dc1..d904030f 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/RemotePDFFetcher.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/RemotePDFFetcher.java @@ -108,7 +108,7 @@ public class RemotePDFFetcher { if(fetchInfos.length == 3) { String userpass = fetchInfos[1] + ":" + fetchInfos[2]; - String basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes("UTF-8")); + String basicAuth = "Basic " + jakarta.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes("UTF-8")); uc.setRequestProperty("Authorization", basicAuth); } diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/VerifyResultEncoder.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/VerifyResultEncoder.java index 42a4068a..8b477c2e 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/VerifyResultEncoder.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/VerifyResultEncoder.java @@ -3,8 +3,8 @@ package at.gv.egiz.pdfas.web.helper; import java.io.IOException; import java.util.List; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import at.gv.egiz.pdfas.lib.api.verify.VerifyResult; diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/VerifyResultHTMLEncoder.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/VerifyResultHTMLEncoder.java index 590e93a1..3db45370 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/VerifyResultHTMLEncoder.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/VerifyResultHTMLEncoder.java @@ -6,8 +6,8 @@ import java.io.IOException; import java.io.OutputStream; import java.util.List; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import at.gv.egiz.pdfas.lib.api.verify.VerifyResult; diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/VerifyResultJSONEncoder.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/VerifyResultJSONEncoder.java index 43ad3581..b6eac5bc 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/VerifyResultJSONEncoder.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/helper/VerifyResultJSONEncoder.java @@ -7,8 +7,8 @@ import java.io.OutputStream; import java.security.cert.CertificateEncodingException; import java.util.List; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/json_api/ExceptionFormatter.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/json_api/ExceptionFormatter.java new file mode 100644 index 00000000..8d5f1cea --- /dev/null +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/json_api/ExceptionFormatter.java @@ -0,0 +1,17 @@ +package at.gv.egiz.pdfas.web.json_api; + +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +import java.util.Map; + +@RestControllerAdvice(basePackages = "at.gv.egiz.pdfas.web.json_api") +public class ExceptionFormatter { + @ExceptionHandler(jakarta.xml.ws.WebServiceException.class) + @ResponseStatus(HttpStatus.BAD_REQUEST) + public Map<String, Object> mapError(jakarta.xml.ws.WebServiceException e) { + return Map.of("error", e.getMessage()); + } +} diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/json_api/JacksonConfig.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/json_api/JacksonConfig.java new file mode 100644 index 00000000..bd82f8ed --- /dev/null +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/json_api/JacksonConfig.java @@ -0,0 +1,19 @@ +package at.gv.egiz.pdfas.web.json_api; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.SerializationFeature; +import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** To match how SOAP serializes enum values */ +@Configuration +public class JacksonConfig { + @Bean + public Jackson2ObjectMapperBuilderCustomizer enumsShouldUseToStringToMatchXML() { + return b -> b.featuresToEnable( + SerializationFeature.WRITE_ENUMS_USING_TO_STRING, + DeserializationFeature.READ_ENUMS_USING_TO_STRING + ); + } +} diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/json_api/SignController.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/json_api/SignController.java new file mode 100644 index 00000000..e20e7ad0 --- /dev/null +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/json_api/SignController.java @@ -0,0 +1,37 @@ +package at.gv.egiz.pdfas.web.json_api; + +import at.gv.egiz.pdfas.api.ws.*; +import at.gv.egiz.pdfas.web.ws.PDFASSigningImpl; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api/v2/sign") +@AllArgsConstructor +public class SignController { + private final PDFASSigningImpl signingImpl; + + @PostMapping(value = "/single", consumes = "application/json", produces = "application/json") + public PDFASSignResponse signSingle(@RequestBody PDFASSignRequest request) { + return signingImpl.signPDFDokument(request); + } + + @PostMapping(value = "/bulk", consumes = "application/json", produces = "application/json") + public PDFASBulkSignResponse signBulk(@RequestBody PDFASBulkSignRequest request) { + return signingImpl.signPDFDokument(request); + } + + @PostMapping(value = "/multiple", consumes = "application/json", produces = "application/json") + public PdfasSignMultipleResponse signMultiple(@RequestBody PdfasSignMultipleRequest request) { + return signingImpl.signPDFDokument(request); + } + + @PostMapping(value = "/multiple/get-result", consumes = "application/json", produces = "application/json") + public PdfasSignMultipleResponse getMultiple(@RequestBody PdfasGetMultipleRequest request) { + return signingImpl.getSignedDokument(request); + } +} diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/json_api/SoapLogicBridgeBean.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/json_api/SoapLogicBridgeBean.java new file mode 100644 index 00000000..b35abfd1 --- /dev/null +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/json_api/SoapLogicBridgeBean.java @@ -0,0 +1,15 @@ +package at.gv.egiz.pdfas.web.json_api; + +import at.gv.egiz.pdfas.web.ws.PDFASSigningImpl; +import at.gv.egiz.pdfas.web.ws.PDFASVerificationImpl; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** Exposes the SOAP service implementations as Spring beans to new code */ +@Configuration +public class SoapLogicBridgeBean { + @Bean + public PDFASSigningImpl signingImplBridge() { return new PDFASSigningImpl(); } + @Bean + public PDFASVerificationImpl verificationImplBridge() { return new PDFASVerificationImpl(); } +} diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/json_api/VerifyController.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/json_api/VerifyController.java new file mode 100644 index 00000000..83e287a9 --- /dev/null +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/json_api/VerifyController.java @@ -0,0 +1,22 @@ +package at.gv.egiz.pdfas.web.json_api; + +import at.gv.egiz.pdfas.api.ws.PDFASVerifyRequest; +import at.gv.egiz.pdfas.api.ws.PDFASVerifyResponse; +import at.gv.egiz.pdfas.web.ws.PDFASVerificationImpl; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api/v2/verify") +@AllArgsConstructor +public class VerifyController { + private final PDFASVerificationImpl verifyImpl; + + @PostMapping(consumes = "application/json", produces = "application/json") + public PDFASVerifyResponse verify(@RequestBody PDFASVerifyRequest request) { + return verifyImpl.verifyPDFDokument(request); + } +} diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/DataURLServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/DataURLServlet.java index 18e14c97..f98e5a7b 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/DataURLServlet.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/DataURLServlet.java @@ -25,12 +25,12 @@ package at.gv.egiz.pdfas.web.servlets; import java.io.IOException; -import javax.servlet.ServletException; -import javax.servlet.annotation.MultipartConfig; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.xml.bind.JAXBElement; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.MultipartConfig; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.xml.bind.JAXBElement; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ErrorPage.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ErrorPage.java index 42236f5e..38d883fa 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ErrorPage.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ErrorPage.java @@ -26,13 +26,14 @@ package at.gv.egiz.pdfas.web.servlets; import java.io.IOException; import java.net.URL; import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; -import org.apache.commons.lang3.StringEscapeUtils; +import org.apache.commons.text.StringEscapeUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -141,13 +142,13 @@ public class ErrorPage extends HttpServlet { if (e != null && WebConfiguration.isShowErrorDetails()) { template = template.replace("##CAUSE##", - URLEncoder.encode(e.getMessage(), "UTF-8")); + URLEncoder.encode(e.getMessage(), StandardCharsets.UTF_8)); } else { template = template.replace("##CAUSE##", ""); } if (message != null) { template = template.replace("##ERROR##", - URLEncoder.encode(message, "UTF-8")); + URLEncoder.encode(message, StandardCharsets.UTF_8)); } else { template = template.replace("##ERROR##", "Unbekannter Fehler"); diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java index 957614b1..6359eccb 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java @@ -28,14 +28,14 @@ import java.io.IOException; import java.util.List; import java.util.Map; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; -import org.apache.commons.fileupload.FileItem; -import org.apache.commons.fileupload.disk.DiskFileItemFactory; -import org.apache.commons.fileupload.servlet.ServletFileUpload; +import lombok.val; +import org.apache.commons.fileupload2.core.DiskFileItem; +import org.apache.commons.fileupload2.core.DiskFileItemFactory; import at.gv.egiz.pdfas.api.processing.CoreSignParams; import at.gv.egiz.pdfas.api.processing.DocumentToSign; @@ -61,6 +61,8 @@ import at.gv.egiz.pdfas.web.stats.StatisticEvent.Source; import at.gv.egiz.pdfas.web.stats.StatisticEvent.Status; import at.gv.egiz.pdfas.web.stats.StatisticFrontend; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletDiskFileUpload; +import org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletFileUpload; /** * Servlet implementation class Sign @@ -70,6 +72,7 @@ public class ExternSignServlet extends HttpServlet { private static final long serialVersionUID = 1L; + // TODO: get this from spring instead of -D public static final String PDF_AS_WEB_CONF = "pdf-as-web.conf"; private static final String UPLOAD_PDF_DATA = "pdf-file"; @@ -176,7 +179,7 @@ public class ExternSignServlet extends HttpServlet { byte[] filecontent = null; // checks if the request actually contains upload file - if (!ServletFileUpload.isMultipartContent(request)) { + if (!JakartaServletFileUpload.isMultipartContent(request)) { // No Uploaded data! if (PdfAsParameterExtractor.getPdfUrl(request) != null) { doGet(request, response); @@ -187,14 +190,14 @@ public class ExternSignServlet extends HttpServlet { } else { // configures upload settings - DiskFileItemFactory factory = new DiskFileItemFactory(); - factory.setSizeThreshold(WebConfiguration.getFilesizeThreshold()); - factory.setRepository(new File(System - .getProperty("java.io.tmpdir"))); + DiskFileItemFactory factory = DiskFileItemFactory.builder() + .setThreshold(WebConfiguration.getFilesizeThreshold()) + .setPath(new File(System.getProperty("java.io.tmpdir")).toPath()) + .get(); - ServletFileUpload upload = new ServletFileUpload(factory); - upload.setFileSizeMax(WebConfiguration.getMaxFilesize()); - upload.setSizeMax(WebConfiguration.getMaxRequestsize()); + val upload = new JakartaServletDiskFileUpload(factory); + upload.setMaxFileSize(WebConfiguration.getMaxFilesize()); + upload.setMaxSize(WebConfiguration.getMaxRequestsize()); // constructs the directory path to store upload file String uploadPath = getServletContext().getRealPath("") @@ -205,9 +208,9 @@ public class ExternSignServlet extends HttpServlet { uploadDir.mkdir(); } - List<?> formItems = upload.parseRequest(request); + List<DiskFileItem> formItems = upload.parseRequest(request); log.debug(formItems.size() + " Items in form data"); - if (formItems.size() < 1) { + if (formItems.isEmpty()) { // No Uploaded data! // Try do get // No Uploaded data! @@ -219,41 +222,34 @@ public class ExternSignServlet extends HttpServlet { "No Signature data defined!"); } } else { - for(int i = 0; i < formItems.size(); i++) { - Object obj = formItems.get(i); - if(obj instanceof FileItem) { - FileItem item = (FileItem) obj; - if(item.getFieldName().equals(UPLOAD_PDF_DATA)) { - filecontent = item.get(); - try { - File f = new File(item.getName()); - String name = f.getName(); - log.debug("Got upload: " + item.getName()); - if(name != null) { - if(!(name.endsWith(".pdf") || name.endsWith(".PDF"))) { - name += ".pdf"; - } - - log.debug("Setting Filename in session: " + name); - PdfAsHelper.setPDFFileName(request, name); - } - } - catch(Throwable e) { - log.warn("In resolving filename", e); - } - if(filecontent.length < 10) { - filecontent = null; - } else { - log.debug("Found pdf Data! Size: " + filecontent.length); - } - } else { - request.setAttribute(item.getFieldName(), item.getString()); - log.debug("Setting " + item.getFieldName() + " = " + item.getString()); - } - } else { - log.debug(obj.getClass().getName() + " - " + obj.toString()); - } - } + for (DiskFileItem item : formItems) { + if (item != null) { + if (item.getFieldName().equals(UPLOAD_PDF_DATA)) { + filecontent = item.getInputStream().readAllBytes(); + try { + File f = new File(item.getName()); + String name = f.getName(); + log.debug("Got upload: " + item.getName()); + if (!(name.endsWith(".pdf") || name.endsWith(".PDF"))) { + name += ".pdf"; + } + + log.debug("Setting Filename in session: " + name); + PdfAsHelper.setPDFFileName(request, name); + } catch (Throwable e) { + log.warn("In resolving filename", e); + } + if (filecontent.length < 10) { + filecontent = null; + } else { + log.debug("Found pdf Data! Size: " + filecontent.length); + } + } else { + request.setAttribute(item.getFieldName(), item.getString()); + log.debug("Setting " + item.getFieldName() + " = " + item.getString()); + } + } + } } } diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/JSONAPIServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/JSONAPIServlet.java index d5ef2079..b60fae06 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/JSONAPIServlet.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/JSONAPIServlet.java @@ -5,10 +5,10 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.apache.commons.codec.binary.Base64; import org.apache.commons.io.IOUtils; diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFData.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFData.java index 96d02f16..e7556569 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFData.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFData.java @@ -34,10 +34,10 @@ import java.util.zip.Deflater; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import at.gv.egiz.pdfas.api.processing.PdfasSignResponse; import at.gv.egiz.pdfas.api.processing.SignedDocument; diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFSignatureCertificateData.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFSignatureCertificateData.java index e4465e77..869dfdf4 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFSignatureCertificateData.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFSignatureCertificateData.java @@ -28,10 +28,10 @@ import java.io.OutputStream; import java.security.cert.CertificateEncodingException; import java.util.List; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFSignatureData.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFSignatureData.java index e493f4ae..3d96784b 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFSignatureData.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFSignatureData.java @@ -27,10 +27,10 @@ import java.io.IOException; import java.io.OutputStream; import java.util.List; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -95,7 +95,7 @@ public class PDFSignatureData extends HttpServlet { "inline;filename=signed_data_" + id + ".pdf"); response.setContentType("application/pdf"); OutputStream os = response.getOutputStream(); - os.write(res.getSignatureData()); + os.write(res.getSignatureData().getBaseData()); os.close(); } else { logger.warn("Verification DATA not found! for id " + request.getParameter(SIGN_ID) + " in session " + request.getSession().getId()); diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFURLData.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFURLData.java index d4112cad..63172175 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFURLData.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFURLData.java @@ -6,11 +6,11 @@ import at.gv.egiz.pdfas.lib.api.StatusRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import java.io.IOException; import java.io.OutputStream; diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PlaceholderGeneratorServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PlaceholderGeneratorServlet.java index b07293b1..388c7e9d 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PlaceholderGeneratorServlet.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PlaceholderGeneratorServlet.java @@ -10,10 +10,10 @@ import java.io.IOException; import java.io.InputStream; import javax.imageio.ImageIO; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.apache.http.HttpStatus; import org.slf4j.Logger; diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ProvidePDFServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ProvidePDFServlet.java index 47469eb2..f6c3e646 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ProvidePDFServlet.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ProvidePDFServlet.java @@ -28,13 +28,13 @@ import java.net.URL; import java.net.URLEncoder; import java.util.List; -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.RequestDispatcher; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; -import org.apache.commons.lang3.StringEscapeUtils; +import org.apache.commons.text.StringEscapeUtils; import at.gv.egiz.pdfas.api.processing.SignedDocument; import at.gv.egiz.pdfas.common.exceptions.PdfAsException; diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ReloadServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ReloadServlet.java index 84e86634..c4db303f 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ReloadServlet.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ReloadServlet.java @@ -3,10 +3,10 @@ package at.gv.egiz.pdfas.web.servlets; import java.io.IOException; import java.io.OutputStream; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SLDataURLServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SLDataURLServlet.java index 55946afb..d0c331e6 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SLDataURLServlet.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SLDataURLServlet.java @@ -6,11 +6,11 @@ import java.util.ArrayList; import java.util.Base64; import java.util.List; -import javax.servlet.ServletException; -import javax.servlet.annotation.MultipartConfig; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletException; +import jakarta.servlet.annotation.MultipartConfig; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; import org.jose4j.base64url.Base64Url; @@ -97,8 +97,7 @@ public class SLDataURLServlet extends HttpServlet { //parse SL2.0 command/result into JSON try { - JsonParser jsonParser = new JsonParser(); - JsonElement sl20Req = jsonParser.parse(Base64Url.decodeToUtf8String(sl20Result)); + JsonElement sl20Req = JsonParser.parseString(Base64Url.decodeToUtf8String(sl20Result)); sl20ReqObj = sl20Req.getAsJsonObject(); } catch (JsonSyntaxException e) { diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SoapServiceServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SoapServiceServlet.java index ca005abe..f79e5640 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SoapServiceServlet.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SoapServiceServlet.java @@ -1,7 +1,7 @@ package at.gv.egiz.pdfas.web.servlets; -import javax.servlet.ServletConfig; -import javax.xml.ws.Endpoint; +import jakarta.servlet.ServletConfig; +import jakarta.xml.ws.Endpoint; import org.apache.cxf.Bus; import org.apache.cxf.BusFactory; diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/UIEntryPointServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/UIEntryPointServlet.java index d7a3d3c6..2842c7e2 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/UIEntryPointServlet.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/UIEntryPointServlet.java @@ -25,10 +25,10 @@ package at.gv.egiz.pdfas.web.servlets; import java.io.IOException; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import at.gv.egiz.pdfas.api.processing.PdfasSignRequest; import at.gv.egiz.pdfas.api.ws.PDFASSignParameters.Connector; diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VerifyServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VerifyServlet.java index 003a4a73..a71a13f4 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VerifyServlet.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VerifyServlet.java @@ -27,14 +27,17 @@ import java.io.File; import java.io.IOException; import java.util.List; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; -import org.apache.commons.fileupload.FileItem; -import org.apache.commons.fileupload.disk.DiskFileItemFactory; -import org.apache.commons.fileupload.servlet.ServletFileUpload; +import lombok.val; +import org.apache.commons.fileupload2.core.DiskFileItem; +import org.apache.commons.fileupload2.core.FileItem; +import org.apache.commons.fileupload2.core.DiskFileItemFactory; +import org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletDiskFileUpload; +import org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletFileUpload; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -159,7 +162,7 @@ public class VerifyServlet extends HttpServlet { byte[] filecontent = null; // checks if the request actually contains upload file - if (!ServletFileUpload.isMultipartContent(request)) { + if (!JakartaServletFileUpload.isMultipartContent(request)) { // No Uploaded data! if (PdfAsParameterExtractor.getPdfUrl(request) != null) { doGet(request, response); @@ -169,14 +172,14 @@ public class VerifyServlet extends HttpServlet { } } else { // configures upload settings - DiskFileItemFactory factory = new DiskFileItemFactory(); - factory.setSizeThreshold(THRESHOLD_SIZE); - factory.setRepository(new File(System - .getProperty("java.io.tmpdir"))); + DiskFileItemFactory factory = DiskFileItemFactory.builder() + .setThreshold(THRESHOLD_SIZE) + .setPath(new File(System.getProperty("java.io.tmpdir")).toPath()) + .get(); - ServletFileUpload upload = new ServletFileUpload(factory); - upload.setFileSizeMax(MAX_FILE_SIZE); - upload.setSizeMax(MAX_REQUEST_SIZE); + val upload = new JakartaServletDiskFileUpload(factory); + upload.setMaxFileSize(MAX_FILE_SIZE); + upload.setMaxSize(MAX_REQUEST_SIZE); // constructs the directory path to store upload file String uploadPath = getServletContext().getRealPath("") @@ -187,9 +190,9 @@ public class VerifyServlet extends HttpServlet { uploadDir.mkdir(); } - List<?> formItems = upload.parseRequest(request); + List<DiskFileItem> formItems = upload.parseRequest(request); logger.debug(formItems.size() + " Items in form data"); - if (formItems.size() < 1) { + if (formItems.isEmpty()) { // No Uploaded data! // Try do get // No Uploaded data! @@ -201,48 +204,41 @@ public class VerifyServlet extends HttpServlet { "No Signature data defined!"); } } else { - for (int i = 0; i < formItems.size(); i++) { - Object obj = formItems.get(i); - if (obj instanceof FileItem) { - FileItem item = (FileItem) obj; - if (item.getFieldName().equals(UPLOAD_PDF_DATA)) { - filecontent = item.get(); - try { - File f = new File(item.getName()); - String name = f.getName(); - logger.debug("Got upload: " - + item.getName()); - if (name != null) { - if (!(name.endsWith(".pdf") || name - .endsWith(".PDF"))) { - name += ".pdf"; - } + for (DiskFileItem item : formItems) { + if (item != null) { + if (item.getFieldName().equals(UPLOAD_PDF_DATA)) { + filecontent = item.getInputStream().readAllBytes(); + try { + File f = new File(item.getName()); + String name = f.getName(); + logger.debug("Got upload: " + + item.getName()); + if (!(name.endsWith(".pdf") || name + .endsWith(".PDF"))) { + name += ".pdf"; + } - logger.debug("Setting Filename in session: " - + name); - PdfAsHelper.setPDFFileName(request, - name); - } - } catch (Throwable e) { - logger.warn("In resolving filename", e); - } - if (filecontent.length < 10) { - filecontent = null; - } else { - logger.debug("Found pdf Data! Size: " - + filecontent.length); - } - } else { - request.setAttribute(item.getFieldName(), - item.getString()); - logger.debug("Setting " + item.getFieldName() - + " = " + item.getString()); - } - } else { - logger.debug(obj.getClass().getName() + " - " - + obj.toString()); - } - } + logger.debug("Setting Filename in session: " + + name); + PdfAsHelper.setPDFFileName(request, + name); + } catch (Throwable e) { + logger.warn("In resolving filename", e); + } + if (filecontent.length < 10) { + filecontent = null; + } else { + logger.debug("Found pdf Data! Size: " + + filecontent.length); + } + } else { + request.setAttribute(item.getFieldName(), + item.getString()); + logger.debug("Setting " + item.getFieldName() + + " = " + item.getString()); + } + } + } } } diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VisBlockServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VisBlockServlet.java index b49264f7..d67a88c1 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VisBlockServlet.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VisBlockServlet.java @@ -4,10 +4,10 @@ import java.io.IOException; import java.io.OutputStream; import java.security.cert.CertificateException; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/sl20/JsonSecurityUtils.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/sl20/JsonSecurityUtils.java index bf37b290..7a4d24ae 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/sl20/JsonSecurityUtils.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/sl20/JsonSecurityUtils.java @@ -181,10 +181,10 @@ public class JsonSecurityUtils implements IJOSETools{ jws.setCompactSerialization(serializedContent); //set security constrains - jws.setAlgorithmConstraints(new AlgorithmConstraints(ConstraintType.WHITELIST, - SL20Constants.SL20_ALGORITHM_WHITELIST_SIGNING.toArray(new String[SL20Constants.SL20_ALGORITHM_WHITELIST_SIGNING.size()]))); + jws.setAlgorithmConstraints(new AlgorithmConstraints(ConstraintType.PERMIT, + SL20Constants.SL20_ALGORITHM_WHITELIST_SIGNING.toArray(new String[0]))); - //load signinc certs + //load signing certs Key selectedKey = null; List<X509Certificate> x5cCerts = jws.getCertificateChainHeaderValue(); String x5t256 = jws.getX509CertSha256ThumbprintHeaderValue(); @@ -232,7 +232,7 @@ public class JsonSecurityUtils implements IJOSETools{ //load payLoad logger.debug("SL2.0 commando signature validation sucessfull"); - JsonElement sl20Req = new JsonParser().parse(jws.getPayload()); + JsonElement sl20Req = JsonParser.parseString(jws.getPayload()); return new VerificationResult(sl20Req.getAsJsonObject(), null, valid) ; @@ -252,11 +252,11 @@ public class JsonSecurityUtils implements IJOSETools{ //set security constrains receiverJwe.setAlgorithmConstraints( - new AlgorithmConstraints(ConstraintType.WHITELIST, - SL20Constants.SL20_ALGORITHM_WHITELIST_KEYENCRYPTION.toArray(new String[SL20Constants.SL20_ALGORITHM_WHITELIST_KEYENCRYPTION.size()]))); + new AlgorithmConstraints(ConstraintType.PERMIT, + SL20Constants.SL20_ALGORITHM_WHITELIST_KEYENCRYPTION.toArray(new String[0]))); receiverJwe.setContentEncryptionAlgorithmConstraints( - new AlgorithmConstraints(ConstraintType.WHITELIST, - SL20Constants.SL20_ALGORITHM_WHITELIST_ENCRYPTION.toArray(new String[SL20Constants.SL20_ALGORITHM_WHITELIST_ENCRYPTION.size()]))); + new AlgorithmConstraints(ConstraintType.PERMIT, + SL20Constants.SL20_ALGORITHM_WHITELIST_ENCRYPTION.toArray(new String[0]))); //set payload receiverJwe.setCompactSerialization(compactSerialization); @@ -295,7 +295,7 @@ public class JsonSecurityUtils implements IJOSETools{ //decrypt payload - return new JsonParser().parse(receiverJwe.getPlaintextString()); + return JsonParser.parseString(receiverJwe.getPlaintextString()); } catch (JoseException e) { logger.warn("SL2.0 result decryption FAILED", e); diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/sl20/SL20HttpBindingUtils.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/sl20/SL20HttpBindingUtils.java index e43ebfcf..8d049030 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/sl20/SL20HttpBindingUtils.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/sl20/SL20HttpBindingUtils.java @@ -4,8 +4,8 @@ import java.io.IOException; import java.io.StringWriter; import java.net.URISyntaxException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.apache.http.client.utils.URIBuilder; import org.apache.http.entity.ContentType; diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/stats/StatisticFrontend.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/stats/StatisticFrontend.java index f006be54..e78e63ab 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/stats/StatisticFrontend.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/stats/StatisticFrontend.java @@ -23,23 +23,16 @@ public class StatisticFrontend implements StatisticBackend { private List<StatisticBackend> statisticBackends = new ArrayList<StatisticBackend>(); private StatisticFrontend() { - Iterator<StatisticBackend> statisticIterator = backendLoader.iterator(); List<String> enabledBackends = WebConfiguration.getStatisticBackends(); if (enabledBackends == null) { - logger.info("No statitistic backends configured using all available."); + logger.info("No statistic backends configured, using all available."); } else { - Iterator<String> enabledBackendsIterator = enabledBackends - .iterator(); logger.info("Allowing the following statistic backends:"); - while (enabledBackendsIterator.hasNext()) { - logger.info(" - {}", enabledBackendsIterator.next()); - } + enabledBackends.forEach(it -> logger.info(" - {}", it)); } - while (statisticIterator.hasNext()) { - StatisticBackend statisticBackend = statisticIterator.next(); - + for (StatisticBackend statisticBackend : backendLoader) { if (enabledBackends == null || enabledBackends.contains(statisticBackend.getName())) { logger.info("adding Statistic Logger {} [{}]", statisticBackend @@ -54,22 +47,8 @@ public class StatisticFrontend implements StatisticBackend { } if (enabledBackends != null) { - Iterator<String> enabledBackendsIterator = enabledBackends - .iterator(); - while (enabledBackendsIterator.hasNext()) { - String enabledBackend = enabledBackendsIterator.next(); - statisticIterator = statisticBackends.iterator(); - boolean found = false; - while (statisticIterator.hasNext()) { - StatisticBackend statisticBackend = statisticIterator - .next(); - if (statisticBackend.getName().equals(enabledBackend)) { - found = true; - break; - } - } - - if (!found) { + for (String enabledBackend : enabledBackends) { + if (statisticBackends.stream().noneMatch(it -> it.getName().equals(enabledBackend))) { logger.warn( "Failed to load statistic backend {}. Not in classpath?", enabledBackend); @@ -103,13 +82,7 @@ public class StatisticFrontend implements StatisticBackend { return; } - Iterator<StatisticBackend> statisticBackendIterator = statisticBackends - .iterator(); - - while (statisticBackendIterator.hasNext()) { - StatisticBackend statisticBackend = statisticBackendIterator.next(); - statisticBackend.storeEvent(statisticEvent); - } + statisticBackends.forEach(statisticBackend -> statisticBackend.storeEvent(statisticEvent)); } } diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/stats/impl/StatisticMicrometerBackend.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/stats/impl/StatisticMicrometerBackend.java new file mode 100644 index 00000000..89127e6a --- /dev/null +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/stats/impl/StatisticMicrometerBackend.java @@ -0,0 +1,77 @@ +package at.gv.egiz.pdfas.web.stats.impl; + +import at.gv.egiz.pdfas.web.stats.StatisticBackend; +import at.gv.egiz.pdfas.web.stats.StatisticEvent; +import io.micrometer.core.instrument.Counter; +import io.micrometer.core.instrument.MeterRegistry; +import io.micrometer.core.instrument.Tags; +import io.micrometer.core.instrument.Timer; +import lombok.extern.slf4j.Slf4j; +import org.jspecify.annotations.NonNull; +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +import java.util.concurrent.TimeUnit; +import java.util.function.Function; + +@Slf4j +public class StatisticMicrometerBackend implements StatisticBackend { + /** bridge between ServiceLoader component and Boot's beans */ + @Component + public static class SpringContextProxy implements ApplicationContextAware { + private static volatile ApplicationContext applicationContext; + @Override public void setApplicationContext(@NonNull ApplicationContext ctx) { applicationContext = ctx; } + public static <T> T getBean(Class<T> type) { + try { + return (applicationContext != null) ? applicationContext.getBean(type) : null; + } catch (BeansException ex) { + log.warn("Spring MeterRegistry not available, skipped micrometer metric logging", ex); + return null; + } + } + } + public static final String NAME = "StatisticMicrometerBackend"; + @Override public String getName() { return NAME; } + + @Override + public void storeEvent(StatisticEvent e) { + if (e == null) return; + + MeterRegistry registry = SpringContextProxy.getBean(MeterRegistry.class); + if (registry == null) return; + + Tags baseTags = Tags.of( + "operation", safeName(e.getOperation(), v -> v.getName()), + "status", safeName(e.getStatus(), v -> v.getName()), + "source", safeName(e.getSource(), v -> v.getName()), + "device", safeString(e.getDevice()), + "profile", safeString(e.getProfileId()) + ); + + Timer.builder("pdfas_requests") + .description("Duration of PDF-AS operations") + .tags(baseTags) + .publishPercentileHistogram() + .register(registry) + .record(Math.max(0, e.getDuration()), TimeUnit.MILLISECONDS); + + if (e.getStatus() == StatisticEvent.Status.ERROR) { + String whichException = safeName(e.getException(), it -> it.getClass().getSimpleName()); + Counter.builder("pdfas_errors") + .description("Failed PDF-AS operations") + .tags(baseTags.and("exception", whichException)) + .register(registry) + .increment(); + } + } + + private static @NonNull String safeString(String str) { + return ((str == null) || str.isBlank()) ? "unknown" : str; + } + + private static <T> @NonNull String safeName(T v, @NonNull Function<T, String> op) { + return safeString((v != null) ? op.apply(v) : null); + } +} diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/RequestStore.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/RequestStore.java index a5e961ef..5ed2bef0 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/RequestStore.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/store/RequestStore.java @@ -42,15 +42,15 @@ public class RequestStore { logger.info("Using Request Store: " + storeClass); Class<?> clazz = Class.forName(storeClass); - Object store = clazz.newInstance(); + Object store = clazz.getDeclaredConstructor().newInstance(); if(store instanceof IRequestStore) { instance = (IRequestStore)store; } else { - throw new PdfAsStoreException("Failed to instanciate Request Store from " + storeClass); + throw new PdfAsStoreException("Failed to instantiate Request Store from " + storeClass); } } catch (Throwable e) { e.printStackTrace(); - throw new PdfAsStoreException("Failed to instanciate Request Store", e); + throw new PdfAsStoreException("Failed to instantiate Request Store", e); } } return instance; diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/web_xml_bridges/ContextXmlBridge.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/web_xml_bridges/ContextXmlBridge.java new file mode 100644 index 00000000..17e86c94 --- /dev/null +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/web_xml_bridges/ContextXmlBridge.java @@ -0,0 +1,20 @@ +package at.gv.egiz.pdfas.web.web_xml_bridges; + +import lombok.val; +import org.apache.tomcat.util.http.Rfc6265CookieProcessor; +import org.springframework.boot.web.embedded.tomcat.TomcatContextCustomizer; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** translates the tomcat context.xml file */ +@Configuration +public class ContextXmlBridge { + @Bean + public TomcatContextCustomizer sameSiteNone() { + return ctx -> { + val processor = new Rfc6265CookieProcessor(); + processor.setSameSiteCookies("none"); + ctx.setCookieProcessor(processor); + }; + } +} diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/web_xml_bridges/FilterBridge.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/web_xml_bridges/FilterBridge.java new file mode 100644 index 00000000..2c4d8c8a --- /dev/null +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/web_xml_bridges/FilterBridge.java @@ -0,0 +1,50 @@ +package at.gv.egiz.pdfas.web.web_xml_bridges; + +import at.gv.egiz.pdfas.web.filter.ExceptionCatchFilter; +import at.gv.egiz.pdfas.web.filter.UserAgentFilter; +import com.thetransactioncompany.cors.CORSFilter; +import jakarta.servlet.Filter; +import lombok.val; +import org.apache.catalina.filters.SetCharacterEncodingFilter; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** Takes the old web.xml filter mappings and exposes them to Spring Boot */ +@Configuration +public class FilterBridge { + @Bean + public FilterRegistrationBean<Filter> setCharacterEncodingFilter() { + val reg = new FilterRegistrationBean<Filter>(new SetCharacterEncodingFilter()); + reg.addUrlPatterns("/*"); + reg.addInitParameter("encoding", "UTF-8"); + reg.setOrder(1); + return reg; + } + + @Bean + public FilterRegistrationBean<Filter> exceptionCatchFilter() { + val reg = new FilterRegistrationBean<Filter>(new ExceptionCatchFilter()); + reg.addUrlPatterns("/*"); + reg.addInitParameter("statelessServlets", "/placeholder,/visblock"); + reg.setOrder(2); + return reg; + } + + @Bean + public FilterRegistrationBean<Filter> userAgentFilter() { + val reg = new FilterRegistrationBean<Filter>(new UserAgentFilter()); + reg.addUrlPatterns("/*"); + reg.setOrder(3); + return reg; + } + + @Bean + public FilterRegistrationBean<Filter> cors() { + val reg = new FilterRegistrationBean<Filter>(new CORSFilter()); + reg.addUrlPatterns("/*"); + reg.addInitParameter("cors.allowOrigin", "*"); + reg.setOrder(4); + return reg; + } +} diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/web_xml_bridges/ServletBridge.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/web_xml_bridges/ServletBridge.java new file mode 100644 index 00000000..af59a7d6 --- /dev/null +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/web_xml_bridges/ServletBridge.java @@ -0,0 +1,131 @@ +package at.gv.egiz.pdfas.web.web_xml_bridges; + +import at.gv.egiz.pdfas.web.servlets.*; +import jakarta.servlet.Servlet; +import org.springframework.boot.web.servlet.ServletRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** Takes the old web.xml servlet mappings and exposes them to Spring Boot */ +@Configuration +public class ServletBridge { + @Bean + public ServletRegistrationBean<Servlet> cxfServlet() { + return new ServletRegistrationBean<>( + /** from <servlet> */ new SoapServiceServlet(), + /** from <servlet-mapping> */ "/services/*" + ); + } + + @Bean + public ServletRegistrationBean<Servlet> signServlet() { + return new ServletRegistrationBean<>( + new ExternSignServlet(), + "/Sign" + ); + } + + @Bean + public ServletRegistrationBean<Servlet> visBlockServlet() { + return new ServletRegistrationBean<>( + new VisBlockServlet(), + "/visblock" + ); + } + + @Bean + public ServletRegistrationBean<Servlet> providePDF() { + return new ServletRegistrationBean<>( + new ProvidePDFServlet(), + "/ProvidePDF" + ); + } + + @Bean + public ServletRegistrationBean<Servlet> reloadServlet() { + return new ServletRegistrationBean<>( + new ReloadServlet(), + "/Reload" + ); + } + + @Bean + public ServletRegistrationBean<Servlet> dataURLServlet() { + return new ServletRegistrationBean<>( + new DataURLServlet(), + "/DataURL" + ); + } + + @Bean + public ServletRegistrationBean<Servlet> slDataURLServlet() { + return new ServletRegistrationBean<>( + new SLDataURLServlet(), + "/DataURLSL20" + ); + } + + @Bean + public ServletRegistrationBean<Servlet> verifyServlet() { + return new ServletRegistrationBean<>( + new VerifyServlet(), + "/Verify" + ); + } + + @Bean + public ServletRegistrationBean<Servlet> pdfData() { + return new ServletRegistrationBean<>( + new PDFData(), + "/PDFData" + ); + } + + @Bean + public ServletRegistrationBean<Servlet> errorPage() { + return new ServletRegistrationBean<>( + new ErrorPage(), + "/ErrorPage" + ); + } + + @Bean + public ServletRegistrationBean<Servlet> pdfVerifyData() { + return new ServletRegistrationBean<>( + new PDFSignatureData(), + "/signData" + ); + } + + @Bean + public ServletRegistrationBean<Servlet> pdfVerifyCert() { + return new ServletRegistrationBean<>( + new PDFSignatureCertificateData(), + "/signCert" + ); + } + + @Bean + public ServletRegistrationBean<Servlet> uiEntryPointServlet() { + return new ServletRegistrationBean<>( + new UIEntryPointServlet(), + "/userentry" + ); + } + + @Bean + public ServletRegistrationBean<Servlet> qrPlaceholderGenerator() { + return new ServletRegistrationBean<>( + new PlaceholderGeneratorServlet(), + "/placeholder" + ); + } + + @Bean + public ServletRegistrationBean<Servlet> jsonAPIServlet() { + return new ServletRegistrationBean<>( + new JSONAPIServlet(), + "/api/v1/sign" + ); + } +} diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/web_xml_bridges/WelcomeFileBridge.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/web_xml_bridges/WelcomeFileBridge.java new file mode 100644 index 00000000..6fcf47fa --- /dev/null +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/web_xml_bridges/WelcomeFileBridge.java @@ -0,0 +1,12 @@ +package at.gv.egiz.pdfas.web.web_xml_bridges; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; + +@Controller +public class WelcomeFileBridge { + @GetMapping("/") + public String welcomeFile() { + return "forward:/index.jsp"; + } +} diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/ws/PDFASSigningImpl.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/ws/PDFASSigningImpl.java index dce3e34c..667816e5 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/ws/PDFASSigningImpl.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/ws/PDFASSigningImpl.java @@ -28,10 +28,12 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import javax.jws.WebService; -import javax.xml.ws.WebServiceException; -import javax.xml.ws.soap.MTOM; +import at.gv.egiz.pdfas.lib.impl.ErrorExtractor; +import jakarta.jws.WebService; +import jakarta.xml.ws.WebServiceException; +import jakarta.xml.ws.soap.MTOM; +import lombok.val; import org.apache.commons.lang3.StringUtils; import at.gv.egiz.pdfas.api.processing.CoreSignParams; @@ -142,20 +144,20 @@ public class PDFASSigningImpl implements PDFASSigning { } } catch (final Throwable e) { + val pdfAsError = ErrorExtractor.searchPdfAsError(e, null); + statisticEvent.setStatus(Status.ERROR); statisticEvent.setException(e); - if (e instanceof PDFASError) { - statisticEvent.setErrorCode(((PDFASError) e).getCode()); - } + statisticEvent.setErrorCode(pdfAsError.getCode()); statisticEvent.setEndNow(); statisticEvent.setTimestampNow(); StatisticFrontend.getInstance().storeEvent(statisticEvent); statisticEvent.setLogged(true); log.warn("Error in Soap Service", e); + response.setErrorCode(pdfAsError.getCode()); if (e.getCause() != null) { response.setError(e.getCause().getMessage()); - } else { response.setError(e.getMessage()); diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/ws/PDFASVerificationImpl.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/ws/PDFASVerificationImpl.java index b1bca4ba..68c5d227 100644 --- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/ws/PDFASVerificationImpl.java +++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/ws/PDFASVerificationImpl.java @@ -16,9 +16,9 @@ import iaik.x509.X509Certificate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.jws.WebService; -import javax.xml.ws.WebServiceException; -import javax.xml.ws.soap.MTOM; +import jakarta.jws.WebService; +import jakarta.xml.ws.WebServiceException; +import jakarta.xml.ws.soap.MTOM; import java.util.ArrayList; import java.util.List; import java.util.Map; diff --git a/pdf-as-web/src/main/resources/META-INF/context.xml b/pdf-as-web/src/main/resources/META-INF/context.xml deleted file mode 100644 index 716b2233..00000000 --- a/pdf-as-web/src/main/resources/META-INF/context.xml +++ /dev/null @@ -1,3 +0,0 @@ -<Context> - <CookieProcessor sameSiteCookies="none" /> -</Context>
\ No newline at end of file diff --git a/pdf-as-web/src/main/resources/META-INF/services/at.gv.egiz.pdfas.web.stats.StatisticBackend b/pdf-as-web/src/main/resources/META-INF/services/at.gv.egiz.pdfas.web.stats.StatisticBackend index d77e0d54..60966482 100644 --- a/pdf-as-web/src/main/resources/META-INF/services/at.gv.egiz.pdfas.web.stats.StatisticBackend +++ b/pdf-as-web/src/main/resources/META-INF/services/at.gv.egiz.pdfas.web.stats.StatisticBackend @@ -1 +1,2 @@ -at.gv.egiz.pdfas.web.stats.impl.StatisticFileBackend
\ No newline at end of file +at.gv.egiz.pdfas.web.stats.impl.StatisticFileBackend +at.gv.egiz.pdfas.web.stats.impl.StatisticMicrometerBackend
\ No newline at end of file diff --git a/pdf-as-web/src/main/resources/application.yml b/pdf-as-web/src/main/resources/application.yml new file mode 100644 index 00000000..0b843081 --- /dev/null +++ b/pdf-as-web/src/main/resources/application.yml @@ -0,0 +1,4 @@ +server: + servlet: + session: + timeout: 30m diff --git a/pdf-as-web/src/main/webapp/WEB-INF/web.xml b/pdf-as-web/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index 46ae8272..00000000 --- a/pdf-as-web/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,263 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> - -<web-app> - <!-- General description of your web application --> - - <display-name>PDF-AS-WEB</display-name> - <description> - PDF-AS-WEB Application - </description> - <filter> - <filter-name>ExceptionCatchFilter</filter-name> - <display-name>ExceptionCatchFilter</display-name> - <description></description> - <filter-class>at.gv.egiz.pdfas.web.filter.ExceptionCatchFilter</filter-class> - <init-param> - <param-name>statelessServlets</param-name> - <param-value>/placeholder,/visblock</param-value> - </init-param> - </filter> - <filter> - <filter-name>UserAgentFilter</filter-name> - <display-name>UserAgentFilter</display-name> - <description></description> - <filter-class>at.gv.egiz.pdfas.web.filter.UserAgentFilter</filter-class> - </filter> - <filter> - <filter-name>sitemesh</filter-name> - <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class> - </filter> - <filter> - <filter-name>CORS</filter-name> - <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class> - <init-param> - <param-name>cors.allowOrigin</param-name> - <param-value>*</param-value> - </init-param> - </filter> - <!-- A filter that sets character encoding that is used to decode --> - <!-- parameters in a POST request --> - <filter> - <filter-name>setCharacterEncodingFilter</filter-name> - <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class> - <init-param> - <param-name>encoding</param-name> - <param-value>UTF-8</param-value> - </init-param> - </filter> - - <!-- The mapping for the Set Character Encoding Filter --> - <filter-mapping> - <filter-name>setCharacterEncodingFilter</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping> - - <!-- filter-mapping> - <filter-name>sitemesh</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping--> - - <filter-mapping> - <filter-name>ExceptionCatchFilter</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping> - <filter-mapping> - <filter-name>UserAgentFilter</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping> - <filter-mapping> - <filter-name>CORS</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping> - <!-- listener> - <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class> - </listener--> - - - <!-- servlet> - <servlet-name>SOAPSign</servlet-name> - <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class> - </servlet--> - <servlet> - <servlet-name>SignServlet</servlet-name> - <description> - The Sign Servlet allows Users to Sign PDF Documents ... - </description> - <servlet-class>at.gv.egiz.pdfas.web.servlets.ExternSignServlet</servlet-class> - <load-on-startup>0</load-on-startup> - </servlet> - <servlet> - <servlet-name>CXFServlet</servlet-name> - <display-name>CXFServlet</display-name> - <description></description> - <servlet-class>at.gv.egiz.pdfas.web.servlets.SoapServiceServlet</servlet-class> - </servlet> - <servlet> - <servlet-name>ProvidePDF</servlet-name> - <display-name>ProvidePDF</display-name> - <description></description> - <servlet-class>at.gv.egiz.pdfas.web.servlets.ProvidePDFServlet</servlet-class> - </servlet> - <servlet> - <servlet-name>DataURLServlet</servlet-name> - <display-name>DataURLServlet</display-name> - <description></description> - <servlet-class>at.gv.egiz.pdfas.web.servlets.DataURLServlet</servlet-class> - </servlet> - <servlet> - <servlet-name>SLDataURLServlet</servlet-name> - <display-name>SLDataURLServlet</display-name> - <description></description> - <servlet-class>at.gv.egiz.pdfas.web.servlets.SLDataURLServlet</servlet-class> - </servlet> - <servlet> - <servlet-name>VisBlockServlet</servlet-name> - <display-name>VisBlockServlet</display-name> - <description></description> - <servlet-class>at.gv.egiz.pdfas.web.servlets.VisBlockServlet</servlet-class> - </servlet> - <servlet> - <servlet-name>VerifyServlet</servlet-name> - <display-name>VerifyServlet</display-name> - <description></description> - <servlet-class>at.gv.egiz.pdfas.web.servlets.VerifyServlet</servlet-class> - </servlet> - <servlet> - <servlet-name>PDFData</servlet-name> - <display-name>PDFData</display-name> - <description></description> - <servlet-class>at.gv.egiz.pdfas.web.servlets.PDFData</servlet-class> - </servlet> - <servlet> - <servlet-name>ErrorPage</servlet-name> - <display-name>ErrorPage</display-name> - <description></description> - <servlet-class>at.gv.egiz.pdfas.web.servlets.ErrorPage</servlet-class> - </servlet> - <servlet> - <servlet-name>PDFVerifyData</servlet-name> - <display-name>PDFVerifyData</display-name> - <description></description> - <servlet-class>at.gv.egiz.pdfas.web.servlets.PDFSignatureData</servlet-class> - </servlet> - <servlet> - <servlet-name>PDFVerifyCert</servlet-name> - <display-name>PDFVerifyCert</display-name> - <description></description> - <servlet-class>at.gv.egiz.pdfas.web.servlets.PDFSignatureCertificateData</servlet-class> - </servlet> - <servlet> - <servlet-name>ReloadServlet</servlet-name> - <display-name>ReloadServlet</display-name> - <description></description> - <servlet-class>at.gv.egiz.pdfas.web.servlets.ReloadServlet</servlet-class> - </servlet> - <servlet> - <servlet-name>UIEntryPointServlet</servlet-name> - <display-name>UIEntryPointServlet</display-name> - <description></description> - <servlet-class>at.gv.egiz.pdfas.web.servlets.UIEntryPointServlet</servlet-class> - </servlet> - <servlet> - <servlet-name>QRPlaceholderGenerator</servlet-name> - <display-name>QRPlaceholderGenerator</display-name> - <description></description> - <servlet-class>at.gv.egiz.pdfas.web.servlets.PlaceholderGeneratorServlet</servlet-class> - </servlet> - <servlet> - <servlet-name>JSONAPIServlet</servlet-name> - <display-name>JSONAPIServlet</display-name> - <description></description> - <servlet-class>at.gv.egiz.pdfas.web.servlets.JSONAPIServlet</servlet-class> - </servlet> - - - <!-- Define mappings that are used by the servlet container to translate - a particular request URI (context-relative) to a particular servlet. The - examples below correspond to the servlet descriptions above. Thus, a request - URI like: http://localhost:8080/{contextpath}/graph will be mapped to the - "graph" servlet, while a request like: http://localhost:8080/{contextpath}/saveCustomer.do - will be mapped to the "controller" servlet. You may define any number of - servlet mappings, including zero. It is also legal to define more than one - mapping for the same servlet, if you wish to. --> - - <!-- servlet-mapping> - <servlet-name>SOAPSign</servlet-name> - <url-pattern>/wssign</url-pattern> - </servlet-mapping --> - <servlet-mapping> - <servlet-name>CXFServlet</servlet-name> - <url-pattern>/services/*</url-pattern> - </servlet-mapping> - <servlet-mapping> - <servlet-name>SignServlet</servlet-name> - <url-pattern>/Sign</url-pattern> - </servlet-mapping> - <servlet-mapping> - <servlet-name>VisBlockServlet</servlet-name> - <url-pattern>/visblock</url-pattern> - </servlet-mapping> - <servlet-mapping> - <servlet-name>ProvidePDF</servlet-name> - <url-pattern>/ProvidePDF</url-pattern> - </servlet-mapping> - <servlet-mapping> - <servlet-name>ReloadServlet</servlet-name> - <url-pattern>/Reload</url-pattern> - </servlet-mapping> - <servlet-mapping> - <servlet-name>DataURLServlet</servlet-name> - <url-pattern>/DataURL</url-pattern> - </servlet-mapping> - <servlet-mapping> - <servlet-name>SLDataURLServlet</servlet-name> - <url-pattern>/DataURLSL20</url-pattern> - </servlet-mapping> - <servlet-mapping> - <servlet-name>VerifyServlet</servlet-name> - <url-pattern>/Verify</url-pattern> - </servlet-mapping> - <servlet-mapping> - <servlet-name>PDFData</servlet-name> - <url-pattern>/PDFData</url-pattern> - </servlet-mapping> - <servlet-mapping> - <servlet-name>ErrorPage</servlet-name> - <url-pattern>/ErrorPage</url-pattern> - </servlet-mapping> - <servlet-mapping> - <servlet-name>PDFVerifyData</servlet-name> - <url-pattern>/signData</url-pattern> - </servlet-mapping> - <servlet-mapping> - <servlet-name>PDFVerifyCert</servlet-name> - <url-pattern>/signCert</url-pattern> - </servlet-mapping> - <servlet-mapping> - <servlet-name>UIEntryPointServlet</servlet-name> - <url-pattern>/userentry</url-pattern> - </servlet-mapping> - <servlet-mapping> - <servlet-name>QRPlaceholderGenerator</servlet-name> - <url-pattern>/placeholder</url-pattern> - </servlet-mapping> - - <servlet-mapping> - <servlet-name>JSONAPIServlet</servlet-name> - <url-pattern>/api/v1/sign</url-pattern> - </servlet-mapping> - - - <!-- Define the default session timeout for your application, in minutes. - From a servlet or JSP page, you can modify the timeout for a particular session - dynamically by using HttpSession.getMaxInactiveInterval(). --> - - <session-config> - <session-timeout>30</session-timeout> <!-- 30 minutes --> - </session-config> - - <welcome-file-list> - <welcome-file>index.jsp</welcome-file> - </welcome-file-list> - -</web-app>
\ No newline at end of file diff --git a/pdf-as-web/src/test/java/at/gv/egiz/pdfas/web/test/JsonApiTest.java b/pdf-as-web/src/test/java/at/gv/egiz/pdfas/web/test/JsonApiTest.java new file mode 100644 index 00000000..71761e1d --- /dev/null +++ b/pdf-as-web/src/test/java/at/gv/egiz/pdfas/web/test/JsonApiTest.java @@ -0,0 +1,130 @@ +package at.gv.egiz.pdfas.web.test; + +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.junit.Assert.*; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.jayway.jsonpath.JsonPath; +import lombok.Lombok; +import lombok.SneakyThrows; +import lombok.val; +import org.apache.commons.io.IOUtils; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; + +import java.io.File; +import java.util.Arrays; +import java.util.Base64; +import java.util.Map; +import java.util.UUID; + +@RunWith(SpringRunner.class) +@SpringBootTest(properties = { + "management.endpoint.metrics.enabled=true", + "management.endpoints.web.exposure.include=metrics" +}) +@AutoConfigureMockMvc +public class JsonApiTest { + @Autowired MockMvc mvc; + @Autowired ObjectMapper om; + + static { + try { + System.setProperty("pdf-as-web.conf", + (new File(".").getCanonicalPath()) + "/src/test/resources/config/pdfas/pdf-as-web.properties"); + } catch (Throwable t) { + throw Lombok.sneakyThrow(t); + } + } + + @Test + @SneakyThrows + public void sign_single_jks() { + try (val watcher = TestUtils.OperationCountWatcher(mvc, "operation:sign", "status:ok")) { + final String pdf = Base64.getEncoder().encodeToString( + IOUtils.toByteArray(JsonApiTest.class.getResourceAsStream("/data/enc_own.pdf"))); + + final String signRequestID = UUID.randomUUID().toString(); + final String signRequest = om.writeValueAsString( + Map.of( + "requestID", signRequestID, + "inputData", pdf, + "parameters", Map.of( + "connector", "jks", + "transactionId", UUID.randomUUID().toString() + ) + ) + ); + + final String signResponse = mvc.perform( + post("/api/v2/sign/single") + .contentType(MediaType.APPLICATION_JSON) + .accept(MediaType.APPLICATION_JSON) + .content(signRequest) + ) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("$.requestID").value(signRequestID)) + .andExpect(jsonPath("$.signedPDF").isNotEmpty()) + .andExpect(jsonPath("$.verificationResponse").exists()) + .andReturn().getResponse().getContentAsString(); + + final byte[] signedPDF = Base64.getDecoder().decode(JsonPath.<String>read(signResponse, "$.signedPDF")); + assertArrayEquals("Signed data looks PDF-ish (%PDF- header)", + new byte[]{'%', 'P', 'D', 'F', '-'}, Arrays.copyOfRange(signedPDF, 0, 5)); + } + } + + @Test + @SneakyThrows + public void verify_single() { + try (val watcher = TestUtils.OperationCountWatcher(mvc, "operation:verify", "status:ok")) { + final String pdf = Base64.getEncoder().encodeToString( + IOUtils.toByteArray(JsonApiTest.class.getResourceAsStream("/data/dummy-pdf-signed.pdf"))); + + final String verifyRequestID = UUID.randomUUID().toString(); + final String verifyRequest = om.writeValueAsString( + Map.of( + "requestID", verifyRequestID, + "inputData", pdf, + "verificationLevel", "intOnly" + ) + ); + + mvc.perform( + post("/api/v2/verify") + .contentType(MediaType.APPLICATION_JSON) + .accept(MediaType.APPLICATION_JSON) + .content(verifyRequest) + ) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("$.verifyResults").isArray()) + .andExpect(jsonPath("$.verifyResults.length()").value(1)) + .andExpect(jsonPath("$.verifyResults[0].requestID").value(verifyRequestID)) + .andExpect(jsonPath("$.verifyResults[0].error").isEmpty()) + .andExpect(jsonPath("$.verifyResults[0].signatureIndex").value(0)) + .andExpect(jsonPath("$.verifyResults[0].signedBy").value("CN=MOA-ID IDP (Test-Version),O=EGIZ,L=Graz,C=AT")); + } + } + + @Test + @SneakyThrows + public void openapi_docs_test() { + mvc.perform(get("/v3/api-docs")) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.paths['/api/v2/sign/single']").exists()) + .andExpect(jsonPath("$.paths['/api/v2/sign/bulk']").exists()) + .andExpect(jsonPath("$.paths['/api/v2/sign/multiple']").exists()) + .andExpect(jsonPath("$.paths['/api/v2/sign/multiple/get-result']").exists()) + .andExpect(jsonPath("$.paths['/api/v2/verify']").exists()); + } +} diff --git a/pdf-as-web/src/test/java/at/gv/egiz/pdfas/web/test/MockMoaSigningTest.java b/pdf-as-web/src/test/java/at/gv/egiz/pdfas/web/test/MockMoaSigningTest.java new file mode 100644 index 00000000..466cfcca --- /dev/null +++ b/pdf-as-web/src/test/java/at/gv/egiz/pdfas/web/test/MockMoaSigningTest.java @@ -0,0 +1,267 @@ +package at.gv.egiz.pdfas.web.test; + +import at.gv.e_government.reference.namespace.moa._20020822_.*; +import at.gv.egiz.pdfas.common.exceptions.PdfAsException; +import at.gv.egiz.pdfas.lib.api.Configuration; +import at.gv.egiz.pdfas.lib.api.IConfigurationConstants; +import at.gv.egiz.pdfas.lib.api.sign.IPlainSigner; +import at.gv.egiz.pdfas.lib.impl.configuration.ConfigurationImpl; +import at.gv.egiz.pdfas.moa.MOAConnector; +import at.gv.egiz.pdfas.sigs.pades.PAdESSignerKeystore; +import at.gv.egiz.pdfas.sigs.pkcs7detached.PKCS7DetachedSigner; +import at.gv.egiz.pdfas.web.config.WebConfiguration; +import at.gv.egiz.pdfas.web.helper.PdfAsHelper; +import at.gv.egiz.pdfas.web.servlets.ExternSignServlet; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.jayway.jsonpath.JsonPath; +import iaik.x509.X509Certificate; +import jakarta.jws.WebService; +import jakarta.xml.ws.Endpoint; +import lombok.Lombok; +import lombok.SneakyThrows; +import lombok.val; +import org.apache.commons.io.IOUtils; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.test.context.event.annotation.BeforeTestClass; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; + +import java.io.*; +import java.net.ServerSocket; +import java.security.KeyStore; +import java.security.PrivateKey; +import java.util.*; + +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; + +@RunWith(SpringRunner.class) +@SpringBootTest(properties = { + "management.endpoint.metrics.enabled=true", + "management.endpoints.web.exposure.include=metrics" +}) +@AutoConfigureMockMvc +public class MockMoaSigningTest { + @Autowired MockMvc mvc; + @Autowired ObjectMapper om; + + static { + try { + System.setProperty("pdf-as-web.conf", + (new File(".").getCanonicalPath()) + "/src/test/resources/config/pdfas/pdf-as-web.properties"); + } catch (Throwable t) { + throw Lombok.sneakyThrow(t); + } + } + + @BeforeClass + public static void jceWorkaround() { + System.setProperty("javax.net.ssl.trustStoreType", "JKS"); + } + + @WebService( + serviceName = "SignatureCreationService", + portName = "SignatureCreationPort", + targetNamespace = "http://reference.e-government.gv.at/namespace/moa/20020822#", + endpointInterface = + "at.gv.e_government.reference.namespace.moa._20020822_.SignatureCreationPortType") + static class MockMoa implements AutoCloseable, SignatureCreationPortType { + @SneakyThrows + private static int freePort() { + try (ServerSocket socket = new ServerSocket(0)) { + return socket.getLocalPort(); + } + } + private static String azstring(int length) { + return + new Random().ints(97,123).limit(length) + .collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append) + .toString(); + } + public final int port = freePort(); + public final String endpointURL = "http://127.0.0.1:"+port+"/moa-spss/services/SignatureCreation"; + public final Endpoint endpoint = + Endpoint.publish(endpointURL, this); + public final String keyIdentifier = azstring(16); + + public final IPlainSigner signer; + + @SneakyThrows + private static Properties getBaseProperties() { + try (InputStream in = new FileInputStream(System.getProperty(ExternSignServlet.PDF_AS_WEB_CONF))) { + val props = new Properties(); + props.load(in); + return props; + } + } + + @SneakyThrows + private static void injectProperties(Map<String, String> overlay) { + val props = getBaseProperties(); + if (overlay != null) overlay.forEach(props::setProperty); + try (val out = new ByteArrayOutputStream()) { + props.store(out, "test config"); + try (val in = new ByteArrayInputStream(out.toByteArray())) { + WebConfiguration.configure(in); + PdfAsHelper.reloadConfig(); + PdfAsHelper.init(); + } + } + } + + @SneakyThrows + public MockMoa() { + try { + KeyStore ks = KeyStore.getInstance("PKCS12"); + try (InputStream is = MockMoaSigningTest.class.getResourceAsStream("/config/pdfas/test.p12")) { + ks.load(is, "123456".toCharArray()); + } + val alias = ks.aliases().nextElement(); + val privateKey = (PrivateKey) ks.getKey(alias, "123456".toCharArray()); + val certificate = new X509Certificate(ks.getCertificate(alias).getEncoded()); + signer = new PAdESSignerKeystore(privateKey, certificate); + } catch (Exception e) { + throw Lombok.sneakyThrow(e); + } + + // inject ourselves into the configuration + injectProperties(Map.of( + "moal."+keyIdentifier+".enabled", "true", + "moal."+keyIdentifier+".url", endpointURL, + "moal."+keyIdentifier+".KeyIdentifier", "KG_TEST", + "moal."+keyIdentifier+".Certificate", + "base64:"+Base64.getEncoder().encodeToString(signer.getCertificate(null).getEncoded()) + )); + } + + @Override + public CreateCMSSignatureResponseType createCMSSignature(CreateCMSSignatureRequest body) throws MOAFault { + val signatureInfoList = body.getSingleSignatureInfo(); + Assertions.assertEquals(1, signatureInfoList.size()); + val signatureInfo = signatureInfoList.get(0); + val dataObjectInfo = signatureInfo.getDataObjectInfo(); + Assertions.assertEquals("detached", dataObjectInfo.getStructure()); + val dataObject = dataObjectInfo.getDataObject(); + Assertions.assertEquals("application/pdf", dataObject.getMetaInfo().getMimeType()); + val content = dataObject.getContent().getBase64Content(); + Assertions.assertNotEquals(0, content.length); + Assertions.assertEquals("KG_TEST", body.getKeyIdentifier()); + try { + val cms = signer.sign(content, null, null, null); + val response = new CreateCMSSignatureResponseType(); + response.getCMSSignatureOrErrorResponse().add(cms); + return response; + } catch (PdfAsException e) { + throw new MOAFault("Failed to create detached CMS in fake MOA", e); + } + } + + @Override + public CreateXMLSignatureResponseType createXMLSignature(CreateXMLSignatureRequest body) throws MOAFault { + throw new IllegalStateException("We do not create XML signatures in this house."); + } + + public void close() { + endpoint.stop(); + // remove the injected overlay + injectProperties(null); + } + } + + @Test + @SneakyThrows + public void signWithMockMOA() { + try (val watcher = TestUtils.OperationCountWatcher(mvc, "operation:sign", "status:ok")) { + try (MockMoa moa = new MockMoa()) { + + final String pdf = Base64.getEncoder().encodeToString( + IOUtils.toByteArray(JsonApiTest.class.getResourceAsStream("/data/enc_own.pdf"))); + + final String signRequestID = UUID.randomUUID().toString(); + final String signRequest = om.writeValueAsString( + Map.of( + "requestID", signRequestID, + "inputData", pdf, + "parameters", Map.of( + "connector", "moa", + "keyIdentifier", moa.keyIdentifier, + "transactionId", UUID.randomUUID().toString() + ) + ) + ); + + final String signResponse = mvc.perform( + post("/api/v2/sign/single") + .contentType(MediaType.APPLICATION_JSON) + .accept(MediaType.APPLICATION_JSON) + .content(signRequest) + ) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("$.requestID").value(signRequestID)) + .andExpect(jsonPath("$.signedPDF").isNotEmpty()) + .andExpect(jsonPath("$.verificationResponse").exists()) + .andReturn().getResponse().getContentAsString(); + + final byte[] signedPDF = Base64.getDecoder().decode(JsonPath.<String>read(signResponse, "$.signedPDF")); + assertArrayEquals("Signed data looks PDF-ish (%PDF- header)", + new byte[]{'%', 'P', 'D', 'F', '-'}, Arrays.copyOfRange(signedPDF, 0, 5)); + } + } + } + + @Test + @SneakyThrows + public void moaTimeout() { + try (MockMoa moa = new MockMoa() { + @Override + @SneakyThrows + public CreateCMSSignatureResponseType createCMSSignature(CreateCMSSignatureRequest body) throws MOAFault { + // this will cause a timeout + Thread.sleep(300 * 1000); + throw new RuntimeException("unreachable"); + } + }) { + final String pdf = Base64.getEncoder().encodeToString( + IOUtils.toByteArray(JsonApiTest.class.getResourceAsStream("/data/enc_own.pdf"))); + + final String signRequestID = UUID.randomUUID().toString(); + final String signRequest = om.writeValueAsString( + Map.of( + "requestID", signRequestID, + "inputData", pdf, + "parameters", Map.of( + "connector", "moa", + "keyIdentifier", moa.keyIdentifier, + "transactionId", UUID.randomUUID().toString() + ) + ) + ); + + mvc.perform( + post("/api/v2/sign/single") + .contentType(MediaType.APPLICATION_JSON) + .accept(MediaType.APPLICATION_JSON) + .content(signRequest) + ) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("$.requestID").value(signRequestID)) + .andExpect(jsonPath("$.signedPDF").isEmpty()) + .andExpect(jsonPath("$.errorCode").value(11022)); + } + } +} diff --git a/pdf-as-web/src/test/java/at/gv/egiz/pdfas/web/test/SimpleSignServletTest.java b/pdf-as-web/src/test/java/at/gv/egiz/pdfas/web/test/SimpleSignServletTest.java index 7c020b17..8ab9cfaf 100644 --- a/pdf-as-web/src/test/java/at/gv/egiz/pdfas/web/test/SimpleSignServletTest.java +++ b/pdf-as-web/src/test/java/at/gv/egiz/pdfas/web/test/SimpleSignServletTest.java @@ -6,11 +6,11 @@ import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Enumeration; -import javax.servlet.ServletConfig; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletConfig; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.apache.commons.io.IOUtils; import org.junit.BeforeClass; import org.junit.Ignore; diff --git a/pdf-as-web/src/test/java/at/gv/egiz/pdfas/web/test/SimpleVerifyServletTest.java b/pdf-as-web/src/test/java/at/gv/egiz/pdfas/web/test/SimpleVerifyServletTest.java index 046a1203..e0075940 100644 --- a/pdf-as-web/src/test/java/at/gv/egiz/pdfas/web/test/SimpleVerifyServletTest.java +++ b/pdf-as-web/src/test/java/at/gv/egiz/pdfas/web/test/SimpleVerifyServletTest.java @@ -9,11 +9,11 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Enumeration; -import javax.servlet.ServletConfig; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletConfig; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; diff --git a/pdf-as-web/src/test/java/at/gv/egiz/pdfas/web/test/TestUtils.java b/pdf-as-web/src/test/java/at/gv/egiz/pdfas/web/test/TestUtils.java new file mode 100644 index 00000000..4ee606bb --- /dev/null +++ b/pdf-as-web/src/test/java/at/gv/egiz/pdfas/web/test/TestUtils.java @@ -0,0 +1,30 @@ +package at.gv.egiz.pdfas.web.test; + +import com.jayway.jsonpath.JsonPath; +import lombok.val; +import org.junit.Assert; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; + +import java.util.Arrays; +import java.util.List; + +public class TestUtils { + public static double getOperationCount(MockMvc mvc, String... tags) throws Exception { + val builder = MockMvcRequestBuilders.get("/actuator/metrics/pdfas_requests"); + Arrays.stream(tags).forEach(tag -> builder.param("tag", tag)); + val result = + mvc.perform(builder).andReturn().getResponse(); + if (result.getStatus() == 404) return 0.0; + Assert.assertEquals(200, result.getStatus()); + return JsonPath.<List<Double>>read( + result.getContentAsString(), + "$.measurements[?(@.statistic == 'COUNT')].value") + .get(0); + } + + public static AutoCloseable OperationCountWatcher(MockMvc mvc, String... tags) throws Exception { + val initialCount = TestUtils.getOperationCount(mvc, tags); + return () -> Assert.assertEquals(initialCount+1.0, TestUtils.getOperationCount(mvc, tags), 0.0001); + } +} diff --git a/settings.gradle b/settings.gradle index e82f1166..25b51cdd 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1 @@ - -include "pdf-as-common", "signature-standards:sigs-pkcs7detached", "signature-standards:sigs-pades", "pdf-as-lib", "pdf-as-pdfbox-2", "pdf-as-moa", "pdf-as-cli", "pdf-as-legacy", "pdf-as-web-status", "pdf-as-web-statistic-api", "pdf-as-web", "pdf-as-web-db", "pdf-as-web-client", "pdf-as-tests"
\ No newline at end of file +include "pdf-as-common", "signature-standards:sigs-pkcs7detached", "signature-standards:sigs-pades", "pdf-as-lib", "pdf-as-pdfbox-2", "pdf-as-pdfbox-3", "pdf-as-moa", "pdf-as-cli", "pdf-as-web-status", "pdf-as-web-statistic-api", "pdf-as-web", "pdf-as-web-db", "pdf-as-web-client", "pdf-as-tests"
\ No newline at end of file diff --git a/signature-standards/sigs-pades/build.gradle b/signature-standards/sigs-pades/build.gradle index be7777c0..9bef553c 100644 --- a/signature-standards/sigs-pades/build.gradle +++ b/signature-standards/sigs-pades/build.gradle @@ -1,5 +1,7 @@ -apply plugin: 'java-library' -apply plugin: 'eclipse' +plugins { + id 'java-library' + id 'eclipse' +} jar { manifest { @@ -8,23 +10,24 @@ jar { } repositories { - mavenLocal() + mavenLocal() mavenCentral() } task releases(type: Copy) { - from jar.outputs - into rootDir.toString() + "/releases/" + version + from jar.outputs + into rootDir.toString() + "/releases/" + version } releases.dependsOn jar releases.dependsOn sourcesJar dependencies { - implementation project (':pdf-as-lib') - implementation project (':pdf-as-common') - implementation 'org.apache.commons:commons-collections4:4.5.0' - testImplementation group: 'junit', name: 'junit', version: '4.+' + implementation project(':pdf-as-lib') + implementation project(':pdf-as-common') + implementation group: 'org.apache.commons', name: 'commons-collections4', version: commonsCollectionsVersion + implementation group: 'org.slf4j', name: 'slf4j-api', version: slf4jVersion + testImplementation group: 'junit', name: 'junit', version: junitVersion } test { diff --git a/signature-standards/sigs-pades/src/main/java/at/gv/egiz/pdfas/sigs/pades/PAdESSignerKeystore.java b/signature-standards/sigs-pades/src/main/java/at/gv/egiz/pdfas/sigs/pades/PAdESSignerKeystore.java index 4914833e..f12cee90 100644 --- a/signature-standards/sigs-pades/src/main/java/at/gv/egiz/pdfas/sigs/pades/PAdESSignerKeystore.java +++ b/signature-standards/sigs-pades/src/main/java/at/gv/egiz/pdfas/sigs/pades/PAdESSignerKeystore.java @@ -39,6 +39,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import iaik.cms.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -62,10 +63,6 @@ import iaik.asn1.UTF8String; import iaik.asn1.structures.AlgorithmID; import iaik.asn1.structures.Attribute; import iaik.asn1.structures.ChoiceOfTime; -import iaik.cms.ContentInfo; -import iaik.cms.IssuerAndSerialNumber; -import iaik.cms.SignedData; -import iaik.cms.SignerInfo; import iaik.smime.ess.ESSCertID; import iaik.smime.ess.ESSCertIDv2; import iaik.x509.X509Certificate; @@ -127,8 +124,6 @@ public class PAdESSignerKeystore implements IPlainSigner, PAdESConstants { } else { try { this.cert = new X509Certificate(cert.getEncoded()); - } catch (CertificateEncodingException e) { - throw new PDFASError(PDFASError.ERROR_INVALID_CERTIFICATE, e); } catch (CertificateException e) { throw new PDFASError(PDFASError.ERROR_INVALID_CERTIFICATE, e); } @@ -146,10 +141,12 @@ public class PAdESSignerKeystore implements IPlainSigner, PAdESConstants { try { logger.info("Creating PAdES signature."); - requestedSignature.getStatus().getMetaInformations() - .put(ErrorConstants.STATUS_INFO_SIGDEVICE, SIGNATURE_DEVICE); - requestedSignature.getStatus().getMetaInformations() - .put(ErrorConstants.STATUS_INFO_SIGDEVICEVERSION, PdfAsFactory.getVersion()); + if (requestedSignature != null) { + requestedSignature.getStatus().getMetaInformations() + .put(ErrorConstants.STATUS_INFO_SIGDEVICE, SIGNATURE_DEVICE); + requestedSignature.getStatus().getMetaInformations() + .put(ErrorConstants.STATUS_INFO_SIGDEVICEVERSION, PdfAsFactory.getVersion()); + } IssuerAndSerialNumber issuer = new IssuerAndSerialNumber(cert); @@ -163,7 +160,7 @@ public class PAdESSignerKeystore implements IPlainSigner, PAdESConstants { //Check PAdES Flag - if (parameter.getConfiguration().hasValue(IConfigurationConstants.SIG_PADES_FORCE_FLAG)) + if (parameter != null && parameter.getConfiguration().hasValue(IConfigurationConstants.SIG_PADES_FORCE_FLAG)) { if (IConfigurationConstants.TRUE.equalsIgnoreCase(parameter.getConfiguration().getValue(IConfigurationConstants.SIG_PADES_FORCE_FLAG))) { @@ -193,20 +190,11 @@ public class PAdESSignerKeystore implements IPlainSigner, PAdESConstants { signature, input); return signature; - } catch (NoSuchAlgorithmException e) { - throw new PdfAsSignatureException("error.pdf.sig.01", e); - } catch (iaik.cms.CMSException e) { - throw new PdfAsSignatureException("error.pdf.sig.01", e); - } catch (IOException e) { - throw new PdfAsSignatureException("error.pdf.sig.01", e); - } catch (CertificateException e) { - throw new PdfAsSignatureException("error.pdf.sig.01", e); - } catch (CodingException e) { - throw new PdfAsSignatureException("error.pdf.sig.01", e); - } catch (PDFASError e) { + } catch (NoSuchAlgorithmException | CMSException | IOException | PDFASError | CodingException | + CertificateException e) { throw new PdfAsSignatureException("error.pdf.sig.01", e); } - } + } public String getPDFSubFilter() { return SUBFILTER_ETSI_CADES_DETACHED; diff --git a/signature-standards/sigs-pades/src/main/java/at/gv/egiz/pdfas/sigs/pades/PAdESVerifier.java b/signature-standards/sigs-pades/src/main/java/at/gv/egiz/pdfas/sigs/pades/PAdESVerifier.java index 6332153f..5def3019 100644 --- a/signature-standards/sigs-pades/src/main/java/at/gv/egiz/pdfas/sigs/pades/PAdESVerifier.java +++ b/signature-standards/sigs-pades/src/main/java/at/gv/egiz/pdfas/sigs/pades/PAdESVerifier.java @@ -27,6 +27,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import at.gv.egiz.pdfas.lib.impl.verify.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -34,10 +35,6 @@ import at.gv.egiz.pdfas.common.exceptions.PdfAsException; import at.gv.egiz.pdfas.common.utils.PDFUtils; import at.gv.egiz.pdfas.lib.api.Configuration; import at.gv.egiz.pdfas.lib.api.verify.VerifyResult; -import at.gv.egiz.pdfas.lib.impl.verify.FilterEntry; -import at.gv.egiz.pdfas.lib.impl.verify.IVerifier; -import at.gv.egiz.pdfas.lib.impl.verify.IVerifyFilter; -import at.gv.egiz.pdfas.lib.impl.verify.VerifyResultImpl; public class PAdESVerifier implements IVerifyFilter, PAdESConstants { @@ -48,17 +45,15 @@ public class PAdESVerifier implements IVerifyFilter, PAdESConstants { public PAdESVerifier() { } - public List<VerifyResult> verify(byte[] contentData, - byte[] signatureContent, Date verificationTime, int[] byteRange, IVerifier verifier) + @Override + public List<VerifyResult> verify(SignatureInputData signedData, byte[] signature, + Date verificationTime, IVerifier verifier) throws PdfAsException { - - byte[] data = contentData; - byte[] signature = signatureContent; - List<VerifyResult> verifieResults = verifier.verify(signature, data, verificationTime); + List<VerifyResult> verifieResults = verifier.verify(signature, signedData, verificationTime); for(int i =0; i < verifieResults.size();i++) { VerifyResultImpl result = (VerifyResultImpl)verifieResults.get(i); - result.setSignatureData(PDFUtils.blackOutSignature(data, byteRange)); + result.setSignatureData(signedData); } return verifieResults; @@ -71,8 +66,4 @@ public class PAdESVerifier implements IVerifyFilter, PAdESConstants { return result; } - public void setConfiguration(Configuration config) { - // NOP - } - } diff --git a/signature-standards/sigs-pkcs7detached/build.gradle b/signature-standards/sigs-pkcs7detached/build.gradle index 3107252f..d60397a4 100644 --- a/signature-standards/sigs-pkcs7detached/build.gradle +++ b/signature-standards/sigs-pkcs7detached/build.gradle @@ -1,5 +1,7 @@ -apply plugin: 'java-library' -apply plugin: 'eclipse' +plugins { + id 'java-library' + id 'eclipse' +} jar { manifest { @@ -8,23 +10,24 @@ jar { } repositories { - mavenLocal() + mavenLocal() mavenCentral() } task releases(type: Copy) { - from jar.outputs - into rootDir.toString() + "/releases/" + version + from jar.outputs + into rootDir.toString() + "/releases/" + version } releases.dependsOn jar releases.dependsOn sourcesJar dependencies { - implementation project (':pdf-as-lib') - implementation project (':pdf-as-common') - implementation 'org.apache.commons:commons-collections4:4.5.0' - testImplementation group: 'junit', name: 'junit', version: '4.+' + implementation project(':pdf-as-lib') + implementation project(':pdf-as-common') + implementation group: 'org.apache.commons', name: 'commons-collections4', version: commonsCollectionsVersion + implementation group: 'org.slf4j', name: 'slf4j-api', version: slf4jVersion + testImplementation group: 'junit', name: 'junit', version: junitVersion } test { diff --git a/signature-standards/sigs-pkcs7detached/src/main/java/at/gv/egiz/pdfas/sigs/pkcs7detached/PKCS7DetachedSigner.java b/signature-standards/sigs-pkcs7detached/src/main/java/at/gv/egiz/pdfas/sigs/pkcs7detached/PKCS7DetachedSigner.java index 61d4a5ec..8e69a203 100644 --- a/signature-standards/sigs-pkcs7detached/src/main/java/at/gv/egiz/pdfas/sigs/pkcs7detached/PKCS7DetachedSigner.java +++ b/signature-standards/sigs-pkcs7detached/src/main/java/at/gv/egiz/pdfas/sigs/pkcs7detached/PKCS7DetachedSigner.java @@ -76,6 +76,11 @@ public class PKCS7DetachedSigner implements IPlainSigner, PKCS7DetachedConstants } } + public PKCS7DetachedSigner(PrivateKey key, X509Certificate cert) { + this.privKey = key; + this.cert = cert; + } + public X509Certificate getCertificate(SignParameter parameter) { return cert; } diff --git a/signature-standards/sigs-pkcs7detached/src/main/java/at/gv/egiz/pdfas/sigs/pkcs7detached/PKCS7DetachedVerifier.java b/signature-standards/sigs-pkcs7detached/src/main/java/at/gv/egiz/pdfas/sigs/pkcs7detached/PKCS7DetachedVerifier.java index be919046..76919c52 100644 --- a/signature-standards/sigs-pkcs7detached/src/main/java/at/gv/egiz/pdfas/sigs/pkcs7detached/PKCS7DetachedVerifier.java +++ b/signature-standards/sigs-pkcs7detached/src/main/java/at/gv/egiz/pdfas/sigs/pkcs7detached/PKCS7DetachedVerifier.java @@ -27,6 +27,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import at.gv.egiz.pdfas.lib.impl.verify.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -34,10 +35,6 @@ import at.gv.egiz.pdfas.common.exceptions.PdfAsException; import at.gv.egiz.pdfas.common.utils.PDFUtils; import at.gv.egiz.pdfas.lib.api.Configuration; import at.gv.egiz.pdfas.lib.api.verify.VerifyResult; -import at.gv.egiz.pdfas.lib.impl.verify.FilterEntry; -import at.gv.egiz.pdfas.lib.impl.verify.IVerifier; -import at.gv.egiz.pdfas.lib.impl.verify.IVerifyFilter; -import at.gv.egiz.pdfas.lib.impl.verify.VerifyResultImpl; public class PKCS7DetachedVerifier implements IVerifyFilter, PKCS7DetachedConstants { @@ -45,18 +42,16 @@ public class PKCS7DetachedVerifier implements IVerifyFilter, PKCS7DetachedConsta public PKCS7DetachedVerifier() { } - - public List<VerifyResult> verify(byte[] contentData, byte[] signatureContent, - Date verificationTime, int[] byteRange, IVerifier verifier) + + @Override + public List<VerifyResult> verify(SignatureInputData signedData, byte[] signature, + Date verificationTime, IVerifier verifier) throws PdfAsException { - byte[] data = contentData; - byte[] signature = signatureContent; - - List<VerifyResult> verifieResults = verifier.verify(signature, data, verificationTime); + List<VerifyResult> verifieResults = verifier.verify(signature, signedData, verificationTime); for(int i =0; i < verifieResults.size();i++) { VerifyResultImpl result = (VerifyResultImpl)verifieResults.get(i); - result.setSignatureData(PDFUtils.blackOutSignature(data, byteRange)); + result.setSignatureData(signedData); } return verifieResults; @@ -70,8 +65,4 @@ public class PKCS7DetachedVerifier implements IVerifyFilter, PKCS7DetachedConsta return result; } - public void setConfiguration(Configuration config) { - // not needed - } - } |
