[java-opensaml COMMIT] in /trunk/opensaml-saml-impl/src: main/java/org/opensaml/saml/metadata/resolver/impl/MetadataQ...

noreply at shibboleth.net noreply at shibboleth.net
Fri Oct 31 16:12:22 EDT 2014


Author: putmanb
Date: Fri Oct 31 16:12:22 2014
New Revision: 4121

URL: http://svn.shibboleth.net/view/java-opensaml?rev=4121&view=rev
Log:
Add some support for entityID transform functions in the request URL builder functions.

Added:
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/MetadataQueryProtocolSHA1Transformer.java   (with props)
    trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/impl/MetadataQueryProtocolSHA1TransformerTest.java   (with props)
Modified:
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/MetadataQueryProtocolRequestURLBuilder.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/TemplateRequestURLBuilder.java
    trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/impl/MetadataQueryProtocolRequestURLBuilderTest.java
    trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/impl/TemplateRequestURLBuilderTest.java

Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/MetadataQueryProtocolRequestURLBuilder.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/MetadataQueryProtocolRequestURLBuilder.java?rev=4121&r1=4120&r2=4121&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/MetadataQueryProtocolRequestURLBuilder.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/MetadataQueryProtocolRequestURLBuilder.java Fri Oct 31 16:12:22 2014
@@ -43,23 +43,48 @@
     /** The request base URL per the specification. */
     private String base;
     
+    /** Function which transforms the entityID prior to substitution into the URL. */
+    private Function<String, String> transformer;
+    
     /**
      * Constructor.
      *
      * @param baseURL the base URL for the metadata responder
      */
     public MetadataQueryProtocolRequestURLBuilder(@Nonnull @NotEmpty final String baseURL) {
+        this(baseURL, null);
+    }
+    
+    /**
+     * Constructor.
+     *
+     * @param baseURL the base URL for the metadata responder
+     * @param transform function which transforms the entityID prior to URL construction substitution, may be null
+     */
+    public MetadataQueryProtocolRequestURLBuilder(@Nonnull @NotEmpty final String baseURL, 
+            @Nullable final Function<String,String> transform) {
         base = Constraint.isNotNull(StringSupport.trimOrNull(baseURL), "Base URL was null or empty");
         if (!base.endsWith("/")) {
             log.debug("Base URL did not end in a trailing '/', one will be added");
             base = base + "/";
         }
         log.debug("Effective base URL value was: {}", base);
+        
+        transformer = transform;
     }
 
     /** {@inheritDoc} */
-    @Nullable public String apply(@Nonnull String entityID) {
-        Constraint.isNotNull(entityID, "Entity ID was null");
+    @Nullable public String apply(@Nonnull String input) {
+        String entityID = Constraint.isNotNull(input, "Entity ID was null");
+        
+        if (transformer != null) {
+            entityID = transformer.apply(entityID);
+            log.debug("Transformed entityID is '{}'", entityID);
+            if (entityID == null) {
+                log.debug("Transformed entityID was null");
+                return null;
+            }
+        }
         
         try {
             String result = base +  "entities/" + URISupport.doURLEncode(entityID);

Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/TemplateRequestURLBuilder.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/TemplateRequestURLBuilder.java?rev=4121&r1=4120&r2=4121&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/TemplateRequestURLBuilder.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/TemplateRequestURLBuilder.java Fri Oct 31 16:12:22 2014
@@ -64,6 +64,9 @@
     /** The template text, for logging purposes. */
     private String templateText;
     
+    /** Function which transforms the entityID prior to substitution into the template. */
+    private Function<String, String> transformer;
+    
     /** Flag indicating whether to URL-encode the entity ID value before substitution. */
     private boolean encodeEntityID;
     
@@ -78,7 +81,22 @@
      */
     public TemplateRequestURLBuilder(@Nonnull final VelocityEngine engine, 
             @Nonnull @NotEmpty final String templateString, final boolean encoded) {
-        this(engine, templateString, encoded, StandardCharsets.US_ASCII);

[... 128 lines stripped ...]


More information about the commits mailing list