[java-identity-provider COMMIT] in /trunk/idp-attribute-filter-impl/src: main/java/net/shibboleth/idp/attribute/filte...
noreply at shibboleth.net
noreply at shibboleth.net
Wed Aug 17 16:06:33 BST 2011
Author: rdw
Date: Wed Aug 17 16:06:33 2011
New Revision: 4022
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=4022&view=rev
Log:
Scripted Criterion. Move to being an Initializable, Unmodifiable Component with setters.
Modified:
trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filtering/impl/matcher/ScriptedMatcher.java
trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filtering/impl/policy/ScriptedCriterion.java
trunk/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filtering/impl/policy/TestScripted.java
Modified: trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filtering/impl/matcher/ScriptedMatcher.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filtering/impl/matcher/ScriptedMatcher.java?rev=4022&r1=4021&r2=4022&view=diff
==============================================================================
--- trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filtering/impl/matcher/ScriptedMatcher.java (original)
+++ trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filtering/impl/matcher/ScriptedMatcher.java Wed Aug 17 16:06:33 2011
@@ -33,7 +33,6 @@
import net.shibboleth.idp.attribute.filtering.AttributeFilteringException;
import net.shibboleth.idp.attribute.filtering.AttributeValueMatcher;
-import org.opensaml.util.Assert;
import org.opensaml.util.StringSupport;
import org.opensaml.util.component.ComponentInitializationException;
import org.opensaml.util.component.InitializableComponent;
@@ -187,6 +186,11 @@
scriptContext.setAttribute("filterContext", filterContext, ScriptContext.ENGINE_SCOPE);
scriptContext.setAttribute("attribute", attribute, ScriptContext.ENGINE_SCOPE);
final Object result;
+
+ if (!isInitialized()) {
+ throw new AttributeFilteringException("ScriptedMatcher has not been initialized");
+ }
+
try {
if (compiledScript != null) {
result = compiledScript.eval(scriptContext);
Modified: trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filtering/impl/policy/ScriptedCriterion.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filtering/impl/policy/ScriptedCriterion.java?rev=4022&r1=4021&r2=4022&view=diff
==============================================================================
--- trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filtering/impl/policy/ScriptedCriterion.java (original)
+++ trunk/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filtering/impl/policy/ScriptedCriterion.java Wed Aug 17 16:06:33 2011
@@ -27,9 +27,13 @@
import net.jcip.annotations.ThreadSafe;
import net.shibboleth.idp.attribute.filtering.AttributeFilterContext;
-
-import org.opensaml.util.Assert;
+import net.shibboleth.idp.attribute.filtering.AttributeFilteringException;
+
import org.opensaml.util.StringSupport;
+import org.opensaml.util.component.ComponentInitializationException;
+import org.opensaml.util.component.InitializableComponent;
+import org.opensaml.util.component.UnmodifiableComponent;
+import org.opensaml.util.component.UnmodifiableComponentException;
import org.opensaml.util.criteria.AbstractBiasedEvaluableCriterion;
import org.opensaml.util.criteria.EvaluationException;
import org.slf4j.Logger;
@@ -44,54 +48,70 @@
* context allowing arbitrary complexity.
*/
@ThreadSafe
-public class ScriptedCriterion extends AbstractBiasedEvaluableCriterion<AttributeFilterContext> {
+public class ScriptedCriterion extends AbstractBiasedEvaluableCriterion<AttributeFilterContext> implements
+ InitializableComponent, UnmodifiableComponent {
/** Class logger. */
private final Logger log = LoggerFactory.getLogger(ScriptedCriterion.class);
/** The scripting language. */
- private final String scriptLanguage;
+ private String scriptLanguage;
/** The script to execute. */
- private final String script;
+ private String script;
/** The script engine to execute the script. */
- private final ScriptEngine scriptEngine;
+ private ScriptEngine scriptEngine;
/** The compiled form of the script, if the script engine supports compiling. */
- private final CompiledScript compiledScript;
-
- /**
- * Constructor.
- *
- * @param theLanguage the scripting language
- * @param theScript the script to execute
- */
- public ScriptedCriterion(final String theLanguage, final String theScript) {
- scriptLanguage = theLanguage;
-
- final String trimmedScript = StringSupport.trimOrNull(theScript);
- Assert.isNotNull(trimmedScript, "Script for ScriptedCriterion must be non-null and non empty");
- script = trimmedScript;
+ private CompiledScript compiledScript;
+
+ /** Initialization state. */
[... 214 lines stripped ...]
More information about the commits
mailing list