[java-identity-provider COMMIT] /trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/PopulateA...
noreply at shibboleth.net
noreply at shibboleth.net
Mon Aug 18 21:00:36 EDT 2014
Author: scantor
Date: Mon Aug 18 21:00:36 2014
New Revision: 6443
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=6443&view=rev
Log:
IDP-375 - Custom formatting of DateTime fields
Modified:
trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/PopulateAuditContext.java
Modified: trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/PopulateAuditContext.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/PopulateAuditContext.java?rev=6443&r1=6442&r2=6443&view=diff
==============================================================================
--- trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/PopulateAuditContext.java (original)
+++ trunk/idp-profile-impl/src/main/java/net/shibboleth/idp/profile/audit/impl/PopulateAuditContext.java Mon Aug 18 21:00:36 2014
@@ -34,6 +34,7 @@
import net.shibboleth.utilities.java.support.logic.ConstraintViolationException;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import org.joda.time.DateTime;
import org.opensaml.messaging.context.navigate.ChildContextLookup;
import org.opensaml.profile.action.ActionSupport;
import org.opensaml.profile.action.EventIds;
@@ -70,6 +71,9 @@
/** Fields being audited, to optimize extraction.. */
@Nonnull @NonnullElements private Set<String> fieldsToExtract;
+
+ /** Formatting string for {@link DateTime} fields. */
+ @Nullable private String dateTimeFormat;
/** {@link AuditContext} to populate. */
@Nullable private AuditContext auditCtx;
@@ -156,6 +160,17 @@
}
}
+ /**
+ * Set the {@link DateTime} formatting string to apply when extracting {@link DateTime}-valued fields.
+ *
+ * @param format formatting string
+ */
+ public void setDateTimeFormat(@Nonnull @NotEmpty final String format) {
+ ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+
+ dateTimeFormat = StringSupport.trimOrNull(format);
+ }
+
/** {@inheritDoc} */
@Override
protected boolean doPreExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
@@ -174,6 +189,7 @@
return true;
}
+// Checkstyle: CyclomaticComplexity OFF
/** {@inheritDoc} */
@Override
protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
@@ -192,15 +208,25 @@
entry.getKey());
for (final Object value : (Collection) values) {
if (value != null) {
- auditCtx.getFieldValues(entry.getKey()).add(value.toString());
+ if (value instanceof DateTime) {
+ auditCtx.getFieldValues(entry.getKey()).add(((DateTime) value).toString(
+ dateTimeFormat));
+ } else {
+ auditCtx.getFieldValues(entry.getKey()).add(value.toString());
+ }
}
}
} else {
log.debug("{} Adding 1 value for field '{}'", getLogPrefix(), entry.getKey());
- auditCtx.getFieldValues(entry.getKey()).add(values.toString());
+ if (values instanceof DateTime) {
+ auditCtx.getFieldValues(entry.getKey()).add(((DateTime) values).toString(dateTimeFormat));
+ } else {
+ auditCtx.getFieldValues(entry.getKey()).add(values.toString());
+ }
}
}
}
}
+// Checkstyle: CyclomaticComplexity ON
}
More information about the commits
mailing list