Description
Currently the Regex identify-assertion supports 'lookup' feature. When the output matches any of the strings in the 'lookup' dictionary, it'll replace the string with the new value. If there's no match, it'll replace the original string with empty string.
<provider>
<role>identity-assertion</role>
<name>Regex</name>
<enabled>true</enabled>
<param>
<name>input</name>
<value>(.*)@(.*?)\..*</value>
</param>
<param>
<name>output</name>
<value>{1}_{[2]}</value>
</param>
<param>
<name>lookup</name>
<value>us=USA;ca=CANADA</value>
</param>
</provider>
member@us.apache.org will be translated to /user/member_USA
member@ca.apache.org will be translated to /user/member_CANADA
member@uk.apache.org will be translated to /user/member_
This patch adds an optional field use.original.on.lookup.failure. If sets to true(defaults to false), it'll preserve the original string if there's no match. So after this patch,
member@uk.apache.org will be translated to /user/member_uk