[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