Tópico anterior: Como configurar a validação em nível de diretórioPróximo tópico: Associação de um conjunto de regras de validação a um atributo de objeto gerenciado


Integração da validação em nível de diretório ao CA IdentityMinder

Defina regras e conjuntos de regras de validação para o CA IdentityMinder por meio do elemento ImsManagedObjectAttrValidation do arquivo directory.xml.

O esquema para o elemento ImsManagedObjectAttrValidation é o seguinte:

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

Os seguintes elementos são definidos:

ValidationRuleSet

Consiste em uma ou mais regras de validação predefinidas ou personalizadas. Uma regra de validação é especificada no elemento ValidationRule.

As regras predefinidas e as regras personalizadas podem aparecer no mesmo conjunto de regras. Além disso, um conjunto de regras pode conter qualquer combinação de implementações Java, JavaScript e expressão regular.

As regras de validação são executadas na ordem em que elas aparecem em ValidationRuleSet. Isso permite uma validação em cascata, onde a saída de uma regra é usado como entrada da próxima.

ValidationRuleSet é associado a um atributo de objeto gerenciado no elemento ImsManagedObjectAttr do arquivo directory.xml.

ValidationRule

Especifica uma regra de validação para uso em um ValidationRuleSet.

ValidationRule deve conter apenas um dos seguintes subelementos:

Atributos da chave

A maioria dos atributos dos elementos descritos anteriormente é autoexplicativa. No entanto, os seguintes atributos necessitam de explicação:

Exemplo: expressão regular embutida

O exemplo a seguir mostra a regra de validação padrão Telefone predefinida, que é incluída no formato Telefone do conjunto de regras. A regra é implementada em linha como uma expressão regular:

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

No exemplo anterior, messageid="4001" é mapeado para a linha a seguir em IMSExceptions.properties:

4001=Attribute Validation: {0} value must match regular expression
                                                     nnn-nnn-nnnn.

Exemplo: referência ao arquivo JavaScript

O exemplo abaixo especifica a regra EndWithZ_js. Essa regra é implementada no JavaScript e o script está localizado no arquivo EndWithZ.js. O conjunto de regras que inclui a regra não é exibido no exemplo:

<ValidationRule name="EndWithZ_js" messageid="custom-5001">
   <JavaScriptFile file="EndWithZ.js" />
</ValidationRule>

No exemplo anterior, é pressuposto que o arquivo JavaScript esteja no seguinte local padrão:

iam_im.ear\custom\validationscripts