上一主题: 如何配置目录级别验证下一主题: 验证规则集与管理对象属性的关联


将目录级别验证与 CA IdentityMinder 集成

通过 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>

系统会定义以下元素:

ValidationRuleSet

包括一个或多个预定义或自定义的验证规则。 验证规则在 ValidationRule 元素中指定。

预定义规则和自定义规则都可以在同样的规则集中显示。 此外,规则集可以包含 Java、JavaScript 和正则表达式实施的任何组合。

系统按照验证规则在 ValidationRuleSet 中显示的顺序执行这些规则。 由此允许实现层叠验证,即一个规则的输出被用作下一个规则的输入。

ValidationRuleSet 与 directory.xml 文件 ImsManagedObjectAttr 元素中的管理对象属性相关联。

ValidationRule

指定供 ValidationRuleSet 使用的验证规则。

ValidationRule 必须只包含下列子元素之一

关键属性

先前描述的元素的大部分属性是自带说明的。 不过,下列属性需要解释:

示例:内嵌正则表达式

以下示例显示了预定义的电话模式验证规则,其包含在规则集电话格式中。 系统会作为正则表达式实施规则:  

<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