Author: emuckenhuber
Date: 2007-09-12 04:31:16 -0400 (Wed, 12 Sep 2007)
New Revision: 8237
Added:
docs/trunk/referenceGuide/en/images/identityportlets/
docs/trunk/referenceGuide/en/images/identityportlets/illustration.png
docs/trunk/referenceGuide/en/images/identityportlets/lost_password.png
docs/trunk/referenceGuide/en/images/identityportlets/pending_users.png
docs/trunk/referenceGuide/en/images/identityportlets/role_management.png
docs/trunk/referenceGuide/en/images/identityportlets/user_management_start.png
docs/trunk/referenceGuide/en/images/identityportlets/user_register.png
docs/trunk/referenceGuide/en/modules/identityportlets.xml
Modified:
docs/trunk/referenceGuide/en/master.xml
docs/trunk/referenceGuide/en/modules/identity.xml
Log:
- initial commit of Identity Portlet chapter
Added: docs/trunk/referenceGuide/en/images/identityportlets/illustration.png
===================================================================
(Binary files differ)
Property changes on:
docs/trunk/referenceGuide/en/images/identityportlets/illustration.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: docs/trunk/referenceGuide/en/images/identityportlets/lost_password.png
===================================================================
(Binary files differ)
Property changes on:
docs/trunk/referenceGuide/en/images/identityportlets/lost_password.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: docs/trunk/referenceGuide/en/images/identityportlets/pending_users.png
===================================================================
(Binary files differ)
Property changes on:
docs/trunk/referenceGuide/en/images/identityportlets/pending_users.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: docs/trunk/referenceGuide/en/images/identityportlets/role_management.png
===================================================================
(Binary files differ)
Property changes on:
docs/trunk/referenceGuide/en/images/identityportlets/role_management.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: docs/trunk/referenceGuide/en/images/identityportlets/user_management_start.png
===================================================================
(Binary files differ)
Property changes on:
docs/trunk/referenceGuide/en/images/identityportlets/user_management_start.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: docs/trunk/referenceGuide/en/images/identityportlets/user_register.png
===================================================================
(Binary files differ)
Property changes on:
docs/trunk/referenceGuide/en/images/identityportlets/user_register.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: docs/trunk/referenceGuide/en/master.xml
===================================================================
--- docs/trunk/referenceGuide/en/master.xml 2007-09-12 08:25:28 UTC (rev 8236)
+++ docs/trunk/referenceGuide/en/master.xml 2007-09-12 08:31:16 UTC (rev 8237)
@@ -18,6 +18,7 @@
<!ENTITY themeandlayouts SYSTEM "modules/themeandlayouts.xml">
<!ENTITY ajax SYSTEM "modules/ajax.xml">
<!ENTITY identity SYSTEM "modules/identity.xml">
+ <!ENTITY identityportlets SYSTEM "modules/identityportlets.xml">
<!ENTITY authentication SYSTEM "modules/authentication.xml">
<!ENTITY ldap SYSTEM "modules/ldap.xml">
<!ENTITY sso SYSTEM "modules/sso.xml">
@@ -82,6 +83,7 @@
<!-- WSRP --> &wsrp;
<!-- Security administration --> &security;
<!-- Identity --> &identity;
+ <!-- Identity Portlets --> &identityportlets;
<!-- Authentication --> &authentication;
<!-- LDAP --> &ldap;
<!-- SSO --> &sso;
Modified: docs/trunk/referenceGuide/en/modules/identity.xml
===================================================================
--- docs/trunk/referenceGuide/en/modules/identity.xml 2007-09-12 08:25:28 UTC (rev 8236)
+++ docs/trunk/referenceGuide/en/modules/identity.xml 2007-09-12 08:31:16 UTC (rev 8237)
@@ -695,7 +695,7 @@
</sect3>
</sect2>
</sect1>
- <sect1>
+ <sect1 id="user_profile_configuration">
<title>User profile configuration</title>
<para>UserProfileModule has additional configuration file that defines user
properties. It is specified in configuration in:</para>
<programlisting>
Added: docs/trunk/referenceGuide/en/modules/identityportlets.xml
===================================================================
--- docs/trunk/referenceGuide/en/modules/identityportlets.xml (rev
0)
+++ docs/trunk/referenceGuide/en/modules/identityportlets.xml 2007-09-12 08:31:16 UTC (rev
8237)
@@ -0,0 +1,817 @@
+<chapter id="identityportlets">
+ <chapterinfo>
+ <author>
+ <firstname>Emanuel</firstname>
+ <surname>Muckenhuber</surname>
+ <email>emuckenh(a)redhat.com</email>
+ </author>
+ </chapterinfo>
+ <title>JBoss Portal Identity Portlets</title>
+ <sect1 id="identity_portlet_introduction">
+ <title>Introduction</title>
+ <para>
+ Since JBoss Portal 2.6.2 two new Identity User Portlets are
+ shipped by default:
+ <itemizedlist>
+ <listitem>
+ <para>The User Portlet</para>
+ </listitem>
+ <listitem>
+ <para>The User Management Portlet</para>
+ </listitem>
+ </itemizedlist>
+ As the names indicate - the User Portlet is responsible for
+ actions related to the end user. Whereas the User Management
+ Portlet contains all the functionality for managing users and roles.
+ </para>
+ <warning>
+ The Identity Portlets will evolve over time! Therefore usage and
+ configuration can change.
+ </warning>
+ <sect2>
+ <title>Features</title>
+ <para>
+ The Identity User Portlets provide features like:
+ <itemizedlist>
+ <listitem>
+ <para>Captcha support</para>
+ </listitem>
+ <listitem>
+ <para>Lost password</para>
+ </listitem>
+ <listitem>
+ <para>jBPM based user registration</para>
+ </listitem>
+ <listitem>
+ <para>User and role management</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </sect2>
+ </sect1>
+ <sect1>
+ <title>Configuration</title>
+ <para>
+ This section covers the configuration of the Identity
+ Portlets.
+ </para>
+ <sect2 id="identity_portlet_configuration_captcha">
+ <title>Captcha support</title>
+ <para>
+ CAPTCHA is an acronym for Completely Automated Public
+ Turing test to tell Computers and Humans Apart. They are
+ providing a mechanism to prevent automated programs
+ (like bots) of using different services. The User
+ Portlet uses JCaptcha for providing a challenge-response
+ test.
+ </para>
+ <note>
+ By default the captcha service needs a XServer to
+ generate the images. For using the captcha service
+ without a XServer make sure you run the jvm with the
+ following option:
+ <programlisting>-Djava.awt.headless=true</programlisting>
+ </note>
+ <para></para>
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center"
+ fileref="images/identityportlets/user_register.png"
format="png" />
+ </imageobject>
+ <caption>
+ <para>The registration page with captcha.</para>
+ </caption>
+ </mediaobject>
+ <para>
+ The captcha support can be enabled by changing the
+ portlet preference 'captcha' to 'true'. If enabling
+ captcha it will be used for the registration and lost
+ password action.
+ </para>
+ <programlisting><![CDATA[...
+<portlet>
+...
+ <display-name>User portlet</display-name>
+...
+ <portlet-preferences>
+ <preference>
+ <name>captcha</name>
+ <value>true</value>
+ </preference>
+ </portlet-preferences>
+</portlet>
+...]]></programlisting>
+ </sect2>
+ <sect2 id="identity_portlet_configuration_lost_password">
+ <title>Lost password</title>
+ <para>
+ The lost password feature enables the end user to reset
+ his password by entering his username.
+ </para>
+ <note>
+ This feature requires a properly configured MailModule.
+ </note>
+ <para></para>
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center"
+ fileref="images/identityportlets/lost_password.png"
format="png" />
+ </imageobject>
+ <caption>
+ <para>
+ The lost password page with captcha enabled.
+ </para>
+ </caption>
+ </mediaobject>
+ <para>
+ The lost password feature can be enabled by changing the
+ portlet preference 'lostPassword' to 'true'. If captcha
+ is enabled it will be also used for verifying the lost
+ password action.
+ </para>
+ <programlisting><![CDATA[...
+<portlet>
+...
+ <display-name>User portlet</display-name>
+...
+ <portlet-preferences>
+ <preference>
+ <name>lostPassword</name>
+ <value>true</value>
+ </preference>
+ </portlet-preferences>
+</portlet>
+...]]></programlisting>
+ </sect2>
+ <sect2 id="identity_portlet_configuration_reset_password">
+ <title>Reset password</title>
+ <para>
+ The reset password feature is similar to the lost
+ password feature, but it is used in the User Management
+ Portlet to reset the password of a user. That means
+ changing the password of a user is slightly simplified,
+ because a random password will be generated and sent to
+ the users e-mail address.
+ </para>
+ <programlisting><![CDATA[...
+<portlet>
+...
+ <display-name>User management portlet</display-name>
+...
+ <portlet-preferences>
+ <preference>
+ <name>resetPassword</name>
+ <value>true</value>
+ </preference>
+ </portlet-preferences>
+</portlet>
+...]]></programlisting>
+ </sect2>
+ <sect2 id="identity_portlet_configuration_jbpm">
+ <title>jBPM based user registration</title>
+ <para>
+ JBoss Portal supports by default three different
+ subscription modes:
+ <itemizedlist>
+ <listitem>
+ <para>
+ Automatic subscription (no jBPM required)
+ </para>
+ </listitem>
+ <listitem>
+ <para>E-Mail validation</para>
+ </listitem>
+ <listitem>
+ <para>E-Mail validation and approval</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <note>
+ It is not recommended to change the subscription mode
+ while runtime.
+ </note>
+ <para></para>
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center"
+ fileref="images/identityportlets/pending_users.png"
format="png" />
+ </imageobject>
+ <caption>
+ <para>
+ Approve or reject pending registrations
(<emphasis>jbp_identity_validation_approval_workflow</emphasis>).
+ </para>
+ </caption>
+ </mediaobject>
+
+ </sect2>
+ <sect2 id="identity_portlet_configuration_file">
+ <title>The configuration file</title>
+ <para>
+ The Identity Portlets use some metadata which can be
+ easily changed in the main configuration file, which is
+ shown in the following listing:
+ </para>
+ <programlisting><![CDATA[<identity-ui-configuration>
+
+ <subscription-mode>automatic</subscription-mode>
+ <admin-subscription-mode>automatic</admin-subscription-mode>
+ <overwrite-workflow>false</overwrite-workflow>
+ <email-domain>jboss.org</email-domain>
+ <email-from>no-reply(a)jboss.com</email-from>
+ <password-generation-characters>a...Z</password-generation-characters>
+ <default-roles>
+ <role>User</role>
+ </default-roles>
+
+ <!-- user interface components -->
+ <ui-components>
+ <ui-component name="givenname">
+ <property-ref>user.name.given</property-ref>
+ </ui-component>
+ <ui-component name="familyname">
+ <property-ref>user.name.family</property-ref>
+ </ui-component>
+ ...
+</identity-ui-configuration>]]></programlisting>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="bold">
+ subscription-mode:
+ </emphasis>
+ defines the User Portlet registration
+ process
+ <itemizedlist>
+ <listitem>
+ <emphasis>automatic:</emphasis> no validation nor approval
(default)
+ </listitem>
+ <listitem>
+ <emphasis>jbp_identity_validation_workflow:</emphasis> e-mail
validation, no approval
+ </listitem>
+ <listitem>
+ <emphasis>jbp_identity_validation_approval_workflow:</emphasis>
e-mail validation and approval
+ </listitem>
+ <listitem>
+ <emphasis>custom:</emphasis> Take a look at Customizing the
workflow
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">
+ admin-subscription-mode:
+ </emphasis>
+ jBPM process used in the User Management Portlet for creating users
+ <itemizedlist>
+ <listitem>
+ <emphasis>automatic:</emphasis>
+ no validation nor approval (default)
+ </listitem>
+ <listitem>
+ <emphasis>jbp_identity_validation_workflow:</emphasis>
+ e-mail validation, no approval
+ </listitem>
+ <listitem>
+ <emphasis>jbp_identity_validation_approval_workflow:</emphasis>
+ e-mail validation and approval
+ </listitem>
+ <listitem>
+ <emphasis>custom:</emphasis>
+ Take a look at Customizing the
+ workflow
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">
+ overwrite-workflow:
+ </emphasis>
+ if set to 'true' the workflow will be overwritten (default: false)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">
+ email-domain:
+ </emphasis>
+ e-mail domain in the validation e-mail
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">email-from:</emphasis>
+ e-mail from in the validation e-mail
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">
+ password-generation-characters:
+ </emphasis>
+ used characters for generating a random password
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">
+ default-roles:
+ </emphasis>
+ one or more default roles
+ <itemizedlist>
+ <listitem>
+ available element: <emphasis role="bold">role</emphasis>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">
+ ui-components:
+ </emphasis>
+ Defines the available user interface components. Take a look at the next section
+ for further information.
+ </para>
+ </listitem>
+ </itemizedlist>
+ Due to the differentiation between subscription-mode and
+ admin-subscription-mode it is possible to require e-mail
+ validation and approval for new registrations and e-mail
+ validation only when a user is created in the user
+ management portlet.
+ </para>
+ </sect2>
+ <sect2>
+ <title>Customize e-mail templates</title>
+ <para>
+ The email templates can be found in the folder:
<emphasis>portal-identity.sar/conf/templates/</emphasis><sbr/>
+ New languages can be added by creating a new file like:
<emphasis>emailTemplate_fr.tpl</emphasis>
+ </para>
+ </sect2>
+ </sect1>
+ <sect1 id="identity_portlet_configuration_ui_components">
+ <title>User interface customization</title>
+ <para>
+ The following three examples describe common use cases for customizing the User
Portlet.
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="bold">Example 1:</emphasis>
+ Describes how to tag a input field as required
+ and add it to the registration page.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">Example 2:</emphasis>
+ Shows how to create a simple dropdown menu.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">Example 3:</emphasis>
+ Describes how to add new properties.
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ </para>
+ <note>
+ This is not a JavaServer Faces tutorial. Basic knowledge of
+ this technology is a precondition for customizing the User
+ Portlet Interface.
+ </note>
+ <sect2 id="identity_portlet_configuration_example1">
+ <title>Example 1: required fields</title>
+ <para>
+ This example covers changing not required properties to
+ required and adding them to the registration page.
+ <sbr />
+ changes in
<emphasis>portal-identity.sar/conf/identity-ui-configuration.xml</emphasis>
+ </para>
+ <programlisting><![CDATA[<identity-ui-configuration>
+...
+ <!-- user interface components -->
+ ...
+ <ui-component name="givenname">
+ <property-ref>user.name.given</property-ref>
+ <required>true</required>
+ </ui-component>
+ <ui-component name="familyname">
+ <property-ref>user.name.family</property-ref>
+ <required>true</required>
+ </ui-component>
+ ...
+</identity-ui-configuration>]]></programlisting>
+ <para>
+ changes in
<emphasis>portal-identity.sar/portal-identity.war/WEB-INF/jsf/common/register.xhtml</emphasis>
+ </para>
+ <programlisting><![CDATA[
+...
+ <h:outputText value="#{bundle.IDENTITY_GIVENNAME}"/>
+ <h:inputText id="givenname"
value="#{manager.uiUser.attribute.givenname}"
+ required="#{metadataservice.givenname.required}"/>
+ <h:panelGroup />
+ <h:message for="givenname" />
+
+ <h:outputText value="#{bundle.IDENTITY_FAMILYNAME}"/>
+ <h:inputText id="lastname"
value="#{manager.uiUser.attribute.familyname}"
+ required="#{metadataservice.familyname.required}"/>
+ <h:panelGroup />
+ <h:message for="lastname"/>
+...]]></programlisting>
+ <para>
+ That's it - from now on the given and familyname will be
+ required on registration as well in the edit profile.
+ </para>
+ </sect2>
+ <sect2 id="identity_portlet_configuration_example2">
+ <title>
+ Example 2: dynamic values (dropdown menu with predefined
+ values)
+ </title>
+ <para>
+ changes
in<emphasis>portal-identity.sar/conf/identity-ui-configuration.xml</emphasis>
+ </para>
+ <programlisting><![CDATA[<identity-ui-configuration>
+...
+ <!-- user interface components -->
+ ...
+ <ui-component name="interests">
+ <property-ref>portal.user.interests</property-ref>
+ <values>
+ <value key="board">snowboarding</value>
+ <value key="ski">skiing</value>
+ <value key="sledge">sledging</value>
+ </values>
+ </ui-component>
+ ...
+</identity-ui-configuration>]]></programlisting>
+ <para>
+ changes in
+ <emphasis>
+ portal-identity.sar/portal-identity.war/WEB-INF/jsf/common/profile.xhtml
+ </emphasis>
+ - change inputText to a selectOneMenu:
+ </para>
+ <programlisting><![CDATA[
+ ...
+ <h:outputText value="#{bundle.IDENTITY_INTERESTS}"/>
+ <h:selectOneMenu id="interests"
value="#{manager.uiUser.attribute.interests}"
+ required="#{metadataservice.interests.required}">
+ <f:selectItems value="#{metadataservice.interests.values}" />
+ </h.selectOneMenu>
+ <h:panelGroup />
+ <h:message for="interests"/>
+...
+]]></programlisting>
+ <para>
+ localization: in e.g.
+ <emphasis>
+ portal-identity.sar/conf/bundles/Identity.properties
+ </emphasis>
+ - The value will only be used if the element does not
+ have any localization information.
+ </para>
+ <programlisting><![CDATA[
+...
+IDENTIY_DYNAMIC_VALUE_BOARD=localized snowboarding
+IDENTIY_DYNAMIC_VALUE_SKI=localized skiing
+IDENTIY_DYNAMIC_VALUE_SLEDGE=localized sledging
+...
+]]></programlisting>
+ <note>
+ If the value is not required a blank element will be
+ added at the top.
+ </note>
+ </sect2>
+ <sect2 id="identity_portlet_configuration_example3">
+ <title>Example 3: adding new properties</title>
+ <note>
+ Please make sure you read at least the section about
+ user profile configuration: <xref
linkend="user_profile_configuration"/>
+ </note>
+ <para>
+ <emphasis role="bold">step 1:</emphasis>
+ add a new property to <emphasis>profile-config.xml</emphasis> e.g. a
dynamic property called gender:
+ </para>
+ <programlisting><![CDATA[
+...
+ <property>
+ <name>user.gender</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>optional</usage>
+ <display-name xml:lang="en">Gender</display-name>
+ <description xml:lang="en">The gender</description>
+ <mapping>
+ <database>
+ <type>dynamic</type>
+ <value>user.gender</value>
+ </database>
+ </mapping>
+ </property>
+...
+]]></programlisting>
+ <note>
+ It is recommended to use the 'User Information Attribute Names' from the
<ulink
url="http://jcp.org/en/jsr/detail?id=168">Portlet
Specification</ulink> for defining properties.
+ </note>
+ <para>
+ <emphasis role="bold">step 2:</emphasis>
+ add the property to the identity-ui-configuration:
(<emphasis>portal-identity.sar/conf/identity-ui-configuration.xml</emphasis>)
+ </para>
+ <programlisting><![CDATA[
+...
+ <ui-component name="gender">
+ <property-ref>user.gender</property-ref>
+ <required>true</required>
+ <values>
+ <value key="male">Male</value>
+ <value key="female">Female</value>
+ </values>
+ </ui-component>
+...
+]]></programlisting>
+ <note>
+ The property-ref must match a property from the
+ <emphasis>profile-config.xml</emphasis>
+ .
+ </note>
+ <para>
+ <emphasis role="bold">step 3:</emphasis>
+ add your custom ui-component to the profile page:
(<emphasis>portal-identity.sar/portal-identity.war/WEB-INF/jsf/profile.xhtml</emphasis>)
+ </para>
+ <programlisting><![CDATA[
+...
+ <h:outputText value="#{bundle.IDENTITY_GENDER}"/>
+ <h:selectOneMenu id="gender"
value="#{manager.uiUser.attribute.gender}"
+ required="#{metadataservice.gender.required}">
+ <f:selectItems value="#{metadataservice.gender.values}" />
+ </h.selectOneMenu>
+ <h:panelGroup />
+ <h:message for="gender"/>
+...
+]]></programlisting>
+ <note>Don't forget to add the localization elements.</note>
+ </sect2>
+ <sect2>
+ <title>Illustration</title>
+ <para>
+
+ </para>
+ <mediaobject>
+ <imageobject>
+ <imagedata align="center"
+ fileref="images/identityportlets/illustration.png" format="png"
/>
+ </imageobject>
+ <caption>
+ <para>
+ Illustration of the relationship between the
+ configuration files.
+ </para>
+ </caption>
+ </mediaobject>
+ <para>
+ The JSF-View in more detail:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="bold">
+ manager.uiUser.attribute:
+ </emphasis>
+ manages and stores the dynamic properties
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="bold">
+ examples:
+ </emphasis>
+ <emphasis>manager.uiUser.attribute.gender</emphasis>,
+ <emphasis>manager.uiUser.attribute.interests</emphasis>
+ <programlisting><![CDATA[<h:inputText id="gender"
value="#{manager.uiUser.attribute.gender}" />]]></programlisting>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">
+ metadataservice
+ </emphasis>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="bold">
+ required
+ </emphasis>
+ - references the required attribute from the ui-component<sbr />
+ example: <emphasis>metadataservice.gender.required</emphasis>
+ <programlisting><![CDATA[<h:inputText id="gender"
value="#{manager.uiUser.attribute.gender}"
required="#{metadataservice.gender.required}"/>]]></programlisting>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">
+ values
+ </emphasis>
+ - references the values list from the ui-component<sbr />
+ example: <emphasis>metadataservice.gender.values</emphasis>
+ <programlisting><![CDATA[<h:selectOneMenu id="interests"
value="#{manager.uiUser.attribute.interests}">
+ <f:selectItems value="#{metadataservice.interests.values}" />
+</h:selectOneMenu>]]></programlisting>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">
+ validator
+ </emphasis>
+ - references the name of a registered JSF validator<sbr />
+ example:<emphasis>metadataservice.gender.validator</emphasis>
+ - the first validator of the validator list<sbr />
+ example: <emphasis>metadataservice.gender.validators[0]</emphasis>
+ - the validator list with an index<sbr />
+ <programlisting><![CDATA[<f:validator
validatorId="#{metadataservice.gender.validator}"/>]]></programlisting>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">
+ converter
+ </emphasis>
+ - references the name of aregistered JSF converter<sbr />
+ example: <emphasis>metadataservice.gender.converter</emphasis>
+ <programlisting><![CDATA[<f:converter
converterId="#{metadataservice.gender.converter}"/>]]></programlisting>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">
+ readOnly
+ </emphasis>
+ - references the access-mode of
<emphasis>profile-config.xml</emphasis><sbr />
+ possible usage i.e. in
<emphasis>/WEB-INF/jsf/common/profile.xhtml</emphasis>
+ <programlisting><![CDATA[<h:inputText
value="#{manager.uiUser.attribute.nickname}"
disabled="#{metadataservice.nickname.readOnly}"
/>]]></programlisting>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <note>
+ The values of the profile-config.xml have a higher
+ priority than the values in the user portlet
+ configuration. That means if the 'usage' is 'mandatory'
+ in
+ <emphasis>profile-config.xml</emphasis>
+ and 'required' is 'false' it will be overwritten by the
+ value from the profile config!
+ </note>
+ </sect2>
+ </sect1>
+ <sect1>
+ <title>Customizing the workflow</title>
+ <note>jBPM is not part of this documentation.</note>
+ <para>
+ The process definitions are located in:
+ <emphasis>portal-identity.sar/conf/processes</emphasis>. For creating a
custom workflow the custom workflow (<emphasis>custom.xml</emphasis>) can be
extended.
+ It is not recommended to change the predefined workflow definitions.
+ </para>
+ <para>
+ Available variables in the business process:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="bold">name:</emphasis>
+ portalURL
+ <sbr />
+ <emphasis role="bold">type:</emphasis>
+ <emphasis>java.lang.String</emphasis>
+ <sbr />
+ <emphasis role="bold">description:</emphasis>
+ the full url of the portal e.g.
+ <emphasis>
+
http://localhost:8080/portal
+ </emphasis>
+ <sbr />
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">name:</emphasis>
+ locale
+ <sbr />
+ <emphasis role="bold">type:</emphasis>
+ <emphasis>java.util.Locale</emphasis>
+ <sbr />
+ <emphasis role="bold">description:</emphasis>
+ the requested locale at registration
+ <sbr />
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">name:</emphasis>
+ email
+ <sbr />
+ <emphasis role="bold">type:</emphasis>
+ <emphasis>java.lang.String</emphasis>
+ <sbr />
+ <emphasis role="bold">description:</emphasis>
+ the e-mail address of the user in case of registration.<sbr />
+ In case of changing the e-mail the new e-mail address.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">name:</emphasis>
+ user
+ <sbr />
+ <emphasis role="bold">type:</emphasis>
+ <emphasis>
+ org.jboss.portal.core.identity.services.workflow.UserContainer
+ </emphasis>
+ <sbr />
+ <emphasis role="bold">description:</emphasis>
+ Seralizable Object containing user information through the jBPM process <sbr
/>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">name:</emphasis>
+ validationHash
+ <sbr />
+ <emphasis role="bold">type:</emphasis>
+ <emphasis>java.lang.String</emphasis>
+ <sbr />
+ <emphasis role="bold">description:</emphasis>
+ hash used for the validation part. Only available after executing
SendValidationEmailAction<sbr />
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <note>
+ Make sure that the filename and the process name match! e.g.
+ <emphasis>conf/processes/custom.xml</emphasis>
+ and process-definition name="custom".
+ </note>
+ <para>
+ When using a custom workflow it is possible to customize the
+ status message after registering in the locale bundle: ( e.g.
+ <emphasis>portal-identity.sar/conf/bundles/Identity.properties</emphasis>)
+ </para>
+ <programlisting><![CDATA[
+...
+IDENTITY_VERIFICATION_STATUS_REGISTER_CUSTOM=Customized message here
+...
+]]></programlisting>
+ <sect2>
+ <title>Duration of process validity</title>
+ <para>
+ By default requests (e.g. e-mail validation and registrations) expire after some time
in the validation state.
+ Therefore it is not required to add additional maintenance mechanism to invalidate a
request. The default expiration time is 2 days,
+ but is quite easy to change the timing by editing the
<emphasis>duedate</emphasis> attribute in the process definition.
+ changes in: <emphasis>portal-identity.sar/conf/processes/*.xml</emphasis>
+ </para>
+ <programlisting><![CDATA[<process-definition>
+...
+ <state name="validate_email">
+ <timer name="time_to_expire" duedate="24 hours"
transition="timedOut" />
+ </state>
+...
+</process-definition>]]></programlisting>
+ </sect2>
+ <para>
+ For further information take a look at the <ulink
url="http://docs.jboss.com/jbpm/v3/userguide/index.html">jBPM
documentation</ulink> on <emphasis>Duration</emphasis>.
+ </para>
+ </sect1>
+ <sect1>
+ <title>Disabling the Identity Portlets</title>
+ <para>
+ Due to the fact that the common User portlet is still
+ included in JBoss Portal 2.6.2 it is possible to activate
+ it over the Portal Admin interface, by using the PortletInstances:
+ <itemizedlist>
+ <listitem>
+ <emphasis>UserPortletInstance:</emphasis> The common user portlet
+ </listitem>
+ <listitem>
+ <emphasis>RolePortletInstance:</emphasis> The common role managment
portlet
+ </listitem>
+ </itemizedlist>
+ </para>
+ <sect2>
+ <title>Enabling the Identity Portlets</title>
+ <para>
+ When migrating from former versions of JBoss Portal the Identity User Portlets
won't be displayed by default,
+ but Windows can be created on basis of the existing Portlet Instances which are by
default deployed.
+ </para>
+ </sect2>
+ </sect1>
+</chapter>