Penrose 0.9.8 Attribute Mappings

An attribute in an entry is defined as follows:

<mapping>

  <entry ...>

    <at name="..." rdn="...">
      <constant>...</constant>
    </at>

    <at name="..." rdn="...">
      <variable>...</constant>
    </at>

    <at name="..." rdn="...">
      <expression>...</expression>
    </at>

  </entry>

</mapping>
</at>

Attribute Name

The "name" contains the attribute name, e.g. cn, ou. Penrose currently does not validate the attribute names nor the values against the schema.

Attribute Value

There are 3 types of attribute values:

  • constant
  • variable
  • expression

Constant

An attribute may have a constant value. To define a constant attribute:

<at name="o">
  <constant>Example, Inc.</constant>
</at>

Variable

An attribute may get its values from a field in the data source. All fields can be referred to as a variable in this format: sourceName.fieldName.

<mapping>
  <entry ...>
    ...
    <at name="description">
      <variable>group.description</variable>
    </at>
    <source name="group">
      ...
    </source>
  </entry>
</mapping>

Expression

An attribute can get its values from a BeanShell script/expression.

<mapping>
  <entry ...>
    ...
    <at name="cn">
      <expression>user.firstName+" "+user.lastName</expression>
    </at>
  </entry>
</mapping>

RDN

If the attribute is used as RDN, you need to set rdn="true". Otherwise, by default the rdn is false.

In static entries:

<mapping>
  <entry dn="dc=Example,dc=com">
    ...
    <at name="dc" rdn="true">
      <constant>Example</constant>
    </at>
  </entry>
</mapping>

In dynamic entries:

<mapping>
  <entry dn="cn=...,ou=Groups,dc=Example,dc=com">
    ...
    <at name="cn" rdn="true">
      <variable>group.groupname</variable>
    </at>
    ...
  </entry>
</mapping>