[java-identity-provider COMMIT] in /trunk: idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractExtractionAct...

noreply at shibboleth.net noreply at shibboleth.net
Sun Sep 8 13:55:28 EDT 2013


Author: scantor
Date: Sun Sep  8 13:55:28 2013
New Revision: 4755

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=4755&view=rev
Log:
Add abstract base for username extraction, and add transform support, case folding/trimming.

Added:
    trunk/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractExtractionAction.java   (with props)
Modified:
    trunk/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractSubjectCanonicalizationAction.java
    trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractKerberosTicketFromWssToken.java
    trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractRemoteUser.java
    trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractUserAgentAddress.java
    trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractUserAgentIdentifier.java
    trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractUsernamePasswordFromBasicAuth.java
    trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractUsernamePasswordFromFormRequest.java
    trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractUsernamePasswordFromWssToken.java
    trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractX509CertificateFromWssToken.java
    trunk/idp-authn-impl/src/test/java/net/shibboleth/idp/authn/impl/ExtractRemoteUserTest.java

Modified: trunk/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractSubjectCanonicalizationAction.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractSubjectCanonicalizationAction.java?rev=4755&r1=4754&r2=4755&view=diff
==============================================================================
--- trunk/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractSubjectCanonicalizationAction.java (original)
+++ trunk/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AbstractSubjectCanonicalizationAction.java Sun Sep  8 13:55:28 2013
@@ -73,6 +73,15 @@
     
     /** Match patterns and replacement strings to apply. */
     @Nonnull @NonnullElements private List<Pair<Pattern,String>> transforms;
+
+    /** Convert to uppercase prior to transforms? */
+    private boolean uppercase;
+    
+    /** Convert to lowercase prior to transforms? */
+    private boolean lowercase;
+    
+    /** Trim prior to transforms? */
+    private boolean trim;
     
     /** Constructor. */
     public AbstractSubjectCanonicalizationAction() {
@@ -80,6 +89,10 @@
         
         scCtxLookupStrategy = new ChildContextLookup(SubjectCanonicalizationContext.class, false);
         transforms = Collections.emptyList();
+
+        uppercase = false;
+        lowercase = false;
+        trim = false;
     }
 
     /**
@@ -109,6 +122,39 @@
             transforms.add(new Pair(pattern, Constraint.isNotNull(
                     StringSupport.trimOrNull(p.getSecond()), "Replacement expression cannot be null")));
         }
+    }
+
+    /**
+     * Controls conversion to uppercase prior to applying any transforms.
+     * 
+     * @param flag  uppercase flag
+     */
+    public void setUppercase(boolean flag) {
+        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        
+        uppercase = flag;
+    }
+
+    /**
+     * Controls conversion to lowercase prior to applying any transforms.
+     * 
+     * @param flag lowercase flag
+     */
+    public void setLowercase(boolean flag) {
+        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        
+        lowercase = flag;
+    }
+    
+    /**
+     * Controls whitespace trimming prior to applying any transforms.
+     * 
+     * @param flag trim flag
+     */
+    public void setTrim(boolean flag) {
+        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        
+        trim = flag;
     }
     
     /** {@inheritDoc} */
@@ -169,11 +215,24 @@
      */
     @Nonnull @NotEmpty protected String applyTransforms(@Nonnull @NotEmpty final String input) {
         
+        String s = input;
+        
+        if (trim) {
+            log.debug("{} trimming whitespace of input string '{}'", getLogPrefix(), s);
+            s = input.trim();
+        }
+        
+        if (lowercase) {
+            log.debug("{} converting input string '{}' to lowercase", getLogPrefix(), s);
+            s = input.toLowerCase();
+        } else if (uppercase) {
+            log.debug("{} converting input string '{}' to uppercase", getLogPrefix(), s);
+            s = input.toUpperCase();
+        }
+
         if (transforms.isEmpty()) {
-            return input;
-        }
-        
-        String s = input;
+            return s;
+        }
         
         for (Pair<Pattern,String> p : transforms) {            
             final Matcher m = p.getFirst().matcher(s);

Modified: trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/ExtractKerberosTicketFromWssToken.java

[... 293 lines stripped ...]


More information about the commits mailing list