[java-shib-common COMMIT] in /branches/REL_1: doc/RELEASE-NOTES.txt src/main/java/edu/internet2/middleware/shibboleth...
noreply at shibboleth.net
noreply at shibboleth.net
Fri Jan 15 20:31:25 EST 2016
Author: putmanb
Date: Fri Jan 15 20:31:24 2016
New Revision: 1137
URL: http://svn.shibboleth.net/view/java-shib-common?rev=1137&view=rev
Log:
SC-204: Update RelyingPartySecurityPolicyResolver to evaluate anonymous relying party case
Modified:
branches/REL_1/doc/RELEASE-NOTES.txt
branches/REL_1/src/main/java/edu/internet2/middleware/shibboleth/common/relyingparty/RelyingPartySecurityPolicyResolver.java
Modified: branches/REL_1/doc/RELEASE-NOTES.txt
URL: http://svn.shibboleth.net/view/java-shib-common/branches/REL_1/doc/RELEASE-NOTES.txt?rev=1137&r1=1136&r2=1137&view=diff
==============================================================================
--- branches/REL_1/doc/RELEASE-NOTES.txt (original)
+++ branches/REL_1/doc/RELEASE-NOTES.txt Fri Jan 15 20:31:24 2016
@@ -1,6 +1,7 @@
Changes in Release 1.4.5
=============================================
[SC-203] - Metadata Scope extension XMLObject impl fails on invalid regular expression value
+[SC-204] - Update RelyingPartySecurityPolicyResolver to evaluate anonymous relying party case
Changes in Release 1.4.4
=============================================
Modified: branches/REL_1/src/main/java/edu/internet2/middleware/shibboleth/common/relyingparty/RelyingPartySecurityPolicyResolver.java
URL: http://svn.shibboleth.net/view/java-shib-common/branches/REL_1/src/main/java/edu/internet2/middleware/shibboleth/common/relyingparty/RelyingPartySecurityPolicyResolver.java?rev=1137&r1=1136&r2=1137&view=diff
==============================================================================
--- branches/REL_1/src/main/java/edu/internet2/middleware/shibboleth/common/relyingparty/RelyingPartySecurityPolicyResolver.java (original)
+++ branches/REL_1/src/main/java/edu/internet2/middleware/shibboleth/common/relyingparty/RelyingPartySecurityPolicyResolver.java Fri Jan 15 20:31:24 2016
@@ -19,20 +19,31 @@
import java.util.Collections;
+import org.opensaml.saml2.metadata.EntityDescriptor;
+import org.opensaml.saml2.metadata.provider.MetadataProvider;
+import org.opensaml.saml2.metadata.provider.MetadataProviderException;
import org.opensaml.ws.message.MessageContext;
import org.opensaml.ws.security.SecurityPolicy;
import org.opensaml.ws.security.SecurityPolicyResolver;
import org.opensaml.xml.security.SecurityException;
import org.opensaml.xml.util.DatatypeHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* A security policy resolver that selects the active security policy based on the inbound message issuer ID and the
* communication profile used.
*/
public class RelyingPartySecurityPolicyResolver implements SecurityPolicyResolver {
+
+ /** Logger. */
+ private Logger log = LoggerFactory.getLogger(RelyingPartySecurityPolicyResolver.class);
/** Relying party configuration manager. */
private RelyingPartyConfigurationManager rpConfigManager;
+
+ /** Metadata Provider. */
+ private MetadataProvider metadataProvider;
/**
* Constructor.
@@ -41,11 +52,24 @@
* not be null
*/
public RelyingPartySecurityPolicyResolver(RelyingPartyConfigurationManager configManager) {
+ this(configManager, null);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param configManager configuration manager used to resolve relying party specific configuration information, may
+ * not be null
+ * @param mdProvider metadata provider used to resolve relying party metadata, may be null
+ */
+ public RelyingPartySecurityPolicyResolver(RelyingPartyConfigurationManager configManager,
+ MetadataProvider mdProvider) {
if (configManager == null) {
- throw new IllegalArgumentException("Relying party configuraiton manager may not be null");
+ throw new IllegalArgumentException("Relying party configuration manager may not be null");
}
rpConfigManager = configManager;
+ metadataProvider = mdProvider;
}
/** {@inheritDoc} */
@@ -57,23 +81,47 @@
public SecurityPolicy resolveSingle(MessageContext messageContext) throws SecurityException {
String peerEntityId = messageContext.getInboundMessageIssuer();
if (DatatypeHelper.isEmpty(peerEntityId)) {
- throw new SecurityException(
- "Unable to select security policy, ID of the peer unknown.");
+ throw new SecurityException("Unable to select security policy, ID of the peer unknown.");
}
-
- RelyingPartyConfiguration rpConfig = rpConfigManager.getRelyingPartyConfiguration(peerEntityId);
+
+ RelyingPartyConfiguration rpConfig = null;
+
+ if (metadataProvider != null) {
+ try {
+ EntityDescriptor entityDescriptor = metadataProvider.getEntityDescriptor(peerEntityId);
+ if (entityDescriptor == null) {
+ log.warn("No metadata for relying party {}, treating party as anonymous for security policy",
+ peerEntityId);
[... 36 lines stripped ...]
More information about the commits
mailing list