[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