The Shibboleth IdP V4 software will leave support on September 1, 2024.

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Current »

The predicate bean named shibboleth.Conditions.Scripted executes a JSR-223 scriptlet against a ProfileRequestContext to produce a true/false result.

Configuration

A Scripted Predicate is instantiated using one of two static factory methods (rather than created directly by invoking a Java constructor), so they have a different syntax in Spring. You can refer to the javadoc for complete details.

 inlineScript

If provided with one parameter, this is the script to be executed. If two parameters are the provided, then the first is the name of the (installed) JSR-223 lanuage and the second is the script.

<bean id="MyCondition" parent="shibboleth.Conditions.Scripted" factory-method="inlineScript"
		p:customObject-ref="MyCustomObject" p:hideExceptions="true">
    <constructor-arg>
        <value>
        <![CDATA[
			// Your script here
			true;
         ]]>
        </value>
    </constructor-arg>
</bean>
 resourceScript

If provided with one parameter this is the location (usually the file name) of the resource (file) containing the script. If two parameters are provided, the the first is the name of the (installed) JSR-223 lanuage and the second is the location.

<bean id="MyCondition" parent="shibboleth.Conditions.Scripted" factory-method="resourceScript"
 	 	 	c:_0="%{idp.home}/conf/script.js" c:_1="javascript" />

Reference

 Bean Properties

The following additional bean properties are available:

Name

Type

Default

Description

customObject

Bean/Reference

An object to make available to the script via a variable named custom

returnOnError

boolean

false

What to return if the script fails

hideExceptions

boolean

false

If true, then the returnOnError value is returned if the script raises an exception, otherwise the exception is passed out

 Script Context

The script environment will have two variables populated:

  • input - the ProfileRequestContext being evaluated

  • custom - the object set via the customObject property, if any

  • No labels