From 77a0ae764fa7f957f27a34f8ef46cd31a9aaef78 Mon Sep 17 00:00:00 2001 From: starlet-dx <15929766099@163.com> Date: Tue, 27 Feb 2024 09:43:08 +0800 Subject: [PATCH] Upgrade to 7.6.1 for fix build error caused by jss update to 4.9.3 --- Add-abstract-method-for-class-JSSUtil.patch | 62 +++ ...Manager-and-JSSTrustManager-from-JSS.patch | 387 ------------------ tomcatjss-7.4.1.tar.gz | Bin 40340 -> 0 bytes tomcatjss-7.6.1.tar.gz | Bin 0 -> 28680 bytes tomcatjss.spec | 15 +- 5 files changed, 71 insertions(+), 393 deletions(-) create mode 100644 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 tomcatjss-7.6.1.tar.gz diff --git a/Add-abstract-method-for-class-JSSUtil.patch b/Add-abstract-method-for-class-JSSUtil.patch new file mode 100644 index 0000000..8568e98 --- /dev/null +++ b/Add-abstract-method-for-class-JSSUtil.patch @@ -0,0 +1,62 @@ +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 + +--- + tomcat-8.5/src/org/dogtagpki/tomcat/JSSUtil.java | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + +diff --git a/tomcat-8.5/src/org/dogtagpki/tomcat/JSSUtil.java b/tomcat-8.5/src/org/dogtagpki/tomcat/JSSUtil.java +index cad3163..2f6faa3 100644 +--- a/tomcat-8.5/src/org/dogtagpki/tomcat/JSSUtil.java ++++ b/tomcat-8.5/src/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.List; +@@ -30,6 +32,7 @@ import javax.net.ssl.KeyManagerFactory; + import javax.net.ssl.TrustManager; + import javax.net.ssl.TrustManagerFactory; + import javax.net.ssl.SSLEngine; ++import javax.net.ssl.SSLSessionContext; + + import org.apache.juli.logging.Log; + import org.apache.juli.logging.LogFactory; +@@ -101,13 +104,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; +@@ -133,4 +134,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.33.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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 literal 0 HcmV?d00001 diff --git a/tomcatjss.spec b/tomcatjss.spec index 5646632..a074af4 100644 --- a/tomcatjss.spec +++ b/tomcatjss.spec @@ -3,14 +3,14 @@ Summary: Apache Tomcat of JSS Connector URL: http://www.dogtagpki.org/wiki/TomcatJSS License: LGPLv2+ BuildArch: noarch -Version: 7.4.1 -Release: 5 +Version: 7.6.1 +Release: 1 Source: https://github.com/dogtagpki/tomcatjss/archive/v%{version}%{?_phase}/tomcatjss-%{version}%{?_phase}.tar.gz -Patch0: Use-JSSKeyManager-and-JSSTrustManager-from-JSS.patch +Patch0: Add-abstract-method-for-class-JSSUtil.patch BuildRequires: ant apache-commons-lang java-devel jpackage-utils >= 0:1.7.5-15 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 -Conflicts: pki-base < 10.6.5 +BuildRequires: slf4j-jdk14 jss >= 4.8.0 tomcat >= 1:9.0.7 +Requires: apache-commons-lang java-headless jpackage-utils >= 0:1.7.5-15 slf4j jss >= 4.8.0 tomcat >= 1:9.0.7 +Conflicts: pki-base < 10.10.0 %define _sharedstatedir /var/lib %description @@ -37,6 +37,9 @@ ant -f build.xml -Dversion=%{version} -Dsrc.dir=$app_server -Djnidir=%{_jnidir} %{_javadir}/* %changelog +* Tue Feb 27 2024 yaoxin - 7.6.1-1 +- Upgrade to 7.6.1 for fix build error caused by jss update to 4.9.3 + * Thu Dec 15 2022 xu_ping - 7.4.1-5 - Remove conflicts tomcat-native -- Gitee