Author: lhazlewood Date: Tue Jan 27 05:29:55 2009 New Revision: 738006 URL: http://svn.apache.org/viewvc?rev=738006&view=rev Log: updated JavaDoc Modified: incubator/jsecurity/trunk/core/src/org/jsecurity/subject/PrincipalCollection.java incubator/jsecurity/trunk/core/src/org/jsecurity/subject/Subject.java incubator/jsecurity/trunk/core/test/org/jsecurity/mgt/DefaultSecurityManagerTest.java Modified: incubator/jsecurity/trunk/core/src/org/jsecurity/subject/PrincipalCollection.java URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/src/org/jsecurity/subject/PrincipalCollection.java?rev=738006&r1=738005&r2=738006&view=diff ============================================================================== --- incubator/jsecurity/trunk/core/src/org/jsecurity/subject/PrincipalCollection.java (original) +++ incubator/jsecurity/trunk/core/src/org/jsecurity/subject/PrincipalCollection.java Tue Jan 27 05:29:55 2009 @@ -24,7 +24,21 @@ import java.util.Set; /** - * A collection of all principals associated with a corresponding {@link Subject Subject}. + * A collection of all principals associated with a corresponding {@link Subject Subject}. A principal is + * just a security term for an identifying attribute, such as a username or user id or social security number or + * anything else that can be considered an 'identifying' attribute for a {@code Subject}. + *
+ * Note that by convention however, the 'first' principal returned from this collection is considered to be the + * Subject's primary principal used by the application, usually a user ID or username, based on the + * {@code Realm} implementation. The 'first' principal is that which is returned by + * {@link #asList() asList()}{@code .iterator().next()}. + * + * A PrincipalCollection orgainizes its internal principals based on the {@code Realm} where they came from when the + * Subject was first created. To obtain the principal(s) for a specific Realm, see the {@link #fromRealm} method. You + * can also see which realms contributed to this collection via the {@link #getRealmNames() getRealmNames()} method. + * + * @see #fromRealm(String realmName) + * @see #getRealmNames() * * @author Les Hazlewood * @since 0.9 @@ -35,7 +49,8 @@ * Returns a single principal assignable from the specified type, or null if there are none of the * specified type. * - *Note that this would return null
List always if the corresponding subject has not logged in.
Note that this would return null
List always if the corresponding subject has not yet
+ * logged in.
Note that this would return an empty Collection always if the corresponding subject has not logged in.
+ *Note that this would return an empty Collection always if the corresponding subject has not yet + * logged in.
* * @param type the type of the principals that should be returned. * @return a Collection of principals that are assignable from the specified type, or @@ -58,7 +74,7 @@ * Returns a single Subject's principals retrieved from all configured Realms as a List, or an empty List if * there are not any principals. * - *Note that this would return an empty List always if the corresponding subject has not logged in.
+ *Note that this would return an empty List always if the corresponding subject has not yet logged in.
* * @return a single Subject's principals retrieved from all configured Realms as a List. */ @@ -68,7 +84,7 @@ * Returns a single Subject's principals retrieved from all configured Realms as a Set, or an empty Set if there * are not any principals. * - *Note that this would return an empty Set always if the corresponding subject has not logged in.
+ *Note that this would return an empty Set always if the corresponding subject has not yet logged in.
* * @return a single Subject's principals retrieved from all configured Realms as a Set. */ @@ -78,7 +94,7 @@ * Returns a single Subject's principals retrieved from the specified Realm only as a Collection, or an empty * Collection if there are not any principals from that realm. * - *Note that this would return an empty Collection always if the corresponding subject has not logged in.
+ *Note that this would return an empty Collection always if the corresponding subject has not yet logged in.
* * @param realmName the name of the Realm from which the principals were retrieved. * @return the Subject's principals from the specified Realm only as a Collection or an empty Collection if there Modified: incubator/jsecurity/trunk/core/src/org/jsecurity/subject/Subject.java URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/src/org/jsecurity/subject/Subject.java?rev=738006&r1=738005&r2=738006&view=diff ============================================================================== --- incubator/jsecurity/trunk/core/src/org/jsecurity/subject/Subject.java (original) +++ incubator/jsecurity/trunk/core/src/org/jsecurity/subject/Subject.java Tue Jan 27 05:29:55 2009 @@ -357,7 +357,8 @@ /** * Logs out this Subject and invalidates and/or removes any associated entities - * (such as a {@link Session Session} and authorization data. + * (such as a {@link Session Session} and authorization data. After this method is called, the Subject is + * considered 'anonymous' and may continue to be used for another log-in if desired. */ void logout(); Modified: incubator/jsecurity/trunk/core/test/org/jsecurity/mgt/DefaultSecurityManagerTest.java URL: http://svn.apache.org/viewvc/incubator/jsecurity/trunk/core/test/org/jsecurity/mgt/DefaultSecurityManagerTest.java?rev=738006&r1=738005&r2=738006&view=diff ============================================================================== --- incubator/jsecurity/trunk/core/test/org/jsecurity/mgt/DefaultSecurityManagerTest.java (original) +++ incubator/jsecurity/trunk/core/test/org/jsecurity/mgt/DefaultSecurityManagerTest.java Tue Jan 27 05:29:55 2009 @@ -111,6 +111,7 @@ * Test that validates functionality for issue * JSEC-22 */ + @Test public void testSubjectReuseAfterLogout() { Subject subject = SecurityUtils.getSubject();