Compare commits

..

No commits in common. "rawhide" and "f20" have entirely different histories.

5 changed files with 414 additions and 244 deletions

View file

@ -1,2 +1 @@
SHA512 (voms-api-java-3.3.7.tar.gz) = b623480b972742625e0c7cd95bfefee36a580f743240434d5591a9f35a19977a4d7d3abc90b598666e86f8e6d3a40a6c6ca66e19309a1ea8d2be979af57aaa58
SHA512 (helper-scripts-master.tar.gz) = 8704b5bdbee360c0db70e6ece2781a385c62c802c9000754f62efbd23bd22542ace77f68b8064661201f441b40234475a005d9f67b50f0aea435636a0a851225
3753669f345146bfc7060612fa4d5a3d v3.0.5.tar.gz

336
voms-api-java-bc147.patch Normal file
View file

@ -0,0 +1,336 @@
diff -ur voms-api-java-3.0.5.orig/src/main/java/org/italiangrid/voms/ac/impl/DefaultVOMSValidationStrategy.java voms-api-java-3.0.5/src/main/java/org/italiangrid/voms/ac/impl/DefaultVOMSValidationStrategy.java
--- voms-api-java-3.0.5.orig/src/main/java/org/italiangrid/voms/ac/impl/DefaultVOMSValidationStrategy.java 2014-12-09 10:55:31.000000000 +0100
+++ voms-api-java-3.0.5/src/main/java/org/italiangrid/voms/ac/impl/DefaultVOMSValidationStrategy.java 2014-12-17 09:19:10.674934059 +0100
@@ -39,7 +39,7 @@
import javax.security.auth.x500.X500Principal;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
-import org.bouncycastle.asn1.x509.X509Extension;
+import org.bouncycastle.asn1.x509.Extension;
import org.bouncycastle.cert.X509CertificateHolder;
import org.bouncycastle.cert.jcajce.JcaX509CertificateHolder;
import org.bouncycastle.operator.ContentVerifierProvider;
@@ -239,8 +239,8 @@
private boolean checkNoRevAvailExtension(VOMSAttribute attributes,
List<VOMSValidationErrorMessage> validationErrors) {
- X509Extension noRevAvail = attributes.getVOMSAC().getExtension(
- X509Extension.noRevAvail);
+ Extension noRevAvail = attributes.getVOMSAC().getExtension(
+ Extension.noRevAvail);
if (noRevAvail != null && noRevAvail.isCritical()) {
validationErrors.add(newErrorMessage(other,
"NoRevAvail AC extension cannot be critical!"));
@@ -252,8 +252,8 @@
private boolean checkAuthorityKeyIdentifierExtension(
VOMSAttribute attributes, List<VOMSValidationErrorMessage> validationErrors) {
- X509Extension authKeyId = attributes.getVOMSAC().getExtension(
- X509Extension.authorityKeyIdentifier);
+ Extension authKeyId = attributes.getVOMSAC().getExtension(
+ Extension.authorityKeyIdentifier);
if (authKeyId != null && authKeyId.isCritical()) {
validationErrors.add(newErrorMessage(other,
"AuthorityKeyIdentifier AC extension cannot be critical!"));
diff -ur voms-api-java-3.0.5.orig/src/main/java/org/italiangrid/voms/asn1/VOMSACGenerator.java voms-api-java-3.0.5/src/main/java/org/italiangrid/voms/asn1/VOMSACGenerator.java
--- voms-api-java-3.0.5.orig/src/main/java/org/italiangrid/voms/asn1/VOMSACGenerator.java 2014-12-09 10:55:31.000000000 +0100
+++ voms-api-java-3.0.5/src/main/java/org/italiangrid/voms/asn1/VOMSACGenerator.java 2014-12-17 09:45:43.404176616 +0100
@@ -30,20 +30,21 @@
import org.bouncycastle.asn1.ASN1Encodable;
import org.bouncycastle.asn1.ASN1EncodableVector;
import org.bouncycastle.asn1.ASN1InputStream;
+import org.bouncycastle.asn1.ASN1Object;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
-import org.bouncycastle.asn1.DEREncodable;
+import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.DERNull;
-import org.bouncycastle.asn1.DERObject;
import org.bouncycastle.asn1.DEROctetString;
import org.bouncycastle.asn1.DERSequence;
import org.bouncycastle.asn1.DERTaggedObject;
import org.bouncycastle.asn1.x509.AlgorithmIdentifier;
import org.bouncycastle.asn1.x509.AuthorityKeyIdentifier;
+import org.bouncycastle.asn1.x509.Extension;
import org.bouncycastle.asn1.x509.GeneralName;
import org.bouncycastle.asn1.x509.GeneralNames;
-import org.bouncycastle.asn1.x509.X509Extension;
import org.bouncycastle.cert.AttributeCertificateHolder;
import org.bouncycastle.cert.AttributeCertificateIssuer;
+import org.bouncycastle.cert.CertIOException;
import org.bouncycastle.cert.X509AttributeCertificateHolder;
import org.bouncycastle.cert.X509v2AttributeCertificateBuilder;
import org.bouncycastle.cert.jcajce.JcaX509CertificateHolder;
@@ -156,7 +157,7 @@
return String.format("%s://%s:%d", voName, host, port);
}
- private ASN1Encodable buildACCertsExtensionContent(
+ private ASN1Object buildACCertsExtensionContent(
EnumSet<ACGenerationProperties> properties) {
ASN1EncodableVector issuerCertsContainer = new ASN1EncodableVector();
@@ -166,7 +167,7 @@
issuerCertsContainer.add(new DERSequence());
else
issuerCertsContainer.add(new DERSequence(
- getCertAsDEREncodable(aaCredential.getCertificate())));
+ getCertAsASN1Encodable(aaCredential.getCertificate())));
return new DERSequence(issuerCertsContainer);
}
@@ -174,7 +175,7 @@
private AuthorityKeyIdentifier buildAuthorityKeyIdentifier() {
byte[] authKeyId = aaCredential.getCertificate().getExtensionValue(
- X509Extension.authorityKeyIdentifier.toString());
+ Extension.authorityKeyIdentifier.toString());
if (authKeyId != null) {
return new AuthorityKeyIdentifier(authKeyId);
@@ -183,7 +184,7 @@
return null;
}
- private ASN1Encodable buildFQANsAttributeContent(List<String> fqans,
+ private ASN1Object buildFQANsAttributeContent(List<String> fqans,
GeneralName policyAuthorityInfo) {
ASN1EncodableVector container = new ASN1EncodableVector();
@@ -201,7 +202,7 @@
return new DERSequence(container);
}
- private ASN1Encodable buildGAExtensionContent(
+ private ASN1Object buildGAExtensionContent(
EnumSet<ACGenerationProperties> properties, List<VOMSGenericAttribute> gas,
GeneralName policyAuthorityInfo) {
@@ -262,7 +263,7 @@
}
- private ASN1Encodable buildTargetsExtensionContent(
+ private ASN1Object buildTargetsExtensionContent(
EnumSet<ACGenerationProperties> properties, List<String> targets) {
ASN1EncodableVector targetSeq = new ASN1EncodableVector();
@@ -315,6 +316,8 @@
GeneralName policyAuthorityInfo = buildPolicyAuthorityInfo(voName, host,
port);
+ try {
+
builder.addAttribute(VOMS_FQANS_OID,
buildFQANsAttributeContent(fqans, policyAuthorityInfo));
@@ -327,7 +330,7 @@
policyAuthorityInfo));
if (targets != null && !targets.isEmpty())
- builder.addExtension(X509Extension.targetInformation, true,
+ builder.addExtension(Extension.targetInformation, true,
buildTargetsExtensionContent(generationProperties, targets));
if (!generationProperties
@@ -350,13 +353,17 @@
.contains(ACGenerationProperties.INCLUDE_CRITICAL_AKID_EXTENSION))
akidIsCritical = true;
- builder.addExtension(X509Extension.noRevAvail, noRevAvailIsCritical,
- new DERNull());
+ builder.addExtension(Extension.noRevAvail, noRevAvailIsCritical,
+ DERNull.INSTANCE);
AuthorityKeyIdentifier akid = buildAuthorityKeyIdentifier();
- builder.addExtension(X509Extension.authorityKeyIdentifier, akidIsCritical,
- akid != null ? akid : new DERNull());
+ builder.addExtension(Extension.authorityKeyIdentifier, akidIsCritical,
+ akid != null ? akid : DERNull.INSTANCE);
+
+ } catch (CertIOException e) {
+ throw new VOMSError(e.getMessage(), e);
+ }
return builder.build(getSigner(generationProperties));
@@ -373,19 +380,19 @@
DERSequence acSeq = new DERSequence(vomsACs);
CertificateExtension ext = new CertificateExtension(
- VOMS_EXTENSION_OID.getId(), acSeq.toASN1Object(), false);
+ VOMS_EXTENSION_OID.getId(), acSeq.toASN1Primitive(), false);
return ext;
}
- private DEREncodable getCertAsDEREncodable(X509Certificate cert) {
+ private ASN1Encodable getCertAsASN1Encodable(X509Certificate cert) {
try {
byte[] certBytes = cert.getEncoded();
ByteArrayInputStream bais = new ByteArrayInputStream(certBytes);
ASN1InputStream is = new ASN1InputStream(bais);
- DERObject derCert = is.readObject();
+ ASN1Primitive derCert = is.readObject();
is.close();
return derCert;
diff -ur voms-api-java-3.0.5.orig/src/main/java/org/italiangrid/voms/asn1/VOMSACUtils.java voms-api-java-3.0.5/src/main/java/org/italiangrid/voms/asn1/VOMSACUtils.java
--- voms-api-java-3.0.5.orig/src/main/java/org/italiangrid/voms/asn1/VOMSACUtils.java 2014-12-09 10:55:31.000000000 +0100
+++ voms-api-java-3.0.5/src/main/java/org/italiangrid/voms/asn1/VOMSACUtils.java 2014-12-17 09:51:02.983413156 +0100
@@ -31,21 +31,21 @@
import org.bouncycastle.asn1.ASN1InputStream;
import org.bouncycastle.asn1.ASN1OctetString;
+import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.ASN1TaggedObject;
import org.bouncycastle.asn1.DERIA5String;
-import org.bouncycastle.asn1.DERObject;
import org.bouncycastle.asn1.DEROctetString;
-import org.bouncycastle.asn1.DERSequence;
+import org.bouncycastle.asn1.DLSequence;
import org.bouncycastle.asn1.x509.Attribute;
import org.bouncycastle.asn1.x509.AttributeCertificate;
+import org.bouncycastle.asn1.x509.Certificate;
+import org.bouncycastle.asn1.x509.Extension;
import org.bouncycastle.asn1.x509.GeneralName;
import org.bouncycastle.asn1.x509.IetfAttrSyntax;
import org.bouncycastle.asn1.x509.Target;
import org.bouncycastle.asn1.x509.TargetInformation;
import org.bouncycastle.asn1.x509.Targets;
-import org.bouncycastle.asn1.x509.X509CertificateStructure;
-import org.bouncycastle.asn1.x509.X509Extension;
import org.bouncycastle.cert.X509AttributeCertificateHolder;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.jce.provider.X509CertificateObject;
@@ -124,7 +124,7 @@
while (theACs.hasMoreElements()) {
- AttributeCertificate parsedAC = new AttributeCertificate(
+ AttributeCertificate parsedAC = AttributeCertificate.getInstance(
theACs.nextElement());
acs.add(parsedAC);
}
@@ -178,8 +178,8 @@
List<String> targets = new ArrayList<String>();
- X509Extension targetExtension = ac
- .getExtension(X509Extension.targetInformation);
+ Extension targetExtension = ac
+ .getExtension(Extension.targetInformation);
if (targetExtension == null)
return targets;
@@ -193,7 +193,7 @@
// The deserialization has to be done by hand since it seems VOMS
// does not correctly encode the ACTargets extension...
ASN1Sequence targetSequence = (ASN1Sequence) asn1TargetContainer
- .getDERObject();
+ .toASN1Primitive();
Target[] asn1Targets = new Target[targetSequence.size()];
int count = 0;
@@ -291,8 +291,8 @@
Attribute[] asn1Attrs = acHolder.getAttributes(VOMS_FQANS_OID);
for (Attribute a : asn1Attrs) {
- DERObject theVOMSDerObject = a.getAttributeValues()[0].getDERObject();
- IetfAttrSyntax attrSyntax = new IetfAttrSyntax(
+ ASN1Primitive theVOMSDerObject = a.getAttributeValues()[0].toASN1Primitive();
+ IetfAttrSyntax attrSyntax = IetfAttrSyntax.getInstance(
ASN1Sequence.getInstance(theVOMSDerObject));
String policyAuthority = policyAuthoritySanityChecks(attrSyntax);
@@ -350,7 +350,7 @@
List<VOMSGenericAttribute> gas = new ArrayList<VOMSGenericAttribute>();
- X509Extension gasExtension = ac.getExtension(VOMS_GENERIC_ATTRS_OID);
+ Extension gasExtension = ac.getExtension(VOMS_GENERIC_ATTRS_OID);
if (gasExtension == null)
return gas;
@@ -416,7 +416,7 @@
List<X509Certificate> certs = new ArrayList<X509Certificate>();
- X509Extension e = ac.getExtension(VOMS_CERTS_OID);
+ Extension e = ac.getExtension(VOMS_CERTS_OID);
if (e == null)
return null;
@@ -429,7 +429,7 @@
certSeq = (ASN1Sequence) certSeq.getObjectAt(0);
@SuppressWarnings("unchecked")
- Enumeration<DERSequence> encodedCerts = certSeq.getObjects();
+ Enumeration<DLSequence> encodedCerts = certSeq.getObjects();
CertificateFactory cf = null;
@@ -443,7 +443,7 @@
while (encodedCerts.hasMoreElements()) {
- DERSequence s = encodedCerts.nextElement();
+ DLSequence s = encodedCerts.nextElement();
X509CertificateObject certObj = null;
byte[] certData = null;
X509Certificate theCert = null;
@@ -451,7 +451,7 @@
try {
certObj = new X509CertificateObject(
- X509CertificateStructure.getInstance(ASN1Sequence.getInstance(s)));
+ Certificate.getInstance(ASN1Sequence.getInstance(s)));
certData = certObj.getEncoded();
theCert = (X509Certificate) cf
.generateCertificate(new ByteArrayInputStream(certData));
diff -ur voms-api-java-3.0.5.orig/src/main/java/org/italiangrid/voms/asn1/VOMSConstants.java voms-api-java-3.0.5/src/main/java/org/italiangrid/voms/asn1/VOMSConstants.java
--- voms-api-java-3.0.5.orig/src/main/java/org/italiangrid/voms/asn1/VOMSConstants.java 2014-12-09 10:55:31.000000000 +0100
+++ voms-api-java-3.0.5/src/main/java/org/italiangrid/voms/asn1/VOMSConstants.java 2014-12-17 09:19:10.761933034 +0100
@@ -20,7 +20,7 @@
import java.util.Set;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
-import org.bouncycastle.asn1.x509.X509Extension;
+import org.bouncycastle.asn1.x509.Extension;
/**
* A set of useful constants for ASN.1 parsing of VOMS attributes.
@@ -56,7 +56,7 @@
public final Set<ASN1ObjectIdentifier> VOMS_HANDLED_EXTENSIONS = new HashSet<ASN1ObjectIdentifier>(
Arrays.asList(VOMS_FQANS_OID, VOMS_CERTS_OID, VOMS_GENERIC_ATTRS_OID,
- X509Extension.targetInformation, X509Extension.noRevAvail,
- X509Extension.authorityKeyIdentifier));
+ Extension.targetInformation, Extension.noRevAvail,
+ Extension.authorityKeyIdentifier));
}
diff -ur voms-api-java-3.0.5.orig/src/test/java/org/italiangrid/voms/test/ac/TestNoExtensionValidation.java voms-api-java-3.0.5/src/test/java/org/italiangrid/voms/test/ac/TestNoExtensionValidation.java
--- voms-api-java-3.0.5.orig/src/test/java/org/italiangrid/voms/test/ac/TestNoExtensionValidation.java 2014-12-09 10:55:31.000000000 +0100
+++ voms-api-java-3.0.5/src/test/java/org/italiangrid/voms/test/ac/TestNoExtensionValidation.java 2014-12-17 09:19:10.761933034 +0100
@@ -15,6 +15,7 @@
*/
package org.italiangrid.voms.test.ac;
+import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.SignatureException;
@@ -55,7 +56,8 @@
@Test
public void testNoExtensionValidation() throws InvalidKeyException,
- CertificateParsingException, SignatureException, NoSuchAlgorithmException {
+ CertificateParsingException, SignatureException, NoSuchAlgorithmException,
+ IOException {
ProxyCertificateOptions options = new ProxyCertificateOptions(
cred.getCertificateChain());

View file

@ -0,0 +1,21 @@
diff -ur voms-api-java-3.0.5.orig/src/test/java/org/italiangrid/voms/test/ac/TestACValidator.java voms-api-java-3.0.5/src/test/java/org/italiangrid/voms/test/ac/TestACValidator.java
--- voms-api-java-3.0.5.orig/src/test/java/org/italiangrid/voms/test/ac/TestACValidator.java 2014-12-09 10:55:31.000000000 +0100
+++ voms-api-java-3.0.5/src/test/java/org/italiangrid/voms/test/ac/TestACValidator.java 2014-12-16 14:00:01.144948880 +0100
@@ -351,7 +351,7 @@
.getValidationErrors().get(0).getMessage());
}
- @Test
+ // @Test
public void testTargetValidationSuccess() throws Exception {
VOMSAA aa = Utils.getVOMSAA();
@@ -379,7 +379,7 @@
Assert.assertTrue(r.isValid());
}
- @Test
+ // @Test
public void testTargetValidationFailure() throws Exception {
VOMSAA aa = Utils.getVOMSAA();

View file

@ -1,28 +0,0 @@
diff --git a/src/test/java/org/italiangrid/voms/test/ac/TestACValidator.java b/src/test/java/org/italiangrid/voms/test/ac/TestACValidator.java
index a0f7a87..4244925 100644
--- a/src/test/java/org/italiangrid/voms/test/ac/TestACValidator.java
+++ b/src/test/java/org/italiangrid/voms/test/ac/TestACValidator.java
@@ -31,6 +31,7 @@ import org.italiangrid.voms.test.utils.Utils;
import org.italiangrid.voms.test.utils.VOMSAA;
import org.junit.Assert;
import org.junit.BeforeClass;
+import org.junit.Ignore;
import org.junit.Test;
import eu.emi.security.authn.x509.X509CertChainValidatorExt;
@@ -316,6 +317,7 @@ public class TestACValidator implements Fixture {
}
@Test
+ @Ignore
public void testTargetValidationSuccess() throws Exception {
VOMSAA aa = Utils.getVOMSAA();
@@ -342,6 +344,7 @@ public class TestACValidator implements Fixture {
}
@Test
+ @Ignore
public void testTargetValidationFailure() throws Exception {
VOMSAA aa = Utils.getVOMSAA();

View file

@ -1,31 +1,39 @@
Name: voms-api-java
Version: 3.3.7
Release: 4%{?dist}
Version: 3.0.5
Release: 1%{?dist}
Summary: Virtual Organization Membership Service Java API
License: Apache-2.0
URL: https://github.com/italiangrid/%{name}
Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
# Helper scripts for generating test certificates
Source1: https://baltig.infn.it/mw-devel/helper-scripts/-/archive/master/helper-scripts-master.tar.gz
# Disable tests requiring non-local network
Patch0: %{name}-test.patch
Group: Development/Libraries
License: ASL 2.0
URL: https://wiki.italiangrid.it/VOMS
Source0: https://github.com/italiangrid/%{name}/archive/v%{version}.tar.gz
# Patch for bouncycastle 1.47+ (Fedora 21+, EPEL 7+)
Patch0: %{name}-bc147.patch
# Disable tests using non-local network interface
Patch1: %{name}-no-local.patch
BuildArch: noarch
ExclusiveArch: %{java_arches} noarch
%if %{?fedora}%{!?fedora:0} >= 43
BuildRequires: maven-local-openjdk25
%else
BuildRequires: maven-local
BuildRequires: mvn(org.apache.maven.plugins:maven-assembly-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-compiler-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-javadoc-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-release-plugin)
BuildRequires: mvn(eu.eu-emi.security:canl)
%if %{?fedora}%{!?fedora:0} >= 21 || %{?rhel}%{!?rhel:0} >= 7
BuildRequires: mvn(org.bouncycastle:bcpkix-jdk15on)
%else
BuildRequires: mvn(org.bouncycastle:bcmail-jdk16)
%endif
BuildRequires: mvn(eu.eu-emi.security:canl) >= 2.8.3
BuildRequires: mvn(junit:junit)
BuildRequires: mvn(org.hamcrest:hamcrest-library)
%if %{?fedora}%{!?fedora:0}
# Missing stuff in EPEL (mostly test frameworks)
BuildRequires: mvn(com.mycila.maven-license-plugin:maven-license-plugin)
BuildRequires: mvn(org.codehaus.mojo:cobertura-maven-plugin)
BuildRequires: mvn(org.mockito:mockito-core)
BuildRequires: faketime
BuildRequires: openssl
Requires: mvn(eu.eu-emi.security:canl) >= 2.8.3
BuildRequires: mvn(net.jcip:jcip-annotations)
%endif
%description
The Virtual Organization Membership Service (VOMS) is an attribute authority
@ -39,220 +47,54 @@ This package provides a java client API for VOMS.
%package javadoc
Summary: Virtual Organization Membership Service Java API Documentation
Group: Documentation
%description javadoc
Virtual Organization Membership Service (VOMS) Java API Documentation.
%prep
%setup -q -a 1
%patch -P0 -p1
%setup -q
# Remove unused dependency
%if %{?fedora}%{!?fedora:0} >= 21 || %{?rhel}%{!?rhel:0} >= 7
%patch0 -p1
%pom_xpath_replace "pom:project/pom:dependencies/pom:dependency[pom:artifactId='bcmail']/pom:groupId/text()" "org.bouncycastle"
%pom_xpath_replace "pom:project/pom:dependencies/pom:dependency[pom:artifactId='bcmail']/pom:artifactId/text()" "bcpkix-jdk15on"
%else
%pom_xpath_replace "pom:project/pom:dependencies/pom:dependency[pom:artifactId='bcmail']/pom:groupId/text()" "org.bouncycastle"
%pom_xpath_replace "pom:project/pom:dependencies/pom:dependency[pom:artifactId='bcmail']/pom:artifactId/text()" "bcmail-jdk16"
%endif
%patch1 -p1
%if %{?fedora}%{!?fedora:0}
%pom_xpath_inject "pom:project/pom:build/pom:plugins/pom:plugin[pom:groupId='com.mycila.maven-license-plugin']/pom:configuration/pom:excludes" "<exclude>.xmvn/**</exclude>"
%pom_xpath_remove "pom:project/pom:build/pom:plugins/pom:plugin[pom:groupId='com.mycila.maven-license-plugin']/pom:configuration/pom:strictCheck"
%else
# Missing stuff in EPEL (mostly test frameworks)
%pom_remove_plugin com.mycila.maven-license-plugin:maven-license-plugin
%pom_remove_plugin org.codehaus.mojo:cobertura-maven-plugin
%pom_remove_dep net.jcip:jcip-annotations
# F33+ and EPEL8+ doesn't use the maven-javadoc-plugin to generate javadoc
# Remove maven-javadoc-plugin configuration to avoid build failure
%pom_remove_plugin org.apache.maven.plugins:maven-javadoc-plugin
# Do not create source jars
%pom_remove_plugin org.apache.maven.plugins:maven-source-plugin
%if %{?rhel}%{!?rhel:0} == 9
# Modify bouncycastle dependencies for RHEL 9
%pom_change_dep org.bouncycastle:bcprov-jdk18on org.bouncycastle:bcprov-jdk15on
%pom_change_dep org.bouncycastle:bcpkix-jdk18on org.bouncycastle:bcpkix-jdk15on
%pom_remove_dep org.mockito:mockito-core
%endif
# Generate test certificates
export PATH=$PWD/helper-scripts-master/x509-scripts/scripts:$PATH
pushd src/test/resources
./setup.sh
popd
%build
%if %{?fedora}%{!?fedora:0}
%mvn_build
%else
# Can not run tests in EPEL due to missing test frameworks
%mvn_build -f
%endif
%install
%mvn_install
%mvn_install -J target/site/javadoc/apidocs
%files -f .mfiles
%doc AUTHORS README.md
%license LICENSE
%dir %{_javadir}/%{name}
%doc AUTHORS LICENSE README.md
%files javadoc -f .mfiles-javadoc
%license LICENSE
%doc LICENSE
%changelog
* Fri Jul 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.7-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Sat Jun 13 2026 Yaakov Selkowitz <yselkowi@redhat.com> - 3.3.7-3
- Rebuilt for openssl 4.0
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Sat Dec 20 2025 Mattias Ellert <mattias.ellert@physics.uu.se> - 3.3.7-1
- Update to version 3.3.7
* Mon Sep 08 2025 Mattias Ellert <mattias.ellert@physics.uu.se> - 3.3.6-2
- Include upstream's scripts for generating test certificates
- Enable tests again
* Tue Aug 05 2025 Mattias Ellert <mattias.ellert@physics.uu.se> - 3.3.6-1
- Update to version 3.3.6
* Tue Jul 29 2025 jiri vanek <jvanek@redhat.com> - 3.3.5-4
- Rebuilt for java-25-openjdk as preffered jdk
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Tue Apr 22 2025 Mattias Ellert <mattias.ellert@physics.uu.se> - 3.3.5-2
- Update URL tag
* Thu Apr 17 2025 Mattias Ellert <mattias.ellert@physics.uu.se> - 3.3.5-1
- Update to version 3.3.5
- Do not run tests
- some scripts needed for generating the test certificates are missing
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Thu Nov 28 2024 Mattias Ellert <mattias.ellert@physics.uu.se> - 3.3.3-2
- Update bouncycastle dependencies for EPEL 10
* Sat Aug 03 2024 Mattias Ellert <mattias.ellert@physics.uu.se> - 3.3.3-1
- Update to version 3.3.3
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.2-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Thu Mar 14 2024 Mattias Ellert <mattias.ellert@physics.uu.se> - 3.3.2-17
- Update bouncycastle dependencies
* Tue Feb 27 2024 Jiri Vanek <jvanek@redhat.com> - 3.3.2-16
- Rebuilt for java-21-openjdk as system jdk
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.2-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Sat Dec 16 2023 Mattias Ellert <mattias.ellert@physics.uu.se> - 3.3.2-14
- Adjust to removed deprecaded API in Mockito
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.2-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.2-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Tue Dec 13 2022 Mattias Ellert <mattias.ellert@physics.uu.se> - 3.3.2-11
- Disable tests that fail due to more expired certificates
* Mon Oct 17 2022 Mattias Ellert <mattias.ellert@physics.uu.se> - 3.3.2-10
- Disable tests that fail due to expired certificates
* Wed Sep 28 2022 Mattias Ellert <mattias.ellert@physics.uu.se> - 3.3.2-9
- Disable failing multi-thread test
- Disable tests using obsolete hashes (md5/sha1)
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.2-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Fri Jul 08 2022 Jiri Vanek <jvanek@redhat.com> - 3.3.2-7
- Rebuilt for Drop i686 JDKs
* Sat Feb 05 2022 Jiri Vanek <jvanek@redhat.com> - 3.3.2-6
- Rebuilt for java-17-openjdk as system jdk
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Jan 14 2022 Mattias Ellert <mattias.ellert@physics.uu.se> - 3.3.2-4
- Disable failing tests due to changes in bouncycastle
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Oct 13 2020 Mattias Ellert <mattias.ellert@physics.uu.se> - 3.3.2-1
- Update to version 3.3.2 - matches canl-java 2.6.x
- Drop patches voms-api-java-javadoc-source.patch and -no-local.patch
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.0-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jul 15 2020 Mattias Ellert <mattias.ellert@physics.uu.se> - 3.3.0-10
- Fedora 33 builds javadoc the same way EPEL 8 does
* Sat Jul 11 2020 Jiri Vanek <jvanek@redhat.com> - 3.3.0-9
- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11
* Tue May 05 2020 Mattias Ellert <mattias.ellert@physics.uu.se> - 3.3.0-8
- Only remove the maven-javadoc-plugin configuration on EPEL 8
- Add source version to javadoc configuration (backported from git)
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Tue Aug 20 2019 Mattias Ellert <mattias.ellert@physics.uu.se> - 3.3.0-6
- Remove maven-javadoc-plugin configuration
- Remove unused dependency net.jcip:jcip-annotations
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Dec 07 2018 Mattias Ellert <mattias.ellert@physics.uu.se> - 3.3.0-3
- Add BuildRequires on hamcrest-library (no longer pulled in by mockito)
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.3.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Thu Feb 08 2018 Mattias Ellert <mattias.ellert@physics.uu.se> - 3.3.0-1
- Update to version 3.3.0 - matches canl-java 2.5.x
- Drop patch voms-api-java-canl-2.5.patch
* Fri Jan 05 2018 Mattias Ellert <mattias.ellert@physics.uu.se> - 3.2.0-5
- Adapt to canl-java 2.5
- Use jcip-annotations for EPEL 7 build
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.2.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Thu Feb 16 2017 Mattias Ellert <mattias.ellert@physics.uu.se> - 3.2.0-3
- Remove maven source plugin
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.2.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Sun Feb 14 2016 Mattias Ellert <mattias.ellert@fysast.uu.se> - 3.2.0-1
- Update to version 3.2.0 - matches canl-java 2.2.x
- Drop patches: voms-api-java-bc147.patch, -javadoc.patch and -testfix.patch
* Sun Feb 14 2016 Mattias Ellert <mattias.ellert@fysast.uu.se> - 3.1.0-1
- Update to version 3.1.0 - matches canl-java 2.1.x
- Drop patches: voms-api-java-bc147.patch and -javadoc.patch
* Thu Feb 11 2016 Mattias Ellert <mattias.ellert@fysast.uu.se> - 3.0.5-5
- Backport fix for failing test due to new canl-java version
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.0.5-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Sat Jul 11 2015 Mattias Ellert <mattias.ellert@fysast.uu.se> - 3.0.5-3
- Remove build-dependency on cobertura-maven-plugin
(cobertura was removed from Fedora due to licensing issues)
- Enable tests in EPEL 7
- Implement new license packaging guidelines
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Tue Dec 16 2014 Mattias Ellert <mattias.ellert@fysast.uu.se> - 3.0.5-1
- Update to version 3.0.5
- Rebase patches (and fix some deprecation warnings)