todvora / eet-client

Client and library for #EET communication - http://www.etrzby.cz/ , written in Java
MIT License
48 stars 26 forks source link

Podpora Java 10 #39

Closed Dacesilian closed 6 years ago

Dacesilian commented 6 years ago

Dobrý den, plánujete prosím kód přizpůsobit pro Javu 10?

Aktuálně knihovna pod Javou 10 nefunguje, je třeba přidat některé moduly (což je lepší udělat přidáním Maven závislostí), pak se ale změnily některé metody (např. wss4j Merlin verifyTrust se změnila na protected a ta public vyžaduje navíc Collection<Pattern> issuerCertConstraints).

Děkuji.

Dacesilian commented 6 years ago

Verze závislostí je vhodné upravit takto:

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compile.source>10</maven.compile.source>
        <maven.compile.target>10</maven.compile.target>

        <cxf.version>3.2.5</cxf.version>
        <junit.version>4.12</junit.version>
        <slf4j.version>1.7.24</slf4j.version>
        <log4j.version>2.11.1</log4j.version>
        <maven-failsafe.version>2.19.1</maven-failsafe.version>
        <jacoco.version>0.7.7.201606060606</jacoco.version>
        <maven-source-plugin.version>3.0.1</maven-source-plugin.version>
        <maven-javadoc-plugin.version>2.10.4</maven-javadoc-plugin.version>
        <jaxb.version>2.3.0.1</jaxb.version>
    </properties>

a přidat závislosti:

<dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>${jaxb.version}</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-core</artifactId>
            <version>${jaxb.version}</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.ws</groupId>
            <artifactId>jaxws-api</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.ws</groupId>
            <artifactId>jaxws-rt</artifactId>
            <version>2.3.0.2</version>
        </dependency>
        <dependency>
            <groupId>com.sun.activation</groupId>
            <artifactId>javax.activation</artifactId>
            <version>1.2.0</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.messaging.saaj</groupId>
            <artifactId>saaj-impl</artifactId>
            <version>1.4.0</version>
        </dependency>
<dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
            <version>1.3.2</version>
        </dependency>

V testu MerlinWithCRLDistributionPointsExtensionTest je možné volat crypto.verifyTrust(certsPlayground, enableRevocation, subjectCertConstraints, null);, protože matchesName ve třídě CryptoBase vrací při null true. Původní protected verifyTrust je volán tak jako tak, tedy by mělo být vše v pořádku.

Nyní testy projdou, nicméně v konzoli hází chyby - connect timed out (to nevím, zda je dobře) a nedůvěryhodný certifikát (CertPathValidatorException: Path does not chain with any of the trust anchors) (to je minimálně v testu testInvalidResponseSignature správně).

Pro zkompilování Mavenem je potřeba zvýšit verze pluginů, alespoň cxf-codegen-plugin na 3.2.6.

Playground vrací chybu <eet:Chyba kod="4" test="true">Neplatny podpis SOAP zpravy</eet:Chyba>, ale produkce snad funguje.

todvora commented 6 years ago

Super nápad, díky. Bylo by prosím možné změny dodat jako pull request?

Dacesilian commented 6 years ago

Ano, https://github.com/todvora/eet-client/pull/40