From 3ad70fbf909f12d0a9f64c88558f38e62a39e251 Mon Sep 17 00:00:00 2001 From: wang--ge Date: Wed, 8 Jun 2022 09:15:23 +0800 Subject: [PATCH] upgrade to version 8.1.0 --- ...dd-abstract-method-for-class-JSSUtil.patch | 70 ++++ ...Manager-and-JSSTrustManager-from-JSS.patch | 387 ------------------ tomcatjss-7.4.1.tar.gz | Bin 40340 -> 0 bytes tomcatjss.spec | 46 ++- v8.1.0.tar.gz | Bin 0 -> 33012 bytes 5 files changed, 100 insertions(+), 403 deletions(-) create mode 100644 0001-add-abstract-method-for-class-JSSUtil.patch delete mode 100644 Use-JSSKeyManager-and-JSSTrustManager-from-JSS.patch delete mode 100644 tomcatjss-7.4.1.tar.gz create mode 100644 v8.1.0.tar.gz diff --git a/0001-add-abstract-method-for-class-JSSUtil.patch b/0001-add-abstract-method-for-class-JSSUtil.patch new file mode 100644 index 0000000..f726bc3 --- /dev/null +++ b/0001-add-abstract-method-for-class-JSSUtil.patch @@ -0,0 +1,70 @@ +From 2921cf92d8968fef21d3459523f0c469ac64089a Mon Sep 17 00:00:00 2001 +From: wang--ge +Date: Wed, 25 May 2022 16:47:46 +0800 +Subject: [PATCH] add abstract method for class JSSUtil + +--- + .../main/java/org/dogtagpki/tomcat/JSSUtil.java | 16 ++++++++++++++-- + 1 file changed, 14 insertions(+), 2 deletions(-) + +diff --git a/tomcat-9.0/src/main/java/org/dogtagpki/tomcat/JSSUtil.java b/tomcat-9.0/src/main/java/org/dogtagpki/tomcat/JSSUtil.java +index 8370370..9c3326d 100644 +--- a/tomcat-9.0/src/main/java/org/dogtagpki/tomcat/JSSUtil.java ++++ b/tomcat-9.0/src/main/java/org/dogtagpki/tomcat/JSSUtil.java +@@ -19,6 +19,8 @@ + + package org.dogtagpki.tomcat; + ++import java.security.NoSuchAlgorithmException; ++ + import java.util.Arrays; + import java.util.Collections; + import java.util.HashSet; +@@ -28,6 +30,7 @@ import java.util.Set; + import javax.net.ssl.KeyManager; + import javax.net.ssl.KeyManagerFactory; + import javax.net.ssl.SSLEngine; ++import javax.net.ssl.SSLSessionContext; + import javax.net.ssl.TrustManager; + import javax.net.ssl.TrustManagerFactory; + +@@ -48,6 +51,7 @@ public class JSSUtil extends SSLUtilBase { + private Set protocols; + private Set ciphers; + ++ + public JSSUtil(SSLHostConfigCertificate cert) { + super(cert); + +@@ -95,13 +99,11 @@ public class JSSUtil extends SSLUtilBase { + return new TrustManager[] { new JSSNativeTrustManager() }; + } + +- @Override + public SSLContext createSSLContextInternal(List negotiableProtocols) throws Exception { + logger.debug("JSSUtil createSSLContextInternal(...) keyAlias=" + keyAlias); + return new JSSContext(keyAlias); + } + +- @Override + public boolean isTls13RenegAuthAvailable() { + logger.debug("JSSUtil: isTls13RenegAuthAvailable()"); + return true; +@@ -127,4 +129,14 @@ public class JSSUtil extends SSLUtilBase { + + return ciphers; + } ++ ++ @Override ++ public void configureSessionContext(SSLSessionContext sslSessionContext) { ++ logger.debug("JSSUtil: configureSessionContext"); ++ } ++ ++ @Override ++ public SSLContext createSSLContext(List negotiableProtocols) throws NoSuchAlgorithmException { ++ return new JSSContext(keyAlias); ++ } + } +-- +2.27.0 + diff --git a/Use-JSSKeyManager-and-JSSTrustManager-from-JSS.patch b/Use-JSSKeyManager-and-JSSTrustManager-from-JSS.patch deleted file mode 100644 index 34bc306..0000000 --- a/Use-JSSKeyManager-and-JSSTrustManager-from-JSS.patch +++ /dev/null @@ -1,387 +0,0 @@ -From fb11bcd42aed364f77cd1b07a0d3139496817dea Mon Sep 17 00:00:00 2001 -From: Alexander Scheel -Date: Fri, 31 May 2019 15:20:46 -0400 -Subject: [PATCH] Use JSSKeyManager and JSSTrustManager from JSS - -With jss-pr#159 merged, we've added a KeyManager and TrustManager to the -JSS default provider that we should use instead of the instances -in-tree. - -Signed-off-by: Alexander Scheel ---- - src/org/dogtagpki/tomcat/JSSKeyManager.java | 146 ------------- - src/org/dogtagpki/tomcat/JSSTrustManager.java | 197 ------------------ - .../src/org/dogtagpki/tomcat/JSSUtil.java | 3 + - 3 files changed, 3 insertions(+), 343 deletions(-) - delete mode 100644 src/org/dogtagpki/tomcat/JSSKeyManager.java - delete mode 100644 src/org/dogtagpki/tomcat/JSSTrustManager.java - -diff --git a/src/org/dogtagpki/tomcat/JSSKeyManager.java b/src/org/dogtagpki/tomcat/JSSKeyManager.java -deleted file mode 100644 -index 1f94260..0000000 ---- a/src/org/dogtagpki/tomcat/JSSKeyManager.java -+++ /dev/null -@@ -1,146 +0,0 @@ --/* BEGIN COPYRIGHT BLOCK -- * This library is free software; you can redistribute it and/or -- * modify it under the terms of the GNU Lesser General Public -- * License as published by the Free Software Foundation; either -- * version 2.1 of the License, or (at your option) any later version. -- * -- * This library is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- * Lesser General Public License for more details. -- * -- * You should have received a copy of the GNU Lesser General Public -- * License along with this library; if not, write to the Free Software -- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -- * -- * Copyright (C) 2017 Red Hat, Inc. -- * All rights reserved. -- * END COPYRIGHT BLOCK */ -- --package org.dogtagpki.tomcat; -- --import java.net.Socket; --import java.security.Principal; --import java.security.PrivateKey; --import java.security.cert.X509Certificate; --import java.util.ArrayList; --import java.util.Collection; -- --import javax.net.ssl.X509KeyManager; -- --import org.mozilla.jss.CryptoManager; --import org.mozilla.jss.crypto.ObjectNotFoundException; --import org.slf4j.Logger; --import org.slf4j.LoggerFactory; -- --import sun.security.x509.X509CertImpl; -- --public class JSSKeyManager implements X509KeyManager { -- -- final static Logger logger = LoggerFactory.getLogger(JSSKeyManager.class); -- -- @Override -- public String chooseClientAlias(String[] keyTypes, Principal[] issuers, Socket socket) { -- logger.debug("JSSKeyManager: chooseClientAlias()"); -- -- logger.debug("JSSKeyManager: key types:"); -- for (String keyType : keyTypes) { -- logger.debug("JSSKeyManager: - " + keyType); -- } -- -- logger.debug("JSSKeyManager: issuers:"); -- for (Principal issuer : issuers) { -- logger.debug("JSSKeyManager: - " + issuer.getName()); -- } -- -- return null; // not implemented -- } -- -- @Override -- public String chooseServerAlias(String keyType, Principal[] issuers, Socket socket) { -- logger.debug("JSSKeyManager: chooseServerAlias()"); -- logger.debug("JSSKeyManager: key type: " + keyType); -- -- logger.debug("JSSKeyManager: issuers:"); -- for (Principal issuer : issuers) { -- logger.debug("JSSKeyManager: - " + issuer.getName()); -- } -- -- return null; // not implemented -- } -- -- @Override -- public X509Certificate[] getCertificateChain(String alias) { -- -- logger.debug("JSSKeyManager: getCertificateChain(" + alias + ")"); -- -- try { -- CryptoManager cm = CryptoManager.getInstance(); -- org.mozilla.jss.crypto.X509Certificate cert = cm.findCertByNickname(alias); -- -- org.mozilla.jss.crypto.X509Certificate[] chain = cm.buildCertificateChain(cert); -- logger.debug("JSSKeyManager: cert chain:"); -- -- Collection list = new ArrayList<>(); -- for (org.mozilla.jss.crypto.X509Certificate c : chain) { -- logger.debug("JSSKeyManager: - " + c.getSubjectDN()); -- list.add(new X509CertImpl(c.getEncoded())); -- } -- -- return list.toArray(new X509Certificate[list.size()]); -- -- } catch (Throwable e) { -- logger.error(e.getMessage(), e); -- throw new RuntimeException(e); -- } -- } -- -- @Override -- public String[] getClientAliases(String keyType, Principal[] issuers) { -- logger.debug("JSSKeyManager: getClientAliases()"); -- logger.debug("JSSKeyManager: key type: " + keyType); -- -- logger.debug("JSSKeyManager: issuers:"); -- for (Principal issuer : issuers) { -- logger.debug("JSSKeyManager: - " + issuer.getName()); -- } -- -- return null; // not implemented -- } -- -- @Override -- public PrivateKey getPrivateKey(String alias) { -- -- logger.debug("JSSKeyManager: getPrivateKey(" + alias + ")"); -- -- try { -- CryptoManager cm = CryptoManager.getInstance(); -- org.mozilla.jss.crypto.X509Certificate cert = cm.findCertByNickname(alias); -- PrivateKey privateKey = cm.findPrivKeyByCert(cert); -- -- logger.debug("JSSKeyManager: key found: " + alias); -- return privateKey; -- -- } catch (ObjectNotFoundException e) { -- logger.debug("JSSKeyManager: key not found: " + alias); -- return null; -- -- } catch (Throwable e) { -- logger.error(e.getMessage(), e); -- throw new RuntimeException(e); -- } -- } -- -- @Override -- public String[] getServerAliases(String keyType, Principal[] issuers) { -- logger.debug("JSSKeyManager: getServerAliases()"); -- logger.debug("JSSKeyManager: key type: " + keyType); -- -- logger.debug("JSSKeyManager: issuers:"); -- for (Principal issuer : issuers) { -- logger.debug("JSSKeyManager: - " + issuer.getName()); -- } -- -- return null; // not implemented -- } --} -diff --git a/src/org/dogtagpki/tomcat/JSSTrustManager.java b/src/org/dogtagpki/tomcat/JSSTrustManager.java -deleted file mode 100644 -index 87c7bdd..0000000 ---- a/src/org/dogtagpki/tomcat/JSSTrustManager.java -+++ /dev/null -@@ -1,197 +0,0 @@ --/* BEGIN COPYRIGHT BLOCK -- * This library is free software; you can redistribute it and/or -- * modify it under the terms of the GNU Lesser General Public -- * License as published by the Free Software Foundation; either -- * version 2.1 of the License, or (at your option) any later version. -- * -- * This library is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- * Lesser General Public License for more details. -- * -- * You should have received a copy of the GNU Lesser General Public -- * License along with this library; if not, write to the Free Software -- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -- * -- * Copyright (C) 2017 Red Hat, Inc. -- * All rights reserved. -- * END COPYRIGHT BLOCK */ -- --package org.dogtagpki.tomcat; -- --import java.security.cert.CertificateException; --import java.security.cert.X509Certificate; --import java.util.ArrayList; --import java.util.Arrays; --import java.util.Collection; --import java.util.List; -- --import javax.net.ssl.X509TrustManager; -- --import org.mozilla.jss.CryptoManager; --import org.mozilla.jss.NotInitializedException; --import org.mozilla.jss.netscape.security.util.Cert; --import org.slf4j.Logger; --import org.slf4j.LoggerFactory; -- --import sun.security.x509.X509CertImpl; -- --public class JSSTrustManager implements X509TrustManager { -- -- final static Logger logger = LoggerFactory.getLogger(JSSTrustManager.class); -- -- final static String SERVER_AUTH_OID = "1.3.6.1.5.5.7.3.1"; -- final static String CLIENT_AUTH_OID = "1.3.6.1.5.5.7.3.2"; -- -- public void checkCertChain(X509Certificate[] certChain, String keyUsage) throws Exception { -- -- logger.debug("JSSTrustManager: checkCertChain(" + keyUsage + ")"); -- -- // sort cert chain from root to leaf -- certChain = Cert.sortCertificateChain(certChain); -- -- for (X509Certificate cert : certChain) { -- logger.debug("JSSTrustManager: - " + cert.getSubjectDN()); -- } -- -- // get CA certs -- X509Certificate[] caCerts = getAcceptedIssuers(); -- -- // validating cert chain from root to leaf -- for (int i = 0; i < certChain.length; i++) { -- -- X509Certificate cert = certChain[i]; -- -- // validating key usage on leaf cert only -- String usage; -- if (i == certChain.length - 1) { -- usage = keyUsage; -- } else { -- usage = null; -- } -- -- checkCert(cert, caCerts, usage); -- -- // use the current cert as the CA cert for the next cert in the chain -- caCerts = new X509Certificate[] { cert }; -- } -- } -- -- public void checkCert(X509Certificate cert, X509Certificate[] caCerts, String keyUsage) throws Exception { -- -- logger.debug("JSSTrustManager: checkCert(" + cert.getSubjectDN() + "):"); -- -- boolean[] aki = cert.getIssuerUniqueID(); -- logger.debug("JSSTrustManager: cert AKI: " + Arrays.toString(aki)); -- -- X509Certificate issuer = null; -- for (X509Certificate caCert : caCerts) { -- -- boolean[] ski = caCert.getSubjectUniqueID(); -- logger.debug("JSSTrustManager: SKI of " + caCert.getSubjectDN() + ": " + Arrays.toString(ski)); -- -- try { -- cert.verify(caCert.getPublicKey(), "Mozilla-JSS"); -- issuer = caCert; -- break; -- } catch (Exception e) { -- logger.debug("JSSTrustManager: invalid certificate: " + e); -- } -- } -- -- if (issuer == null) { -- throw new CertificateException("Unable to validate signature: " + cert.getSubjectDN()); -- } -- -- logger.debug("JSSTrustManager: cert signed by " + issuer.getSubjectDN()); -- -- logger.debug("JSSTrustManager: checking validity range:"); -- logger.debug("JSSTrustManager: - not before: " + cert.getNotBefore()); -- logger.debug("JSSTrustManager: - not after: " + cert.getNotAfter()); -- cert.checkValidity(); -- -- if (keyUsage != null) { -- -- List extendedKeyUsages = cert.getExtendedKeyUsage(); -- logger.debug("JSSTrustManager: checking extended key usages:"); -- -- for (String extKeyUsage : extendedKeyUsages) { -- logger.debug("JSSTrustManager: - " + extKeyUsage); -- } -- -- if (extendedKeyUsages.contains(keyUsage)) { -- logger.debug("JSSTrustManager: extended key usage found: " + keyUsage); -- } else { -- throw new CertificateException("Missing extended key usage: " + keyUsage); -- } -- } -- } -- -- @Override -- public void checkClientTrusted(X509Certificate[] certChain, String authType) throws CertificateException { -- -- logger.debug("JSSTrustManager: checkClientTrusted(" + authType + "):"); -- -- try { -- checkCertChain(certChain, CLIENT_AUTH_OID); -- logger.debug("JSSTrustManager: SSL client certificate is valid"); -- -- } catch (CertificateException e) { -- logger.warn("JSSTrustManager: Invalid SSL client certificate: " + e); -- throw e; -- -- } catch (Exception e) { -- logger.warn("JSSTrustManager: Unable to validate certificate: " + e); -- throw new CertificateException(e); -- } -- } -- -- @Override -- public void checkServerTrusted(X509Certificate[] certChain, String authType) throws CertificateException { -- -- logger.debug("JSSTrustManager: checkServerTrusted(" + certChain.length + ", " + authType + "):"); -- -- try { -- checkCertChain(certChain, SERVER_AUTH_OID); -- logger.debug("JSSTrustManager: SSL server certificate is valid"); -- -- } catch (CertificateException e) { -- logger.warn("JSSTrustManager: Invalid SSL server certificate: " + e); -- throw e; -- -- } catch (Exception e) { -- logger.warn("JSSTrustManager: Unable to validate SSL server certificate: " + e); -- throw new CertificateException(e); -- } -- } -- -- @Override -- public X509Certificate[] getAcceptedIssuers() { -- -- logger.debug("JSSTrustManager: getAcceptedIssuers():"); -- -- Collection caCerts = new ArrayList<>(); -- -- try { -- CryptoManager manager = CryptoManager.getInstance(); -- for (org.mozilla.jss.crypto.X509Certificate cert : manager.getCACerts()) { -- logger.debug("JSSTrustManager: - " + cert.getSubjectDN()); -- -- try { -- X509CertImpl caCert = new X509CertImpl(cert.getEncoded()); -- caCert.checkValidity(); -- caCerts.add(caCert); -- -- } catch (Exception e) { -- logger.debug("JSSTrustManager: invalid CA certificate: " + e); -- } -- } -- -- } catch (NotInitializedException e) { -- logger.error("JSSTrustManager: Unable to get CryptoManager: " + e, e); -- throw new RuntimeException(e); -- } -- -- return caCerts.toArray(new X509Certificate[caCerts.size()]); -- } --} -diff --git a/tomcat-8.5/src/org/dogtagpki/tomcat/JSSUtil.java b/tomcat-8.5/src/org/dogtagpki/tomcat/JSSUtil.java -index 22c607d..a2e3cd5 100644 ---- a/tomcat-8.5/src/org/dogtagpki/tomcat/JSSUtil.java -+++ b/tomcat-8.5/src/org/dogtagpki/tomcat/JSSUtil.java -@@ -28,6 +28,9 @@ - import org.slf4j.Logger; - import org.slf4j.LoggerFactory; - -+import org.mozilla.jss.provider.javax.crypto.JSSKeyManager; -+import org.mozilla.jss.provider.javax.crypto.JSSTrustManager; -+ - public class JSSUtil extends JSSEUtil { - - public static Logger logger = LoggerFactory.getLogger(JSSUtil.class); diff --git a/tomcatjss-7.4.1.tar.gz b/tomcatjss-7.4.1.tar.gz deleted file mode 100644 index 68d8cc537575e358c0eae2a420070dd6987da599..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40340 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 0:1.7.5-15 slf4j +Version: 8.1.0 +Release: 1 +Source: https://github.com/dogtagpki/tomcatjss/archive/refs/tags/v8.1.0.tar.gz +BuildRequires: ant apache-commons-lang3 java-latest-openjdk-devel slf4j BuildRequires: slf4j-jdk14 jss >= 4.6.0 tomcat >= 1:9.0.7 -Requires: apache-commons-lang java-headless jpackage-utils >= 0:1.7.5-15 slf4j jss >= 4.6.0 tomcat >= 1:9.0.7 +Requires: apache-commons-lang3 java-latest-openjdk-headless jpackage-utils >= 0:1.7.5-15 slf4j slf4j-jdk14 jss >= 4.6.0 tomcat >= 1:9.0.7 Conflicts: pki-base < 10.6.5 %define _sharedstatedir /var/lib +Patch0: 0001-add-abstract-method-for-class-JSSUtil.patch + %description Apache Tomcat of JSS Connector. %prep %autosetup -n tomcatjss-%{version} -p 1 -%install -tomcat_version=`/usr/sbin/tomcat version | sed -n 's/Server number: *\([0-9]\+\.[0-9]\+\).*/\1/p'` - -if [ $tomcat_version == "9.0" ]; then - app_server=tomcat-8.5 -else - app_server=tomcat-$tomcat_version -fi +%build +home_path=`ls /usr/lib/jvm | grep java-18-openjdk-18` +export JAVA_HOME=/usr/lib/jvm/${home_path} +./build.sh \ + %{?_verbose:-v} \ + --work-dir=%{_vpath_builddir} \ + --version=%{version} \ + --jni-dir=%{_jnidir} \ + dist -ant -f build.xml -Dversion=%{version} -Dsrc.dir=$app_server -Djnidir=%{_jnidir} -Dinstall.doc.dir=%{buildroot}%{_docdir}/%{name} \ - -Dinstall.jar.dir=%{buildroot}%{_javadir} install +%install +home_path=`ls /usr/lib/jvm | grep java-18-openjdk-18` +export JAVA_HOME=/usr/lib/jvm/${home_path} +./build.sh \ + %{?_verbose:-v} \ + --work-dir=%{_vpath_builddir} \ + --version=%{version} \ + --java-dir=%{_javadir} \ + --doc-dir=%{_docdir} \ + --install-dir=%{buildroot} \ + install %files %defattr(-,root,root) @@ -37,6 +48,9 @@ ant -f build.xml -Dversion=%{version} -Dsrc.dir=$app_server -Djnidir=%{_jnidir} %{_javadir}/* %changelog +* Wed Jun 08 2022 Ge Wang - 8.1.0-1 +- Upgrade to version 8.1.0 + * Tue Dec 07 2021 wangkai - 7.4.1-5 - Remove conflicts tomcat-native diff --git a/v8.1.0.tar.gz b/v8.1.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..a8d7682cd8ad776b1dd757a962ef7f9f3d4b71d6 GIT binary patch literal 33012 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 literal 0 HcmV?d00001 -- Gitee