Argomento precedente: Configurazione della convalida a livello di directoryArgomento successivo: Associazione di un set di regole di convalida a un attributo dell'oggetto gestito


Integrazione della convalida a livello di directory con CA IdentityMinder

Definire regole di convalida e i set di regole in CA IdentityMinder attraverso l'elemento ImsManagedObjectAttrValidation del file directory.xml.

Lo schema per l'elemento ImsManagedObjectAttrValidation è il seguente:

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

Vengono definiti i seguenti elementi:

ValidationRuleSet

Consiste di una o più regole di convalida predefinite o personalizzate. Una regola di convalida viene specificata nell'elemento ValidationRule.

Nello stesso set di regole possono comparire sia regole predefinite che regole personalizzate. Inoltre, un set di regole può contenere qualsiasi combinazione di implementazioni Java, JavaScript e di espressioni regolari.

Le regole di convalida vengono eseguite nell'ordine in cui sono visualizzate in ValidationRuleSet. In tal modo, è possibie eseguire la convalida a catena, in cui l'output di una regola viene utilizzato come input per la successiva.

ValidationRuleSet è associato a un attributo dell'oggetto gestito nell'elemento ImsManagedObjectAttr del file directory.xml.

ValidationRule

Specifica una regola di convalida per l'uso in un ValidationRuleSet.

ValidationRule deve contenere solamente uno degli elementi secondari seguenti:

Attributi chiave

La maggior parte degli attributi degli elementi precedentemente descritti sono chiari. Tuttavia, gli attributi seguenti richiedono una spiegazione:

Esempio: espressione regolare incorporata

L'esempio seguente mostra la regola di convalida predefinita Phone pattern inclusa nel set di regole Phone format. La regola viene implementata inline sotto forma di  una espressione regolare:

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

Nell'esempio precedente, messageid="4001" esegue il mapping sulla seguente riga in IMSExceptions.properties:

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

Esempio: riferimento al file JavaScript

L'esempio seguente specifica la regola EndWithZ_js. Questa regola viene implementata in JavaScript e lo script si trova nel file EndWithZ.js. Il set di regole che include la regola non viene mostrato nell'esempio:

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

Nell'esempio precedente, si suppone che il file JavaScript si trovi nel seguente percorso predefinito:

iam_im.ear\custom\validationscripts