[seam-commits] Seam SVN: r8993 - trunk/doc/Seam_Reference_Guide/en-US.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Sun Sep 14 22:21:58 EDT 2008


Author: shane.bryzak at jboss.com
Date: 2008-09-14 22:21:57 -0400 (Sun, 14 Sep 2008)
New Revision: 8993

Modified:
   trunk/doc/Seam_Reference_Guide/en-US/Security.xml
Log:
added description for sequence diagram

Modified: trunk/doc/Seam_Reference_Guide/en-US/Security.xml
===================================================================
--- trunk/doc/Seam_Reference_Guide/en-US/Security.xml	2008-09-15 01:49:00 UTC (rev 8992)
+++ trunk/doc/Seam_Reference_Guide/en-US/Security.xml	2008-09-15 02:21:57 UTC (rev 8993)
@@ -811,8 +811,8 @@
                     algorithm to be specified for password hashing.  Possible values for <literal>hash</literal> are
                     <literal>md5</literal>, <literal>sha</literal> and <literal>none</literal>.  E.g:
                   </para>
-                    
-                    <programlisting role="JAVA"><![CDATA[@UserPassword(hash = "md5")
+
+                  <programlisting role="JAVA"><![CDATA[@UserPassword(hash = "md5")
 public String getPasswordHash() { 
   return passwordHash; 
 }]]></programlisting>
@@ -3225,6 +3225,42 @@
         </imageobject>
       </mediaobject>         
       
+      <itemizedlist>
+        <listitem>
+          <para>
+            1. A permission check is initiated somewhere (either in code or via an EL
+            expression) resulting in a call to <literal>Identity.hasPermission()</literal>.
+          </para>          
+        </listitem>
+        <listitem>
+          <para>
+            1.1. <literal>Identity</literal> invokes 
+            <literal>PermissionMapper.resolvePermission()</literal>, passing in the
+            permission to be resolved.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            1.1.1. <literal>PermissionMapper</literal> maintains a <literal>Map</literal> of 
+            <literal>ResolverChain</literal> instances, keyed by class.  It uses this map
+            to locate the correct <literal>ResolverChain</literal> for the permission's
+            target object.  Once it has the correct <literal>ResolverChain</literal>, it
+            retrieves the list of <literal>PermissionResolver</literal>s it contains via
+            a call to <literal>ResolverChain.getResolvers()</literal>.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            1.1.2. For each <literal>PermissionResolver</literal> in the <literal>ResolverChain</literal>,
+            the <literal>PermissionMapper</literal> invokes its <literal>hasPermission()</literal> method,
+            passing in the permission instance to be checked.  If any of the <literal>PermissionResolver</literal>s
+            return <literal>true</literal>, then the permission check has succeeded and the 
+            <literal>PermissionMapper</literal> also returns <literal>true</literal> to <literal>Identity</literal>.
+            If none of the <literal>PermissionResolver</literal>s return true, then the permission check
+            has failed.
+          </para>
+        </listitem>      
+      </itemizedlist>
       
     </sect2>
 




More information about the seam-commits mailing list