From 00dbd9c4bf9e5c1d4f8a2f1416b7304559ce08c9 Mon Sep 17 00:00:00 2001 From: Bill Smith Date: Mon, 7 May 2018 14:36:10 -0700 Subject: [PATCH] [SHIBUI-479] Added lombok to the build. Added @EqualsAndHashCode to domain objects. Added version to relevant representation objects. Updated some unit tests to check for version. New unit tests WIP for EntityDescriptor. Working on adding a random EntityDescriptor generator. --- backend/build.gradle | 6 +++ .../admin/ui/domain/AbstractAuditable.java | 3 +- .../ui/domain/AdditionalMetadataLocation.java | 3 ++ .../admin/ui/domain/AffiliateMember.java | 3 ++ .../ui/domain/AffiliationDescriptor.java | 2 + .../ui/domain/ArtifactResolutionService.java | 3 ++ .../ui/domain/AssertionConsumerService.java | 3 ++ .../ui/domain/AssertionIDRequestService.java | 3 ++ .../shibboleth/admin/ui/domain/Attribute.java | 2 + .../domain/AttributeAuthorityDescriptor.java | 3 +- .../ui/domain/AttributeConsumingService.java | 2 + .../admin/ui/domain/AttributeProfile.java | 3 ++ .../admin/ui/domain/AttributeService.java | 3 ++ .../admin/ui/domain/AttributeValue.java | 3 ++ .../ui/domain/AuthnAuthorityDescriptor.java | 2 + .../admin/ui/domain/AuthnQueryService.java | 3 ++ .../admin/ui/domain/AuthzService.java | 3 ++ .../shibboleth/admin/ui/domain/Company.java | 3 ++ .../admin/ui/domain/ContactPerson.java | 2 + .../admin/ui/domain/Description.java | 3 ++ .../admin/ui/domain/DisplayName.java | 3 ++ .../admin/ui/domain/EmailAddress.java | 3 ++ .../admin/ui/domain/EncryptionMethod.java | 2 + .../shibboleth/admin/ui/domain/Endpoint.java | 2 + .../admin/ui/domain/EntityAttributes.java | 2 + .../ui/domain/EntityAttributesFilter.java | 4 +- .../domain/EntityAttributesFilterTarget.java | 10 +---- .../admin/ui/domain/EntityDescriptor.java | 2 + .../admin/ui/domain/Extensions.java | 2 + .../shibboleth/admin/ui/domain/GivenName.java | 3 ++ .../admin/ui/domain/IDPSSODescriptor.java | 3 +- .../admin/ui/domain/IndexedEndpoint.java | 2 + .../admin/ui/domain/InformationURL.java | 3 ++ .../admin/ui/domain/KeyDescriptor.java | 2 + .../shibboleth/admin/ui/domain/KeyInfo.java | 2 + .../shibboleth/admin/ui/domain/KeyName.java | 3 ++ .../shibboleth/admin/ui/domain/Keywords.java | 3 ++ .../tier/shibboleth/admin/ui/domain/Logo.java | 3 ++ .../admin/ui/domain/ManageNameIDService.java | 3 ++ .../admin/ui/domain/MetadataFilter.java | 3 ++ .../admin/ui/domain/MetadataResolver.java | 3 ++ .../admin/ui/domain/NameIDFormat.java | 3 ++ .../admin/ui/domain/NameIDMappingService.java | 3 ++ .../admin/ui/domain/Organization.java | 2 + .../ui/domain/OrganizationDisplayName.java | 3 ++ .../admin/ui/domain/OrganizationName.java | 3 ++ .../admin/ui/domain/OrganizationURL.java | 3 ++ .../admin/ui/domain/PDPDescriptor.java | 2 + .../admin/ui/domain/PrivacyStatementURL.java | 3 ++ .../admin/ui/domain/RequestedAttribute.java | 2 + .../admin/ui/domain/RoleDescriptor.java | 2 + .../ui/domain/RoleDescriptorResolver.java | 2 + .../admin/ui/domain/SPSSODescriptor.java | 2 + .../admin/ui/domain/SSODescriptor.java | 2 + .../admin/ui/domain/ServiceDescription.java | 3 ++ .../admin/ui/domain/ServiceName.java | 3 ++ .../admin/ui/domain/SingleLogoutService.java | 3 ++ .../admin/ui/domain/SingleSignOnService.java | 3 ++ .../shibboleth/admin/ui/domain/SurName.java | 3 ++ .../admin/ui/domain/TelephoneNumber.java | 3 ++ .../shibboleth/admin/ui/domain/UIInfo.java | 2 + .../admin/ui/domain/X509Certificate.java | 3 ++ .../shibboleth/admin/ui/domain/X509Data.java | 2 + .../shibboleth/admin/ui/domain/XSAny.java | 2 + .../admin/ui/domain/XSBase64Binary.java | 3 ++ .../shibboleth/admin/ui/domain/XSBoolean.java | 2 + .../admin/ui/domain/XSDateTime.java | 2 + .../shibboleth/admin/ui/domain/XSInteger.java | 3 ++ .../shibboleth/admin/ui/domain/XSQName.java | 2 + .../shibboleth/admin/ui/domain/XSString.java | 3 ++ .../shibboleth/admin/ui/domain/XSURI.java | 3 ++ .../EntityDescriptorRepresentation.java | 6 +++ .../domain/frontend/FilterRepresentation.java | 5 +++ .../frontend/FilterTargetRepresentation.java | 5 +++ .../JPAEntityDescriptorServiceImpl.java | 1 + .../ui/service/JPAFilterServiceImpl.java | 2 + .../service/JPAFilterTargetServiceImpl.java | 1 + .../service/JPAFilterServiceImplTests.groovy | 1 + .../JPAFilterTargetServiceImplTests.groovy | 1 + .../admin/ui/util/RandomGenerator.groovy | 12 ++++++ .../admin/ui/util/TestObjectGenerator.groovy | 39 +++++++++++++++++++ 81 files changed, 257 insertions(+), 14 deletions(-) diff --git a/backend/build.gradle b/backend/build.gradle index 037b8046f..ab5635d5d 100644 --- a/backend/build.gradle +++ b/backend/build.gradle @@ -5,6 +5,7 @@ plugins { id 'org.springframework.boot' version '2.0.0.RELEASE' id 'com.gorylenko.gradle-git-properties' version '1.4.21' id 'net.researchgate.release' version '2.6.0' + id 'io.franzbecker.gradle-lombok' version '1.13' } apply plugin: 'io.spring.dependency-management' @@ -41,6 +42,11 @@ springBoot { buildInfo() } +lombok { + version = "1.16.20" + sha256 = "c5178b18caaa1a15e17b99ba5e4023d2de2ebc18b58cde0f5a04ca4b31c10e6d" +} + dependencies { // opensaml deps ['opensaml-saml-api', 'opensaml-saml-impl', 'opensaml-xmlsec-api', 'opensaml-xmlsec-impl'].each { diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AbstractAuditable.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AbstractAuditable.java index fe3f06ba8..8f530bdd6 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AbstractAuditable.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AbstractAuditable.java @@ -8,8 +8,6 @@ import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; -import java.time.LocalDateTime; - import javax.persistence.Column; import javax.persistence.EntityListeners; import javax.persistence.GeneratedValue; @@ -17,6 +15,7 @@ import javax.persistence.Id; import javax.persistence.MappedSuperclass; import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; @MappedSuperclass diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AdditionalMetadataLocation.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AdditionalMetadataLocation.java index 8aca6caba..c5f33b7b1 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AdditionalMetadataLocation.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AdditionalMetadataLocation.java @@ -1,9 +1,12 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class AdditionalMetadataLocation extends AbstractXMLObject implements org.opensaml.saml.saml2.metadata.AdditionalMetadataLocation { private String locationURI; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AffiliateMember.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AffiliateMember.java index 0039047bf..e5dba9a06 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AffiliateMember.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AffiliateMember.java @@ -1,9 +1,12 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class AffiliateMember extends AbstractXMLObject implements org.opensaml.saml.saml2.metadata.AffiliateMember { private String localId; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AffiliationDescriptor.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AffiliationDescriptor.java index 5122a00f9..d97969c77 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AffiliationDescriptor.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AffiliationDescriptor.java @@ -1,6 +1,7 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; import com.google.common.collect.Lists; +import lombok.EqualsAndHashCode; import javax.persistence.CascadeType; import javax.persistence.Entity; @@ -10,6 +11,7 @@ @Entity +@EqualsAndHashCode(callSuper = true) public class AffiliationDescriptor extends AbstractDescriptor implements org.opensaml.saml.saml2.metadata.AffiliationDescriptor { private String ownerId; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/ArtifactResolutionService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/ArtifactResolutionService.java index 950e4a6d7..0d82f8a0d 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/ArtifactResolutionService.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/ArtifactResolutionService.java @@ -1,8 +1,11 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class ArtifactResolutionService extends IndexedEndpoint implements org.opensaml.saml.saml2.metadata.ArtifactResolutionService { } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AssertionConsumerService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AssertionConsumerService.java index 905cb7d1b..a89045075 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AssertionConsumerService.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AssertionConsumerService.java @@ -1,8 +1,11 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class AssertionConsumerService extends IndexedEndpoint implements org.opensaml.saml.saml2.metadata.AssertionConsumerService { } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AssertionIDRequestService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AssertionIDRequestService.java index 9c88846b6..9474d1d13 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AssertionIDRequestService.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AssertionIDRequestService.java @@ -1,8 +1,11 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class AssertionIDRequestService extends Endpoint implements org.opensaml.saml.saml2.metadata.AssertionIDRequestService { } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Attribute.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Attribute.java index e3eb808e5..b69b74254 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Attribute.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Attribute.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; import org.opensaml.core.xml.XMLObject; import javax.annotation.Nullable; @@ -12,6 +13,7 @@ @Entity +@EqualsAndHashCode(callSuper = true) public class Attribute extends AbstractAttributeExtensibleXMLObject implements org.opensaml.saml.saml2.core.Attribute { private String name; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeAuthorityDescriptor.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeAuthorityDescriptor.java index 9b130284d..2dc4d89e4 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeAuthorityDescriptor.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeAuthorityDescriptor.java @@ -1,6 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; -import com.google.common.collect.Lists; +import lombok.EqualsAndHashCode; import javax.persistence.CascadeType; import javax.persistence.Entity; @@ -11,6 +11,7 @@ @Entity +@EqualsAndHashCode(callSuper = true) public class AttributeAuthorityDescriptor extends RoleDescriptor implements org.opensaml.saml.saml2.metadata.AttributeAuthorityDescriptor { @OneToMany(cascade = CascadeType.ALL) diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeConsumingService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeConsumingService.java index 7eef7dbd8..dc557400b 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeConsumingService.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeConsumingService.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; import org.opensaml.core.xml.schema.XSBooleanValue; import javax.persistence.CascadeType; @@ -11,6 +12,7 @@ @Entity +@EqualsAndHashCode(callSuper = true) public class AttributeConsumingService extends AbstractXMLObject implements org.opensaml.saml.saml2.metadata.AttributeConsumingService { private int acsIndex; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeProfile.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeProfile.java index 9883f8740..21aea9486 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeProfile.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeProfile.java @@ -1,9 +1,12 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class AttributeProfile extends AbstractXMLObject implements org.opensaml.saml.saml2.metadata.AttributeProfile { private String profileURI; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeService.java index 07281118d..5855d0294 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeService.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeService.java @@ -1,8 +1,11 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class AttributeService extends Endpoint implements org.opensaml.saml.saml2.metadata.AttributeService { } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeValue.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeValue.java index bef88bfa7..11296d558 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeValue.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AttributeValue.java @@ -1,7 +1,10 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class AttributeValue extends AbstractXMLObject implements org.opensaml.saml.saml2.core.AttributeValue { } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AuthnAuthorityDescriptor.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AuthnAuthorityDescriptor.java index 33ff25f6a..240705132 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AuthnAuthorityDescriptor.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AuthnAuthorityDescriptor.java @@ -1,6 +1,7 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; import com.google.common.collect.Lists; +import lombok.EqualsAndHashCode; import javax.persistence.CascadeType; import javax.persistence.Entity; @@ -10,6 +11,7 @@ @Entity +@EqualsAndHashCode(callSuper = true) public class AuthnAuthorityDescriptor extends RoleDescriptor implements org.opensaml.saml.saml2.metadata.AuthnAuthorityDescriptor { @OneToMany(cascade = CascadeType.ALL) diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AuthnQueryService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AuthnQueryService.java index 2fe2e7b11..275e4eeef 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AuthnQueryService.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AuthnQueryService.java @@ -1,8 +1,11 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class AuthnQueryService extends Endpoint implements org.opensaml.saml.saml2.metadata.AuthnQueryService { } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AuthzService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AuthzService.java index 07d7ef713..995071a00 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AuthzService.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/AuthzService.java @@ -1,8 +1,11 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class AuthzService extends Endpoint implements org.opensaml.saml.saml2.metadata.AuthzService { } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Company.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Company.java index 93d93d0d3..54748b91c 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Company.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Company.java @@ -1,9 +1,12 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class Company extends AbstractXMLObject implements org.opensaml.saml.saml2.metadata.Company { private String name; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/ContactPerson.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/ContactPerson.java index 84c7c577b..e266a5555 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/ContactPerson.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/ContactPerson.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; import org.opensaml.core.xml.XMLObject; import org.opensaml.saml.saml2.metadata.ContactPersonTypeEnumeration; @@ -10,6 +11,7 @@ @Entity +@EqualsAndHashCode(callSuper = true) public class ContactPerson extends AbstractAttributeExtensibleXMLObject implements org.opensaml.saml.saml2.metadata.ContactPerson { private String contactPersonType; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Description.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Description.java index ecd06580f..81b66542d 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Description.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Description.java @@ -1,10 +1,13 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.annotation.Nullable; import javax.persistence.Column; import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class Description extends AbstractXMLObject implements org.opensaml.saml.ext.saml2mdui.Description { @Column(name = "descriptionXMLLang") diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/DisplayName.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/DisplayName.java index c5f394bf5..564b0b0f6 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/DisplayName.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/DisplayName.java @@ -1,10 +1,13 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.annotation.Nullable; import javax.persistence.Column; import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class DisplayName extends AbstractXMLObject implements org.opensaml.saml.ext.saml2mdui.DisplayName { @Column(name = "displayNameXMLLan") diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EmailAddress.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EmailAddress.java index 59228e45a..313ebd65e 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EmailAddress.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EmailAddress.java @@ -1,8 +1,11 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class EmailAddress extends AbstractXMLObject implements org.opensaml.saml.saml2.metadata.EmailAddress { private String address; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EncryptionMethod.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EncryptionMethod.java index 7fb36e6f1..688dea31d 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EncryptionMethod.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EncryptionMethod.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; import org.opensaml.xmlsec.encryption.KeySize; import org.opensaml.xmlsec.encryption.OAEPparams; @@ -8,6 +9,7 @@ import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class EncryptionMethod extends AbstractElementExtensibleXMLObject implements org.opensaml.saml.saml2.metadata.EncryptionMethod { private String algorithm; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Endpoint.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Endpoint.java index 94afb1935..97094187a 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Endpoint.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Endpoint.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; import org.opensaml.core.xml.XMLObject; import javax.annotation.Nonnull; @@ -12,6 +13,7 @@ * Note: This also should extend AbstractElementExtensibleXMLObject, but we can't in Java. */ @Entity +@EqualsAndHashCode(callSuper = true) public class Endpoint extends AbstractAttributeExtensibleXMLObject implements org.opensaml.saml.saml2.metadata.Endpoint { private String binding; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EntityAttributes.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EntityAttributes.java index 4740aeb7f..8290dcf40 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EntityAttributes.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EntityAttributes.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; import org.opensaml.core.xml.XMLObject; import org.opensaml.saml.saml2.core.Assertion; @@ -13,6 +14,7 @@ import java.util.List; @Entity +@EqualsAndHashCode(callSuper = true) public class EntityAttributes extends AbstractElementExtensibleXMLObject implements org.opensaml.saml.ext.saml2mdattr.EntityAttributes { @OneToMany(cascade = CascadeType.ALL) diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EntityAttributesFilter.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EntityAttributesFilter.java index d673ab4b8..0724a75ea 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EntityAttributesFilter.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EntityAttributesFilter.java @@ -1,6 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; -import com.google.common.base.Predicate; +import lombok.EqualsAndHashCode; import javax.persistence.CascadeType; import javax.persistence.Entity; @@ -8,9 +8,9 @@ import javax.persistence.OneToOne; import java.util.ArrayList; import java.util.List; -import java.util.UUID; @Entity +@EqualsAndHashCode(callSuper = true) public class EntityAttributesFilter extends MetadataFilter { @OneToOne(cascade = CascadeType.ALL) private EntityAttributesFilterTarget entityAttributesFilterTarget; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EntityAttributesFilterTarget.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EntityAttributesFilterTarget.java index bbd79f811..7b19b072e 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EntityAttributesFilterTarget.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EntityAttributesFilterTarget.java @@ -1,22 +1,16 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; -import edu.internet2.tier.shibboleth.admin.ui.controller.FilterController; +import lombok.EqualsAndHashCode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.persistence.ElementCollection; import javax.persistence.Entity; -import javax.persistence.OneToMany; -import javax.persistence.Transient; -import java.io.IOException; import java.util.ArrayList; import java.util.List; @Entity +@EqualsAndHashCode(callSuper = true) public class EntityAttributesFilterTarget extends AbstractAuditable { public enum EntityAttributesFilterTargetType { ENTITY, CONDITION_SCRIPT, CONDITION_REF diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EntityDescriptor.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EntityDescriptor.java index c81d1ed43..f8bdd9737 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EntityDescriptor.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/EntityDescriptor.java @@ -3,6 +3,7 @@ import com.google.common.base.MoreObjects; import com.google.common.collect.Lists; +import lombok.EqualsAndHashCode; import org.opensaml.core.xml.XMLObject; import org.springframework.util.StringUtils; @@ -25,6 +26,7 @@ @Entity +@EqualsAndHashCode(callSuper = true) public class EntityDescriptor extends AbstractDescriptor implements org.opensaml.saml.saml2.metadata.EntityDescriptor { private String localId; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Extensions.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Extensions.java index 3494a3495..dd8521f70 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Extensions.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Extensions.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; import org.opensaml.core.xml.XMLObject; import javax.annotation.Nullable; @@ -9,6 +10,7 @@ @Entity +@EqualsAndHashCode(callSuper = true) public class Extensions extends AbstractElementExtensibleXMLObject implements org.opensaml.saml.saml2.metadata.Extensions { @Nullable @Override diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/GivenName.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/GivenName.java index 85380d1b7..785b60804 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/GivenName.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/GivenName.java @@ -1,8 +1,11 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class GivenName extends AbstractXMLObject implements org.opensaml.saml.saml2.metadata.GivenName { private String name; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/IDPSSODescriptor.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/IDPSSODescriptor.java index a9efee5ad..2074110e5 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/IDPSSODescriptor.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/IDPSSODescriptor.java @@ -1,6 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; -import com.google.common.collect.Lists; +import lombok.EqualsAndHashCode; import org.opensaml.core.xml.schema.XSBooleanValue; import javax.persistence.CascadeType; @@ -12,6 +12,7 @@ @Entity +@EqualsAndHashCode(callSuper = true) public class IDPSSODescriptor extends SSODescriptor implements org.opensaml.saml.saml2.metadata.IDPSSODescriptor { private boolean wantAuthnRequestsSigned; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/IndexedEndpoint.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/IndexedEndpoint.java index d3ea44b3c..e8d8f1551 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/IndexedEndpoint.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/IndexedEndpoint.java @@ -1,11 +1,13 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; import org.opensaml.core.xml.schema.XSBooleanValue; import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class IndexedEndpoint extends Endpoint implements org.opensaml.saml.saml2.metadata.IndexedEndpoint { private Integer endpointIndex; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/InformationURL.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/InformationURL.java index 3bf42dcaa..45d5477d1 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/InformationURL.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/InformationURL.java @@ -1,7 +1,10 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class InformationURL extends AbstractLangBearingURL implements org.opensaml.saml.ext.saml2mdui.InformationURL { } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/KeyDescriptor.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/KeyDescriptor.java index fce55b916..0e3a4481e 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/KeyDescriptor.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/KeyDescriptor.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; import org.opensaml.core.xml.XMLObject; import org.opensaml.security.credential.UsageType; import org.opensaml.xmlsec.signature.KeyInfo; @@ -10,6 +11,7 @@ import java.util.List; @Entity +@EqualsAndHashCode(callSuper = true) public class KeyDescriptor extends AbstractXMLObject implements org.opensaml.saml.saml2.metadata.KeyDescriptor { @Column(name = "keyDescriptorName") diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/KeyInfo.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/KeyInfo.java index a996749f4..91fb325ee 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/KeyInfo.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/KeyInfo.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; import org.opensaml.core.xml.XMLObject; import org.opensaml.xmlsec.encryption.AgreementMethod; import org.opensaml.xmlsec.encryption.EncryptedKey; @@ -26,6 +27,7 @@ import java.util.stream.Collectors; @Entity +@EqualsAndHashCode(callSuper = true) public class KeyInfo extends AbstractXMLObject implements org.opensaml.xmlsec.signature.KeyInfo { @OneToMany(cascade = CascadeType.ALL) diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/KeyName.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/KeyName.java index 90acbeb4d..ae1c913c4 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/KeyName.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/KeyName.java @@ -1,7 +1,10 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class KeyName extends XSString implements org.opensaml.xmlsec.signature.KeyName { } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Keywords.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Keywords.java index ba8b15c5f..7b918ae9a 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Keywords.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Keywords.java @@ -1,11 +1,14 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.annotation.Nullable; import javax.persistence.ElementCollection; import javax.persistence.Entity; import java.util.List; @Entity +@EqualsAndHashCode(callSuper = true) public class Keywords extends AbstractXMLObject implements org.opensaml.saml.ext.saml2mdui.Keywords { @ElementCollection private List keywords; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Logo.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Logo.java index bc836c5d5..b9173bb22 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Logo.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Logo.java @@ -1,10 +1,13 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.annotation.Nullable; import javax.persistence.Column; import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class Logo extends AbstractXMLObject implements org.opensaml.saml.ext.saml2mdui.Logo { @Column(name = "logUrl") private String url; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/ManageNameIDService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/ManageNameIDService.java index 0ec74a11e..ec43780d3 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/ManageNameIDService.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/ManageNameIDService.java @@ -1,8 +1,11 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class ManageNameIDService extends Endpoint implements org.opensaml.saml.saml2.metadata.ManageNameIDService { } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/MetadataFilter.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/MetadataFilter.java index f5b7c11bd..9bd5e6d2d 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/MetadataFilter.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/MetadataFilter.java @@ -1,5 +1,7 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Column; import javax.persistence.Entity; import java.util.UUID; @@ -8,6 +10,7 @@ * Domain class to store information about {@link org.opensaml.saml.metadata.resolver.filter.MetadataFilter} */ @Entity +@EqualsAndHashCode(callSuper = true) public class MetadataFilter extends AbstractAuditable { private String name; @Column(unique=true) diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/MetadataResolver.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/MetadataResolver.java index 5ec51e147..9d5288dbc 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/MetadataResolver.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/MetadataResolver.java @@ -1,5 +1,7 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.OneToMany; @@ -8,6 +10,7 @@ import java.util.UUID; @Entity +@EqualsAndHashCode(callSuper = true) public class MetadataResolver extends AbstractAuditable { private String name; private String resourceId = UUID.randomUUID().toString(); diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/NameIDFormat.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/NameIDFormat.java index a9952d4f5..4e63ff301 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/NameIDFormat.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/NameIDFormat.java @@ -1,8 +1,11 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class NameIDFormat extends AbstractXMLObject implements org.opensaml.saml.saml2.metadata.NameIDFormat { private String format; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/NameIDMappingService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/NameIDMappingService.java index 02e6de8f7..5bd350538 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/NameIDMappingService.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/NameIDMappingService.java @@ -1,7 +1,10 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class NameIDMappingService extends Endpoint implements org.opensaml.saml.saml2.metadata.NameIDMappingService { } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Organization.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Organization.java index 5e65e8b03..1e52e0260 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Organization.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/Organization.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; import org.opensaml.core.xml.XMLObject; import javax.annotation.Nullable; @@ -9,6 +10,7 @@ @Entity +@EqualsAndHashCode(callSuper = true) public class Organization extends AbstractAttributeExtensibleXMLObject implements org.opensaml.saml.saml2.metadata.Organization { @OneToOne(cascade = CascadeType.ALL) diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/OrganizationDisplayName.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/OrganizationDisplayName.java index 4e024b9e5..8d473aa82 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/OrganizationDisplayName.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/OrganizationDisplayName.java @@ -1,8 +1,11 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class OrganizationDisplayName extends LocalizedName implements org.opensaml.saml.saml2.metadata.OrganizationDisplayName { } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/OrganizationName.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/OrganizationName.java index 4d058ebc8..edc9317c1 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/OrganizationName.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/OrganizationName.java @@ -1,8 +1,11 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class OrganizationName extends LocalizedName implements org.opensaml.saml.saml2.metadata.OrganizationName { } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/OrganizationURL.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/OrganizationURL.java index 59aa89800..6af0d7318 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/OrganizationURL.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/OrganizationURL.java @@ -1,9 +1,12 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.annotation.Nullable; import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class OrganizationURL extends AbstractXMLObject implements org.opensaml.saml.saml2.metadata.OrganizationURL { private String xMLLang; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/PDPDescriptor.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/PDPDescriptor.java index 38b3aa161..45053fc71 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/PDPDescriptor.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/PDPDescriptor.java @@ -1,6 +1,7 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; import com.google.common.collect.Lists; +import lombok.EqualsAndHashCode; import javax.persistence.CascadeType; import javax.persistence.Entity; @@ -10,6 +11,7 @@ @Entity +@EqualsAndHashCode(callSuper = true) public class PDPDescriptor extends RoleDescriptor implements org.opensaml.saml.saml2.metadata.PDPDescriptor { @OneToMany(cascade = CascadeType.ALL) diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/PrivacyStatementURL.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/PrivacyStatementURL.java index c3f14bfd7..a6d792d80 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/PrivacyStatementURL.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/PrivacyStatementURL.java @@ -1,7 +1,10 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class PrivacyStatementURL extends AbstractLangBearingURL implements org.opensaml.saml.ext.saml2mdui.PrivacyStatementURL { } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/RequestedAttribute.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/RequestedAttribute.java index 1a841a47e..a7860e931 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/RequestedAttribute.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/RequestedAttribute.java @@ -1,10 +1,12 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; import org.opensaml.core.xml.schema.XSBooleanValue; import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class RequestedAttribute extends Attribute implements org.opensaml.saml.saml2.metadata.RequestedAttribute { private boolean isRequired; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/RoleDescriptor.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/RoleDescriptor.java index a2a111e12..4647c8d47 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/RoleDescriptor.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/RoleDescriptor.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; import org.opensaml.core.xml.XMLObject; import org.opensaml.core.xml.util.AttributeMap; @@ -22,6 +23,7 @@ import java.util.List; @Entity +@EqualsAndHashCode(callSuper = true) public class RoleDescriptor extends AbstractDescriptor implements org.opensaml.saml.saml2.metadata.RoleDescriptor { @ElementCollection diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/RoleDescriptorResolver.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/RoleDescriptorResolver.java index 5fa37ba63..c2ca42787 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/RoleDescriptorResolver.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/RoleDescriptorResolver.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; import net.shibboleth.utilities.java.support.resolver.CriteriaSet; import net.shibboleth.utilities.java.support.resolver.ResolverException; import org.opensaml.saml.saml2.metadata.RoleDescriptor; @@ -9,6 +10,7 @@ import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class RoleDescriptorResolver extends AbstractAuditable implements org.opensaml.saml.metadata.resolver.RoleDescriptorResolver { private String localId; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/SPSSODescriptor.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/SPSSODescriptor.java index 9300d9d3f..aeae0164e 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/SPSSODescriptor.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/SPSSODescriptor.java @@ -1,6 +1,7 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; import com.google.common.collect.Lists; +import lombok.EqualsAndHashCode; import org.opensaml.core.xml.XMLObject; import org.opensaml.core.xml.schema.XSBooleanValue; @@ -11,6 +12,7 @@ import java.util.List; @Entity +@EqualsAndHashCode(callSuper = true) public class SPSSODescriptor extends SSODescriptor implements org.opensaml.saml.saml2.metadata.SPSSODescriptor { private Boolean isAuthnRequestsSigned; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/SSODescriptor.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/SSODescriptor.java index 04e62fb02..1674b7d99 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/SSODescriptor.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/SSODescriptor.java @@ -1,6 +1,7 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; import com.google.common.collect.Lists; +import lombok.EqualsAndHashCode; import org.opensaml.core.xml.XMLObject; import javax.annotation.Nullable; @@ -14,6 +15,7 @@ import java.util.List; @Entity +@EqualsAndHashCode(callSuper = true) public class SSODescriptor extends RoleDescriptor implements org.opensaml.saml.saml2.metadata.SSODescriptor { @OneToMany(cascade = CascadeType.ALL) diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/ServiceDescription.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/ServiceDescription.java index e6365f1f3..4c3a54511 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/ServiceDescription.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/ServiceDescription.java @@ -1,8 +1,11 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class ServiceDescription extends LocalizedName implements org.opensaml.saml.saml2.metadata.ServiceDescription { } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/ServiceName.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/ServiceName.java index 9e5f3c5ac..b4047f0c8 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/ServiceName.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/ServiceName.java @@ -1,8 +1,11 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class ServiceName extends LocalizedName implements org.opensaml.saml.saml2.metadata.ServiceName { } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/SingleLogoutService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/SingleLogoutService.java index 6947fa4f2..67967676e 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/SingleLogoutService.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/SingleLogoutService.java @@ -1,8 +1,11 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class SingleLogoutService extends Endpoint implements org.opensaml.saml.saml2.metadata.SingleLogoutService { } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/SingleSignOnService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/SingleSignOnService.java index 41659269b..5d9c59118 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/SingleSignOnService.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/SingleSignOnService.java @@ -1,7 +1,10 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class SingleSignOnService extends Endpoint implements org.opensaml.saml.saml2.metadata.SingleSignOnService { } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/SurName.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/SurName.java index 535c05071..a62cdeaa6 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/SurName.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/SurName.java @@ -1,8 +1,11 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class SurName extends AbstractXMLObject implements org.opensaml.saml.saml2.metadata.SurName { private String name; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/TelephoneNumber.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/TelephoneNumber.java index 03cd97a97..729d5d40f 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/TelephoneNumber.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/TelephoneNumber.java @@ -1,8 +1,11 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class TelephoneNumber extends AbstractXMLObject implements org.opensaml.saml.saml2.metadata.TelephoneNumber { private String number; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/UIInfo.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/UIInfo.java index cc694b210..54b1da0b9 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/UIInfo.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/UIInfo.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; import org.hibernate.annotations.Cascade; import org.hibernate.annotations.CascadeType; import org.opensaml.core.xml.XMLObject; @@ -19,6 +20,7 @@ import java.util.stream.Collectors; @Entity +@EqualsAndHashCode(callSuper = true) public class UIInfo extends AbstractXMLObject implements org.opensaml.saml.ext.saml2mdui.UIInfo { @OneToMany @Cascade(CascadeType.ALL) diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/X509Certificate.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/X509Certificate.java index b93451899..2fe5ea571 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/X509Certificate.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/X509Certificate.java @@ -1,11 +1,14 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.annotation.Nullable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Lob; @Entity +@EqualsAndHashCode(callSuper = true) public class X509Certificate extends AbstractXMLObject implements org.opensaml.xmlsec.signature.X509Certificate { @Column(name = "x509CertificateValue") @Lob diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/X509Data.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/X509Data.java index e2f257ccb..dabb50332 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/X509Data.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/X509Data.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; import org.opensaml.core.xml.XMLObject; import org.opensaml.xmlsec.signature.X509CRL; import org.opensaml.xmlsec.signature.X509Certificate; @@ -20,6 +21,7 @@ import java.util.stream.Collectors; @Entity +@EqualsAndHashCode(callSuper = true) public class X509Data extends AbstractXMLObject implements org.opensaml.xmlsec.signature.X509Data { @OneToMany(cascade = CascadeType.ALL) List xmlObjects = new ArrayList<>(); diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSAny.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSAny.java index 9dd447277..53b8357f5 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSAny.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSAny.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; import org.opensaml.core.xml.util.AttributeMap; import javax.annotation.Nonnull; @@ -8,6 +9,7 @@ import javax.persistence.Transient; @Entity +@EqualsAndHashCode(callSuper = true) public class XSAny extends AbstractElementExtensibleXMLObject implements org.opensaml.core.xml.schema.XSAny { private String textContext; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSBase64Binary.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSBase64Binary.java index a0df05fde..0d886d52a 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSBase64Binary.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSBase64Binary.java @@ -1,9 +1,12 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.annotation.Nullable; import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class XSBase64Binary extends AbstractXMLObject implements org.opensaml.core.xml.schema.XSBase64Binary { private String b64value; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSBoolean.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSBoolean.java index 369f10719..72399bf06 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSBoolean.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSBoolean.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; import org.opensaml.core.xml.schema.XSBooleanValue; import javax.annotation.Nullable; @@ -7,6 +8,7 @@ import javax.persistence.Transient; @Entity +@EqualsAndHashCode(callSuper = true) public class XSBoolean extends AbstractXMLObject implements org.opensaml.core.xml.schema.XSBoolean { private String storedValue; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSDateTime.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSDateTime.java index c88f75917..0ea3116f8 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSDateTime.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSDateTime.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; import org.joda.time.DateTime; import org.joda.time.chrono.ISOChronology; import org.joda.time.format.DateTimeFormatter; @@ -11,6 +12,7 @@ import javax.persistence.Transient; @Entity +@EqualsAndHashCode(callSuper = true) public class XSDateTime extends AbstractXMLObject implements org.opensaml.core.xml.schema.XSDateTime { private DateTime dateTime; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSInteger.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSInteger.java index 82ffc6329..294d0a575 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSInteger.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSInteger.java @@ -1,9 +1,12 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.annotation.Nullable; import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class XSInteger extends AbstractXMLObject implements org.opensaml.core.xml.schema.XSInteger { private int intValue; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSQName.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSQName.java index e17a93863..259e3df36 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSQName.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSQName.java @@ -1,5 +1,6 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; import net.shibboleth.utilities.java.support.xml.QNameSupport; import javax.annotation.Nullable; @@ -8,6 +9,7 @@ import java.beans.Transient; @Entity +@EqualsAndHashCode(callSuper = true) public class XSQName extends AbstractXMLObject implements org.opensaml.core.xml.schema.XSQName { @Nullable @Override diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSString.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSString.java index 5ad9264f6..f35e8e287 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSString.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSString.java @@ -1,9 +1,12 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.annotation.Nullable; import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class XSString extends AbstractXMLObject implements org.opensaml.core.xml.schema.XSString { private String xsStringvalue; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSURI.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSURI.java index 8e2a6c02c..2780c5472 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSURI.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/XSURI.java @@ -1,10 +1,13 @@ package edu.internet2.tier.shibboleth.admin.ui.domain; +import lombok.EqualsAndHashCode; + import javax.annotation.Nullable; import javax.persistence.Column; import javax.persistence.Entity; @Entity +@EqualsAndHashCode(callSuper = true) public class XSURI extends AbstractXMLObject implements org.opensaml.core.xml.schema.XSURI { @Column(name = "xsuriValue") private String value; diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/frontend/EntityDescriptorRepresentation.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/frontend/EntityDescriptorRepresentation.java index 3bab8e4b0..c11a935f5 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/frontend/EntityDescriptorRepresentation.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/frontend/EntityDescriptorRepresentation.java @@ -9,6 +9,8 @@ public class EntityDescriptorRepresentation implements Serializable { + private int version; + public EntityDescriptorRepresentation() { } @@ -193,4 +195,8 @@ public List getAttributeRelease() { public void setAttributeRelease(List attributeRelease) { this.attributeRelease = attributeRelease; } + + public void setVersion(int version) { + this.version = version; + } } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/frontend/FilterRepresentation.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/frontend/FilterRepresentation.java index ce0bc26f8..09e1e9772 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/frontend/FilterRepresentation.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/frontend/FilterRepresentation.java @@ -13,6 +13,7 @@ public class FilterRepresentation implements Serializable { private List attributeRelease; private LocalDateTime createdDate; private LocalDateTime modifiedDate; + private int version; public FilterRepresentation() { @@ -87,4 +88,8 @@ public LocalDateTime getModifiedDate() { public void setModifiedDate(LocalDateTime modifiedDate) { this.modifiedDate = modifiedDate; } + + public void setVersion(int version) { + this.version = version; + } } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/frontend/FilterTargetRepresentation.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/frontend/FilterTargetRepresentation.java index 773178cf0..dbb4b5c60 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/frontend/FilterTargetRepresentation.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/domain/frontend/FilterTargetRepresentation.java @@ -10,6 +10,7 @@ public class FilterTargetRepresentation { private String type; private List value; + private int version; public FilterTargetRepresentation() { @@ -48,4 +49,8 @@ public List getValue() { public void setValue(List listValue) { this.value = listValue; } + + public void setVersion(int version) { + this.version = version; + } } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImpl.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImpl.java index 922f94df7..74a091641 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImpl.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAEntityDescriptorServiceImpl.java @@ -350,6 +350,7 @@ public EntityDescriptorRepresentation createRepresentationFromDescriptor(org.ope representation.setServiceEnabled(ed.isServiceEnabled()); representation.setCreatedDate(ed.getCreatedDate()); representation.setModifiedDate(ed.getModifiedDate()); + representation.setVersion(ed.hashCode()); if (ed.getSPSSODescriptor("") != null && ed.getSPSSODescriptor("").getSupportedProtocols().size() > 0) { ServiceProviderSsoDescriptorRepresentation serviceProviderSsoDescriptorRepresentation = representation.getServiceProviderSsoDescriptor(true); diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterServiceImpl.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterServiceImpl.java index a7bc130e4..8b431f62f 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterServiceImpl.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterServiceImpl.java @@ -62,6 +62,8 @@ public FilterRepresentation createRepresentationFromFilter(EntityAttributesFilte entityDescriptorService.getRelyingPartyOverridesRepresentationFromAttributeList(entityAttributesFilter.getAttributes())); representation.setFilterTarget(filterTargetService.createRepresentationFromFilterTarget(entityAttributesFilter.getEntityAttributesFilterTarget())); + + representation.setVersion(entityAttributesFilter.hashCode()); return representation; } } diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterTargetServiceImpl.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterTargetServiceImpl.java index a28d5a5ee..2e0739d76 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterTargetServiceImpl.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterTargetServiceImpl.java @@ -24,6 +24,7 @@ public FilterTargetRepresentation createRepresentationFromFilterTarget(EntityAtt representation.setValue(entityAttributesFilterTarget.getValue()); representation.setType(entityAttributesFilterTarget.getEntityAttributesFilterTargetType().name()); + representation.setVersion(entityAttributesFilterTarget.hashCode()); return representation; } diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterServiceImplTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterServiceImplTests.groovy index d09e04d1f..567b6e00a 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterServiceImplTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterServiceImplTests.groovy @@ -72,6 +72,7 @@ class JPAFilterServiceImplTests extends Specification { result.id == filter.resourceId result.filterName == filter.name result.filterEnabled == filter.filterEnabled + result.version == filter.hashCode() //TODO? See note above, same question. determineCountOfAttributesFromRelyingPartyOverrides(result) == filter.getAttributes().size() diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterTargetServiceImplTests.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterTargetServiceImplTests.groovy index 80db7c8e5..0ceaaa82e 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterTargetServiceImplTests.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/service/JPAFilterTargetServiceImplTests.groovy @@ -42,5 +42,6 @@ class JPAFilterTargetServiceImplTests extends Specification { then: results.value == filterTarget.value results.type == filterTarget.entityAttributesFilterTargetType.toString() + results.version == filterTarget.hashCode() } } diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/RandomGenerator.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/RandomGenerator.groovy index 99e365705..0dbee4b0b 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/RandomGenerator.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/RandomGenerator.groovy @@ -2,6 +2,9 @@ package edu.internet2.tier.shibboleth.admin.ui.util import org.apache.commons.lang3.RandomStringUtils +import java.time.LocalDateTime +import java.time.ZoneId + /** * @author Bill Smith (wsmith@unicon.net) */ @@ -39,6 +42,10 @@ class RandomGenerator { } } + int randomInt() { + return rand.nextInt() + } + Date randomDate() { return randomDate(randomBoolean()) } @@ -55,6 +62,11 @@ class RandomGenerator { return new Date(time) } + LocalDateTime randomLocalDateTime() { + def date = randomDate() + return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()) + } + boolean randomBoolean() { return rand.nextBoolean() } diff --git a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestObjectGenerator.groovy b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestObjectGenerator.groovy index aaf9c23d2..94015e0e3 100644 --- a/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestObjectGenerator.groovy +++ b/backend/src/test/groovy/edu/internet2/tier/shibboleth/admin/ui/util/TestObjectGenerator.groovy @@ -1,13 +1,19 @@ package edu.internet2.tier.shibboleth.admin.ui.util +import edu.internet2.tier.shibboleth.admin.ui.domain.AdditionalMetadataLocation import edu.internet2.tier.shibboleth.admin.ui.domain.Attribute import edu.internet2.tier.shibboleth.admin.ui.domain.EntityAttributesFilter import edu.internet2.tier.shibboleth.admin.ui.domain.EntityAttributesFilterTarget +import edu.internet2.tier.shibboleth.admin.ui.domain.EntityDescriptor import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.FilterRepresentation import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.FilterTargetRepresentation import edu.internet2.tier.shibboleth.admin.ui.domain.frontend.RelyingPartyOverridesRepresentation import edu.internet2.tier.shibboleth.admin.util.AttributeUtility import edu.internet2.tier.shibboleth.admin.util.MDDCConstants +import org.opensaml.saml.saml2.metadata.Organization +import org.w3c.dom.Element + +import java.time.LocalDateTime /** * @author Bill Smith (wsmith@unicon.net) @@ -130,4 +136,37 @@ class TestObjectGenerator { EntityAttributesFilterTarget.EntityAttributesFilterTargetType randomFilterTargetType() { EntityAttributesFilterTarget.EntityAttributesFilterTargetType.values()[generator.randomInt(0, 2)] } + + EntityDescriptor buildEntityDescriptor() { + EntityDescriptor entityDescriptor = new EntityDescriptor() + + entityDescriptor.setID(generator.randomId()) + entityDescriptor.setEntityID(generator.randomId()) + entityDescriptor.setServiceProviderName(generator.randomString(20)) + entityDescriptor.setServiceEnabled(generator.randomBoolean()) + entityDescriptor.setResourceId(generator.randomId()) + entityDescriptor.setOrganization(buildOrganization()) + //TODO Finish adding the rest of the setters here. + + //TODO: Implement these if we ever start setting them elsewhere + //entityDescriptor.setRoleDescriptors(buildRoleDescriptors()) + //entityDescriptor.setAdditionalMetadataLocations(buildAdditionalMetadataLocations()) + //entityDescriptor.setAuthnAuthorityDescriptor(buildAuthnAuthorityDescriptor()) + //entityDescriptor.setAttributeAuthorityDescriptor(buildAttributeAuthorityDescriptor()) + //entityDescriptor.setPdpDescriptor(buildPdpDescriptor()) + //entityDescriptor.setAffiliationDescriptor(buildAffiliationDescriptor()) + + entityDescriptor.setCreatedBy(generator.randomString(10)) + entityDescriptor.setCreatedDate(generator.randomLocalDateTime()) + + return entityDescriptor + } + + Organization buildOrganization() { + Organization organization = new edu.internet2.tier.shibboleth.admin.ui.domain.Organization() + + //TODO Fill this out based on what gets used in the Organization domain object + + return organization + } }