[java-opensaml] branch main updated: Fix invalid Java pattern match construct.
Scott Cantor
cantor.2 at osu.edu
Mon Mar 20 20:48:05 UTC 2023
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch main
in repository java-opensaml.
View the commit online:
http://git.shibboleth.net/view/?p=java-opensaml.git;a=commit;h=ab2c1633f2ca807b4d69da9b2d2d147b044179a6
The following commit(s) were added to refs/heads/main by this push:
new ab2c1633f Fix invalid Java pattern match construct.
ab2c1633f is described below
commit ab2c1633f2ca807b4d69da9b2d2d147b044179a6
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Mar 20 16:48:00 2023 -0400
Fix invalid Java pattern match construct.
---
.../messaging/context/SAMLPeerEntityContext.java | 8 ++--
.../context/SAMLSubjectNameIdentifierContext.java | 13 +++++--
.../soap/SAMLSOAPClientContextBuilder.java | 40 ++++++++++++++------
.../profile/logic/EntityAttributesPredicate.java | 22 +++++++----
.../logic/InboundMessageSignedPredicate.java | 7 +++-
.../MetadataNameIdentifierFormatStrategy.java | 5 ++-
.../opensaml/saml/saml2/common/SAML2Support.java | 5 ++-
.../opensaml/saml/saml2/encryption/Encrypter.java | 18 ++++++---
.../messaging/SOAPClientDestinationURILookup.java | 18 +++------
.../SOAPClientPipelineNameMappingFunction.java | 7 ++--
.../SOAPClientPipelineNameMappingPredicate.java | 7 ++--
.../soap/common/AbstractExtensibleSOAPObject.java | 7 ++--
.../soap/messaging/SOAPMessagingSupport.java | 44 ++++++++++++++++++----
13 files changed, 135 insertions(+), 66 deletions(-)
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/messaging/context/SAMLPeerEntityContext.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/messaging/context/SAMLPeerEntityContext.java
index 3a65f6ab7..586e8ef18 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/messaging/context/SAMLPeerEntityContext.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/messaging/context/SAMLPeerEntityContext.java
@@ -251,15 +251,17 @@ public final class SAMLPeerEntityContext extends AbstractAuthenticatableSAMLEnti
*/
@Nullable protected String processSaml1Request(@Nonnull final org.opensaml.saml.saml1.core.Request request) {
String entityId = null;
- if (request.getAttributeQuery() instanceof AttributeQuery q) {
+ final AttributeQuery q = request.getAttributeQuery();
+ if (q != null) {
entityId = processSaml1AttributeQuery(q);
if (entityId != null) {
return entityId;
}
}
- if (request.getAuthorizationDecisionQuery() instanceof AuthorizationDecisionQuery q) {
- entityId = processSaml1AuthorizationDecisionQuery(q);
+ final AuthorizationDecisionQuery aq = request.getAuthorizationDecisionQuery();
+ if (aq != null) {
+ entityId = processSaml1AuthorizationDecisionQuery(aq);
if (entityId != null) {
return entityId;
}
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/messaging/context/SAMLSubjectNameIdentifierContext.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/messaging/context/SAMLSubjectNameIdentifierContext.java
index 6243f475e..2988d91b9 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/messaging/context/SAMLSubjectNameIdentifierContext.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/messaging/context/SAMLSubjectNameIdentifierContext.java
@@ -135,19 +135,24 @@ public final class SAMLSubjectNameIdentifierContext extends BaseContext {
return null;
}
if (samlMessage instanceof org.opensaml.saml.saml2.core.SubjectQuery msg) {
- if (msg.getSubject() instanceof org.opensaml.saml.saml2.core.Subject s) {
+ final org.opensaml.saml.saml2.core.Subject s = msg.getSubject();
+ if (s != null) {
return s.getNameID();
}
return null;
} else if (samlMessage instanceof org.opensaml.saml.saml2.core.AuthnRequest msg) {
- if (msg.getSubject() instanceof org.opensaml.saml.saml2.core.Subject s) {
+ final org.opensaml.saml.saml2.core.Subject s = msg.getSubject();
+ if (s != null) {
return s.getNameID();
}
return null;
} else if (samlMessage instanceof Request msg) {
final org.opensaml.saml.saml1.core.SubjectQuery query = msg.getSubjectQuery();
- if (query != null && query.getSubject() instanceof org.opensaml.saml.saml1.core.Subject s) {
- return s.getNameIdentifier();
+ if (query != null) {
+ final org.opensaml.saml.saml1.core.Subject s = query.getSubject();
+ if (s != null) {
+ return s.getNameIdentifier();
+ }
}
return null;
} else if (samlMessage instanceof LogoutRequest) {
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/messaging/soap/SAMLSOAPClientContextBuilder.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/messaging/soap/SAMLSOAPClientContextBuilder.java
index 8054c382f..0b0893263 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/messaging/soap/SAMLSOAPClientContextBuilder.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/messaging/soap/SAMLSOAPClientContextBuilder.java
@@ -161,7 +161,10 @@ public class SAMLSOAPClientContextBuilder<InboundMessageType extends SAMLObject,
@Nullable public String getPeerEntityID() {
if (peerEntityID != null) {
return peerEntityID;
- } else if (getPeerEntityDescriptor() instanceof EntityDescriptor ed) {
+ }
+
+ final EntityDescriptor ed = getPeerEntityDescriptor();
+ if (ed != null) {
return ed.getEntityID();
} else {
return null;
@@ -188,14 +191,17 @@ public class SAMLSOAPClientContextBuilder<InboundMessageType extends SAMLObject,
@Nullable public QName getPeerEntityRole() {
if (peerEntityRole != null) {
return peerEntityRole;
- } else if (getPeerRoleDescriptor() instanceof RoleDescriptor rd) {
+ }
+
+ final RoleDescriptor rd = getPeerRoleDescriptor();
+ if (rd != null) {
if (rd.getSchemaType() != null) {
return rd.getSchemaType();
}
return rd.getElementQName();
- } else {
- return null;
}
+
+ return null;
}
/**
@@ -218,12 +224,16 @@ public class SAMLSOAPClientContextBuilder<InboundMessageType extends SAMLObject,
@Nullable public EntityDescriptor getPeerEntityDescriptor() {
if (peerEntityDescriptor != null) {
return peerEntityDescriptor;
- } else if (getPeerRoleDescriptor() instanceof RoleDescriptor rd) {
+ }
+
+ final RoleDescriptor rd = getPeerRoleDescriptor();
+ if (rd != null) {
final XMLObject roleParent = rd.getParent();
if (roleParent instanceof EntityDescriptor ed) {
return ed;
}
- }
+ }
+
return null;
}
@@ -431,16 +441,22 @@ public class SAMLSOAPClientContextBuilder<InboundMessageType extends SAMLObject,
final SAMLPeerEntityContext peerContext = parent.getSubcontext(SAMLPeerEntityContext.class);
if (peerContext != null) {
- if (peerContext.getEntityId() instanceof String s) {
- criteria.add(new EntityIdCriterion(s));
+ final String entityID = peerContext.getEntityId();
+ if (entityID != null) {
+ criteria.add(new EntityIdCriterion(entityID));
}
- if (peerContext.getRole() instanceof QName role) {
+
+ final QName role = peerContext.getRole();
+ if (role != null) {
criteria.add(new EntityRoleCriterion(role));
}
final SAMLMetadataContext metadataContext = peerContext.getSubcontext(SAMLMetadataContext.class);
- if (metadataContext != null && metadataContext.getRoleDescriptor() instanceof RoleDescriptor role) {
- criteria.add(new RoleDescriptorCriterion(role));
+ if (metadataContext != null) {
+ final RoleDescriptor rd = metadataContext.getRoleDescriptor();
+ if (rd != null) {
+ criteria.add(new RoleDescriptorCriterion(rd));
+ }
}
}
@@ -449,4 +465,4 @@ public class SAMLSOAPClientContextBuilder<InboundMessageType extends SAMLObject,
}
-}
\ No newline at end of file
+}
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/logic/EntityAttributesPredicate.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/logic/EntityAttributesPredicate.java
index f6266e4d7..1183f8dce 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/logic/EntityAttributesPredicate.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/logic/EntityAttributesPredicate.java
@@ -110,7 +110,8 @@ public class EntityAttributesPredicate implements Predicate<EntityDescriptor> {
@ParameterName(name="trim") final boolean trim,
@ParameterName(name="all") final boolean all) {
- candidateSet = CollectionSupport.copyToList(Constraint.isNotNull(candidates, "Candidate collection cannot be null"));
+ candidateSet = CollectionSupport.copyToList(
+ Constraint.isNotNull(candidates, "Candidate collection cannot be null"));
trimTags = trim;
matchAll = all;
@@ -302,7 +303,8 @@ public class EntityAttributesPredicate implements Predicate<EntityDescriptor> {
* @param exps the regular expressions to match
*/
public void setRegexps(@Nonnull @NonnullElements final Collection<Pattern> exps) {
- regexps = CollectionSupport.copyToList(Constraint.isNotNull(exps, "Regular expressions collection cannot be null"));
+ regexps = CollectionSupport.copyToList(
+ Constraint.isNotNull(exps, "Regular expressions collection cannot be null"));
}
}
@@ -429,11 +431,17 @@ public class EntityAttributesPredicate implements Predicate<EntityDescriptor> {
toMatch = xs.getValue();
} else if (object instanceof XSURI xs) {
toMatch = xs.getURI();
- } else if (object instanceof XSBoolean xs && xs.getValue() instanceof XSBooleanValue val) {
- toMatch = val.getValue() ? "1" : "0";
- toMatchAlt = val.getValue() ? "true" : "false";
- } else if (object instanceof XSInteger xs && xs.getValue() instanceof Integer val) {
- toMatch = val.toString();
+ } else if (object instanceof XSBoolean xs) {
+ final XSBooleanValue val = xs.getValue();
+ if (val != null) {
+ toMatch = val.getValue() ? "1" : "0";
+ toMatchAlt = val.getValue() ? "true" : "false";
+ }
+ } else if (object instanceof XSInteger xs) {
+ final Integer val = xs.getValue();
+ if (val != null) {
+ toMatch = val.toString();
+ }
} else if (object instanceof XSDateTime) {
final Instant dt = ((XSDateTime) object).getValue();
if (dt != null) {
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/logic/InboundMessageSignedPredicate.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/logic/InboundMessageSignedPredicate.java
index c2169ddb0..73c5fcbfd 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/logic/InboundMessageSignedPredicate.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/logic/InboundMessageSignedPredicate.java
@@ -47,8 +47,11 @@ public class InboundMessageSignedPredicate implements Predicate<ProfileRequestCo
/** {@inheritDoc} */
public boolean test(@Nullable final ProfileRequestContext input) {
- if (input != null && input.getInboundMessageContext() instanceof MessageContext mc) {
- return SAMLBindingSupport.isMessageSigned(mc, presenceSatisfies);
+ if (input != null) {
+ final MessageContext mc = input.getInboundMessageContext();
+ if (mc != null) {
+ return SAMLBindingSupport.isMessageSigned(mc, presenceSatisfies);
+ }
}
return false;
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/logic/MetadataNameIdentifierFormatStrategy.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/logic/MetadataNameIdentifierFormatStrategy.java
index 053600fef..ae960999d 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/logic/MetadataNameIdentifierFormatStrategy.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/profile/logic/MetadataNameIdentifierFormatStrategy.java
@@ -94,8 +94,9 @@ public class MetadataNameIdentifierFormatStrategy implements Function<ProfileReq
/** {@inheritDoc} */
@Override
@Nullable public SSODescriptor apply(@Nullable final ProfileRequestContext input) {
- if (input != null && input.getInboundMessageContext() instanceof MessageContext mc) {
- final SAMLPeerEntityContext peerCtx = mc.getSubcontext(SAMLPeerEntityContext.class);
+ if (input != null) {
+ final MessageContext mc = input.getInboundMessageContext();
+ final SAMLPeerEntityContext peerCtx = mc != null ? mc.getSubcontext(SAMLPeerEntityContext.class) : null;
if (peerCtx != null) {
final SAMLMetadataContext mdCtx = peerCtx.getSubcontext(SAMLMetadataContext.class);
if (mdCtx != null && mdCtx.getRoleDescriptor() != null
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/common/SAML2Support.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/common/SAML2Support.java
index d76b74a32..a77a97b71 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/common/SAML2Support.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/common/SAML2Support.java
@@ -131,9 +131,10 @@ public final class SAML2Support {
@Nonnull final Instant now) {
Instant earliestExpiration = candidateTime;
+ final Duration cacheDuration = cacheableObject.getCacheDuration();
- if (cacheableObject.getCacheDuration() instanceof Duration dur && !dur.isNegative()) {
- final Instant elementExpirationTime = now.plus(dur);
+ if (cacheDuration != null && !cacheDuration.isNegative()) {
+ final Instant elementExpirationTime = now.plus(cacheDuration);
if (earliestExpiration == null) {
earliestExpiration = elementExpirationTime;
} else {
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/encryption/Encrypter.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/encryption/Encrypter.java
index f2991a782..9b22640f1 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/encryption/Encrypter.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/encryption/Encrypter.java
@@ -373,7 +373,8 @@ public class Encrypter extends org.opensaml.xmlsec.encryption.support.Encrypter
}
final EncryptedData encryptedData = encryptElement(xmlObject, encryptionKey, encryptionAlgorithmURI, false);
- if (encParams.getKeyInfoGenerator() instanceof KeyInfoGenerator generator) {
+ final KeyInfoGenerator generator = encParams.getKeyInfoGenerator();
+ if (generator != null) {
log.debug("Dynamically generating KeyInfo from Credential for EncryptedData using generator: {}", generator
.getClass().getName());
try {
@@ -451,7 +452,8 @@ public class Encrypter extends org.opensaml.xmlsec.encryption.support.Encrypter
log.debug("Placing EncryptedKey elements inline inside EncryptedData");
- if (encData.getKeyInfo() instanceof KeyInfo keyInfo) {
+ final KeyInfo keyInfo = encData.getKeyInfo();
+ if (keyInfo != null) {
keyInfo.getEncryptedKeys().addAll(encKeys);
}
encElement.setEncryptedData(encData);
@@ -503,7 +505,8 @@ public class Encrypter extends org.opensaml.xmlsec.encryption.support.Encrypter
protected void linkSinglePeerKey(final EncryptedData encData, final EncryptedKey encKey) {
log.debug("Linking single peer EncryptedKey with RetrievalMethod and DataReference");
- if (encData.getKeyInfo() instanceof KeyInfo keyInfo) {
+ final KeyInfo keyInfo = encData.getKeyInfo();
+ if (keyInfo != null) {
// Forward reference from EncryptedData to the EncryptedKey
final RetrievalMethod rm = retrievalMethodBuilder.buildObject();
rm.setURI("#" + encKey.getID());
@@ -512,7 +515,8 @@ public class Encrypter extends org.opensaml.xmlsec.encryption.support.Encrypter
}
// Back reference from the EncryptedKey to the EncryptedData
- if (encKey.getReferenceList() instanceof ReferenceList refList) {
+ final ReferenceList refList = encKey.getReferenceList();
+ if (refList != null) {
final DataReference dr = dataReferenceBuilder.buildObject();
dr.setURI("#" + encData.getID());
refList.getDataReferences().add(dr);
@@ -529,7 +533,8 @@ public class Encrypter extends org.opensaml.xmlsec.encryption.support.Encrypter
log.debug("Linking multiple peer EncryptedKeys with CarriedKeyName and DataReference");
// Get the name of the data encryption key
final List<KeyName> dataEncKeyNames;
- if (encData.getKeyInfo() instanceof KeyInfo keyInfo) {
+ final KeyInfo keyInfo = encData.getKeyInfo();
+ if (keyInfo != null) {
dataEncKeyNames = keyInfo.getKeyNames();
} else {
dataEncKeyNames = CollectionSupport.emptyList();
@@ -563,7 +568,8 @@ public class Encrypter extends org.opensaml.xmlsec.encryption.support.Encrypter
carriedName.setValue(carriedKeyNameValue);
// Back reference from the EncryptedKeys to the EncryptedData
- if (encKey.getReferenceList() instanceof ReferenceList refList) {
+ final ReferenceList refList = encKey.getReferenceList();
+ if (refList != null) {
final DataReference dr = dataReferenceBuilder.buildObject();
dr.setURI("#" + encData.getID());
refList.getDataReferences().add(dr);
diff --git a/opensaml-soap-api/src/main/java/org/opensaml/soap/client/messaging/SOAPClientDestinationURILookup.java b/opensaml-soap-api/src/main/java/org/opensaml/soap/client/messaging/SOAPClientDestinationURILookup.java
index 34f19f9bb..593c891af 100644
--- a/opensaml-soap-api/src/main/java/org/opensaml/soap/client/messaging/SOAPClientDestinationURILookup.java
+++ b/opensaml-soap-api/src/main/java/org/opensaml/soap/client/messaging/SOAPClientDestinationURILookup.java
@@ -34,20 +34,14 @@ public class SOAPClientDestinationURILookup implements Function<MessageContext,
/** {@inheritDoc} */
@Nullable public String apply(@Nullable final MessageContext messageContext) {
- if (messageContext == null) {
- return null;
+ if (messageContext != null && messageContext.getParent() instanceof InOutOperationContext inout) {
+ final SOAPClientContext soap = inout.getSubcontext(SOAPClientContext.class);
+ if (soap != null) {
+ return soap.getDestinationURI();
+ }
}
- if (!(messageContext.getParent() instanceof InOutOperationContext)) {
- return null;
- }
-
- final InOutOperationContext opContext = (InOutOperationContext) messageContext.getParent();
-
- if (opContext.getSubcontext(SOAPClientContext.class) == null) {
- return null;
- }
- return opContext.getSubcontext(SOAPClientContext.class).getDestinationURI();
+ return null;
}
}
\ No newline at end of file
diff --git a/opensaml-soap-api/src/main/java/org/opensaml/soap/client/messaging/SOAPClientPipelineNameMappingFunction.java b/opensaml-soap-api/src/main/java/org/opensaml/soap/client/messaging/SOAPClientPipelineNameMappingFunction.java
index c2d5aee77..8e153b2d0 100644
--- a/opensaml-soap-api/src/main/java/org/opensaml/soap/client/messaging/SOAPClientPipelineNameMappingFunction.java
+++ b/opensaml-soap-api/src/main/java/org/opensaml/soap/client/messaging/SOAPClientPipelineNameMappingFunction.java
@@ -30,10 +30,11 @@ import org.opensaml.messaging.context.navigate.ContextDataLookupFunction;
import org.opensaml.messaging.context.navigate.RecursiveTypedParentContextLookup;
import org.opensaml.soap.client.SOAPClientContext;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import net.shibboleth.shared.annotation.ParameterName;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.primitive.LoggerFactory;
/**
* Function implementation which resolves a delegate function based on the
@@ -45,7 +46,7 @@ import net.shibboleth.shared.logic.Constraint;
public class SOAPClientPipelineNameMappingFunction<T> implements Function<MessageContext, T> {
/** Logger. */
- private Logger log = LoggerFactory.getLogger(SOAPClientPipelineNameMappingFunction.class);
+ @Nonnull private Logger log = LoggerFactory.getLogger(SOAPClientPipelineNameMappingFunction.class);
/** Lookup strategy for the SOAP client context. */
@Nonnull private Function<MessageContext, SOAPClientContext> soapClientContextLookup;
@@ -74,7 +75,7 @@ public class SOAPClientPipelineNameMappingFunction<T> implements Function<Messag
@Nullable @ParameterName(name="lookupStrategy")
final ContextDataLookupFunction<MessageContext, SOAPClientContext> lookupStrategy) {
- delegateMap = Map.copyOf(Constraint.isNotNull(mappings, "Delegate mappings may not be null"));
+ delegateMap = CollectionSupport.copyToMap(Constraint.isNotNull(mappings, "Delegate mappings may not be null"));
if (lookupStrategy != null) {
soapClientContextLookup = lookupStrategy;
diff --git a/opensaml-soap-api/src/main/java/org/opensaml/soap/client/messaging/SOAPClientPipelineNameMappingPredicate.java b/opensaml-soap-api/src/main/java/org/opensaml/soap/client/messaging/SOAPClientPipelineNameMappingPredicate.java
index f800836ff..41181052c 100644
--- a/opensaml-soap-api/src/main/java/org/opensaml/soap/client/messaging/SOAPClientPipelineNameMappingPredicate.java
+++ b/opensaml-soap-api/src/main/java/org/opensaml/soap/client/messaging/SOAPClientPipelineNameMappingPredicate.java
@@ -31,10 +31,11 @@ import org.opensaml.messaging.context.navigate.ContextDataLookupFunction;
import org.opensaml.messaging.context.navigate.RecursiveTypedParentContextLookup;
import org.opensaml.soap.client.SOAPClientContext;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import net.shibboleth.shared.annotation.ParameterName;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.primitive.LoggerFactory;
/**
* Predicate implementation which resolves a delegate predicate based on the
@@ -44,7 +45,7 @@ import net.shibboleth.shared.logic.Constraint;
public class SOAPClientPipelineNameMappingPredicate implements Predicate<MessageContext> {
/** Logger. */
- private Logger log = LoggerFactory.getLogger(SOAPClientPipelineNameMappingPredicate.class);
+ @Nonnull private Logger log = LoggerFactory.getLogger(SOAPClientPipelineNameMappingPredicate.class);
/** Lookup strategy for the SOAP client context. */
@Nonnull private Function<MessageContext, SOAPClientContext> soapClientContextLookup;
@@ -73,7 +74,7 @@ public class SOAPClientPipelineNameMappingPredicate implements Predicate<Message
@Nullable @ParameterName(name="lookupStrategy")
final ContextDataLookupFunction<MessageContext, SOAPClientContext> lookupStrategy) {
- delegateMap = Map.copyOf(Constraint.isNotNull(mappings, "Delegate mappings may not be null"));
+ delegateMap = CollectionSupport.copyToMap(Constraint.isNotNull(mappings, "Delegate mappings may not be null"));
if (lookupStrategy != null) {
soapClientContextLookup = lookupStrategy;
diff --git a/opensaml-soap-api/src/main/java/org/opensaml/soap/common/AbstractExtensibleSOAPObject.java b/opensaml-soap-api/src/main/java/org/opensaml/soap/common/AbstractExtensibleSOAPObject.java
index 6cdc511a5..d7873435c 100644
--- a/opensaml-soap-api/src/main/java/org/opensaml/soap/common/AbstractExtensibleSOAPObject.java
+++ b/opensaml-soap-api/src/main/java/org/opensaml/soap/common/AbstractExtensibleSOAPObject.java
@@ -39,10 +39,10 @@ public abstract class AbstractExtensibleSOAPObject extends AbstractXMLObject imp
AttributeExtensibleXMLObject, ElementExtensibleXMLObject {
/** "Any" type children. */
- private IndexedXMLObjectChildrenList<XMLObject> unknownXMLObjects;
+ @Nonnull private final IndexedXMLObjectChildrenList<XMLObject> unknownXMLObjects;
/** Attributes of the proxied Element. */
- private AttributeMap attributes;
+ @Nonnull private final AttributeMap attributes;
/**
* Constructor.
@@ -73,7 +73,7 @@ public abstract class AbstractExtensibleSOAPObject extends AbstractXMLObject imp
}
/** {@inheritDoc} */
- @Nonnull public List<XMLObject> getUnknownXMLObjects(final QName typeOrName) {
+ @Nonnull public List<XMLObject> getUnknownXMLObjects(@Nonnull final QName typeOrName) {
return (List<XMLObject>) unknownXMLObjects.subList(typeOrName);
}
@@ -81,4 +81,5 @@ public abstract class AbstractExtensibleSOAPObject extends AbstractXMLObject imp
@Nonnull public AttributeMap getUnknownAttributes() {
return attributes;
}
+
}
\ No newline at end of file
diff --git a/opensaml-soap-api/src/main/java/org/opensaml/soap/messaging/SOAPMessagingSupport.java b/opensaml-soap-api/src/main/java/org/opensaml/soap/messaging/SOAPMessagingSupport.java
index 56cfe2fad..99f4f7052 100644
--- a/opensaml-soap-api/src/main/java/org/opensaml/soap/messaging/SOAPMessagingSupport.java
+++ b/opensaml-soap-api/src/main/java/org/opensaml/soap/messaging/SOAPMessagingSupport.java
@@ -19,7 +19,6 @@ package org.opensaml.soap.messaging;
import static org.opensaml.soap.util.SOAPVersion.SOAP_1_1;
-import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -28,6 +27,7 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.xml.namespace.QName;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.collection.LazyList;
import net.shibboleth.shared.logic.Constraint;
@@ -70,12 +70,42 @@ public final class SOAPMessagingSupport {
* @param autoCreate whether to auto-create the context if it does not exist
*
* @return the current SOAP 1.1 context. May be null if autoCreate=false, otherwise will be non-null
+ *
+ * @deprecated
*/
+ @Deprecated(since="5.0.0", forRemoval=true)
@Nullable public static SOAP11Context getSOAP11Context(@Nonnull final MessageContext messageContext,
final boolean autoCreate) {
Constraint.isNotNull(messageContext, "Message context cannot be null");
return messageContext.getSubcontext(SOAP11Context.class, autoCreate);
}
+
+ /**
+ * Get the current {@link SOAP11Context} for the given {@link MessageContext}.
+ *
+ * @param messageContext the current message context
+ *
+ * @return the current SOAP 1.1 context or null
+ */
+ @Nullable public static SOAP11Context getSOAP11Context(@Nonnull final MessageContext messageContext) {
+ Constraint.isNotNull(messageContext, "Message context cannot be null");
+ return messageContext.getSubcontext(SOAP11Context.class);
+ }
+
+ /**
+ * Get the current {@link SOAP11Context} for the given {@link MessageContext}, or create one if
+ * necessary.
+ *
+ * @param messageContext the current message context
+ *
+ * @return the current SOAP 1.1 context.
+ *
+ * @since 5.0.0
+ */
+ @Nonnull public static SOAP11Context ensureSOAP11Context(@Nonnull final MessageContext messageContext) {
+ Constraint.isNotNull(messageContext, "Message context cannot be null");
+ return messageContext.ensureSubcontext(SOAP11Context.class);
+ }
/**
* Register a header as understood.
@@ -297,15 +327,15 @@ public final class SOAPMessagingSupport {
@Nullable final Set<String> targetNodes, final boolean isFinalDestination) {
Constraint.isNotNull(messageContext, "Message context cannot be null");
- final SOAP11Context soap11 = getSOAP11Context(messageContext, false);
+ final SOAP11Context soap11 = getSOAP11Context(messageContext);
// SOAP 1.1 Envelope
- if (soap11 != null && soap11.getEnvelope() != null) {
- return getSOAP11HeaderBlock(soap11.getEnvelope(), headerName, targetNodes, isFinalDestination);
+ if (soap11 != null && soap11.getEnvelope() instanceof Envelope env) {
+ return getSOAP11HeaderBlock(env, headerName, targetNodes, isFinalDestination);
}
//TODO SOAP 1.2 support when object providers are implemented
- return Collections.emptyList();
+ return CollectionSupport.emptyList();
}
/**
@@ -326,7 +356,7 @@ public final class SOAPMessagingSupport {
final Header envelopeHeader = envelope.getHeader();
if (envelopeHeader == null) {
- return Collections.emptyList();
+ return CollectionSupport.emptyList();
}
final LazyList<XMLObject> headers = new LazyList<>();
@@ -398,7 +428,7 @@ public final class SOAPMessagingSupport {
Header envelopeHeader = envelope.getHeader();
if (envelopeHeader == null) {
- envelopeHeader = (Header) XMLObjectProviderRegistrySupport.getBuilderFactory().getBuilder(
+ envelopeHeader = (Header) XMLObjectProviderRegistrySupport.getBuilderFactory().ensureBuilder(
Header.DEFAULT_ELEMENT_NAME).buildObject(Header.DEFAULT_ELEMENT_NAME);
envelope.setHeader(envelopeHeader);
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list