通过 directory.xml 文件的 ImsManagedObjectAttrValidation 元素来定义 CA IdentityMinder 的验证规则和规则集。
ImsManagedObjectAttrValidation 元素的架构如下所示:
<xs:element name="ImsManagedObjectAttrValidation" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="ValidationRule" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:choice> <xs:element name="Java"> <xs:complexType> <xs:attribute name="class" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="JavaScript"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"/> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="JavaScriptFile"> <xs:complexType> <xs:attribute name="file" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="RegularExpression"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"/> </xs:simpleContent> </xs:complexType> </xs:element> </xs:choice> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="description" type="xs:string" use="optional"/> <xs:attribute name="messageid" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="ValidationRuleSet" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="ValidationRule" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="name" type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="description" type="xs:string" use="optional"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element>
系统会定义以下元素:
包括一个或多个预定义或自定义的验证规则。 验证规则在 ValidationRule 元素中指定。
预定义规则和自定义规则都可以在同样的规则集中显示。 此外,规则集可以包含 Java、JavaScript 和正则表达式实施的任何组合。
系统按照验证规则在 ValidationRuleSet 中显示的顺序执行这些规则。 由此允许实现层叠验证,即一个规则的输出被用作下一个规则的输入。
ValidationRuleSet 与 directory.xml 文件 ImsManagedObjectAttr 元素中的管理对象属性相关联。
指定供 ValidationRuleSet 使用的验证规则。
ValidationRule 必须只包含下列子元素之一:
先前描述的元素的大部分属性是自带说明的。 不过,下列属性需要解释:
有了 Java 验证规则,Java 类必须部署在您的应用程序服务器中的下列根位置:
iam_im.ear\custom
在此根位置的类文件必须是完全限定,但是不需要其他路径信息,例如 com.mycompany.MyJavaImpl。
在 JavaScript 源文件中实施验证规则,文件必须部署在您的应用程序服务器中的下列根位置:
iam_im.ear\custom\validationscripts
例如,在此根位置的 JavaScript 源文件仅仅按照 MyJavaScriptImpl.js 等名称被引用。
此属性中指定的消息 ID 会映射到资源包 IMSExceptions.properties 中的错误消息。
各种类型的验证规则(Java、JavaScript、JavaScriptFile 以及 RegularExpression)都包含 messageid 属性。
示例:内嵌正则表达式
以下示例显示了预定义的电话模式验证规则,其包含在规则集电话格式中。 系统会作为正则表达式实施规则:
<ValidationRule name="Phone pattern" description="+nn nnn-nnn-nnnn" messageid="4001"> <RegularExpression> <![CDATA[ ((\+|\d)*+(\s*|\x2D))?\d\d\d-\d\d\d-\d\d\d\d]]> </RegularExpression> </ValidationRule> <ValidationRuleSet name="Phone format" description= "Verify format +nn nnn-nnn-nnnn"> <ValidationRule name="Phone pattern" /> </ValidationRuleSet>
在上例中,messageid="4001" 映射到 IMSExceptions.properties 的下列行:
4001=Attribute Validation: {0} value must match regular expression nnn-nnn-nnnn.
示例:参阅 JavaScript 文件
下列示例指定规则 EndWithZ_js。 此规则在 JavaScript 中实施,脚本位于文件 EndWithZ.js 中。 包含此规则的规则集不在此示例中显示:
<ValidationRule name="EndWithZ_js" messageid="custom-5001"> <JavaScriptFile file="EndWithZ.js" /> </ValidationRule>
上例中,假定 JavaScript 文件位于下列默认位置:
iam_im.ear\custom\validationscripts
版权所有 © 2013 CA。
保留所有权利。
|
|