You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shiro.apache.org by ad...@apache.org on 2010/10/16 18:52:47 UTC
svn commit: r1023327 - in /shiro/sandbox/crowd/src/test:
java/org/apache/shiro/realm/crowd/CrowdRealmTest.java
resources/crowd-ehcache.xml resources/crowd.properties
Author: adc
Date: Sat Oct 16 16:52:47 2010
New Revision: 1023327
URL: http://svn.apache.org/viewvc?rev=1023327&view=rev
Log:
SHIRO-18 integration test
Added:
shiro/sandbox/crowd/src/test/resources/crowd-ehcache.xml (with props)
shiro/sandbox/crowd/src/test/resources/crowd.properties (with props)
Modified:
shiro/sandbox/crowd/src/test/java/org/apache/shiro/realm/crowd/CrowdRealmTest.java
Modified: shiro/sandbox/crowd/src/test/java/org/apache/shiro/realm/crowd/CrowdRealmTest.java
URL: http://svn.apache.org/viewvc/shiro/sandbox/crowd/src/test/java/org/apache/shiro/realm/crowd/CrowdRealmTest.java?rev=1023327&r1=1023326&r2=1023327&view=diff
==============================================================================
--- shiro/sandbox/crowd/src/test/java/org/apache/shiro/realm/crowd/CrowdRealmTest.java (original)
+++ shiro/sandbox/crowd/src/test/java/org/apache/shiro/realm/crowd/CrowdRealmTest.java Sat Oct 16 16:52:47 2010
@@ -22,6 +22,7 @@ import java.util.Arrays;
import java.util.EnumSet;
import com.atlassian.crowd.integration.service.soap.client.SecurityServerClient;
+import com.atlassian.crowd.integration.service.soap.client.SecurityServerClientFactory;
import org.junit.Test;
import static org.easymock.EasyMock.*;
import static org.junit.Assert.*;
@@ -162,4 +163,38 @@ public class CrowdRealmTest {
assertTrue(authorizationInfo.getRoles().contains("girls"));
assertTrue(authorizationInfo.getRoles().contains("naughty"));
}
+
+ public void testIntegration() throws Exception {
+ CrowdRealm realm = new CrowdRealm();
+ realm.setName("NutHouse");
+ realm.setRoleSources(EnumSet.of(RoleSource.ROLES_FROM_CROWD_GROUPS, RoleSource.ROLES_FROM_CROWD_ROLES));
+
+ SecurityServerClient client = SecurityServerClientFactory.getSecurityServerClient();
+ client.authenticate();
+
+ realm.setCrowdClient(client);
+
+ AuthenticationInfo authenticationInfo = realm.doGetAuthenticationInfo(new UsernamePasswordToken("yoko", "barbie"));
+
+ assertNotNull(authenticationInfo);
+ assertTrue(Arrays.equals("barbie".toCharArray(), (char[]) authenticationInfo.getCredentials()));
+
+ PrincipalCollection collection = authenticationInfo.getPrincipals();
+ assertNotNull(collection);
+ assertTrue(!collection.isEmpty());
+ assertEquals("yoko", collection.getPrimaryPrincipal());
+ assertTrue(!collection.getRealmNames().isEmpty());
+ assertTrue(collection.getRealmNames().contains("NutHouse"));
+ assertTrue(!collection.fromRealm("NutHouse").isEmpty());
+ assertTrue(collection.fromRealm("NutHouse").contains("yoko"));
+
+ AuthorizationInfo authorizationInfo = realm.doGetAuthorizationInfo(authenticationInfo.getPrincipals());
+
+ assertTrue(!authorizationInfo.getRoles().isEmpty());
+ assertTrue(authorizationInfo.getRoles().contains("big_sister"));
+ assertTrue(authorizationInfo.getRoles().contains("table_setter"));
+ assertTrue(authorizationInfo.getRoles().contains("dog_walker"));
+ assertTrue(authorizationInfo.getRoles().contains("girls"));
+ assertTrue(authorizationInfo.getRoles().contains("naughty"));
+ }
}
Added: shiro/sandbox/crowd/src/test/resources/crowd-ehcache.xml
URL: http://svn.apache.org/viewvc/shiro/sandbox/crowd/src/test/resources/crowd-ehcache.xml?rev=1023327&view=auto
==============================================================================
--- shiro/sandbox/crowd/src/test/resources/crowd-ehcache.xml (added)
+++ shiro/sandbox/crowd/src/test/resources/crowd-ehcache.xml Sat Oct 16 16:52:47 2010
@@ -0,0 +1,176 @@
+<ehcache>
+
+ <!-- Sets the path to the directory where cache .data files are created.
+
+ If the path is a Java System Property it is replaced by
+ its value in the running VM.
+
+ The following properties are translated:
+ user.home - User's home directory
+ user.dir - User's current working directory
+ java.io.tmpdir - Default temp file path -->
+ <diskStore path="java.io.tmpdir"/>
+
+ <!--Default Cache configuration. These will applied to caches programmatically created through
+ the CacheManager.
+
+ The following attributes are required:
+
+ maxElementsInMemory - Sets the maximum number of objects that will be created in memory
+ eternal - Sets whether elements are eternal. If eternal, timeouts are ignored and the
+ element is never expired.
+ overflowToDisk - Sets whether elements can overflow to disk when the in-memory cache
+ has reached the maxInMemory limit.
+
+ The following attributes are optional:
+ timeToIdleSeconds - Sets the time to idle for an element before it expires.
+ i.e. The maximum amount of time between accesses before an element expires
+ Is only used if the element is not eternal.
+ Optional attribute. A value of 0 means that an Element can idle for infinity.
+ The default value is 0.
+ timeToLiveSeconds - Sets the time to live for an element before it expires.
+ i.e. The maximum time between creation time and when an element expires.
+ Is only used if the element is not eternal.
+ Optional attribute. A value of 0 means that and Element can live for infinity.
+ The default value is 0.
+ diskPersistent - Whether the disk store persists between restarts of the Virtual Machine.
+ The default value is false.
+ diskExpiryThreadIntervalSeconds- The number of seconds between runs of the disk expiry thread. The default value
+ is 120 seconds.
+ -->
+
+ <defaultCache
+ maxElementsInMemory="50000"
+ eternal="false"
+ overflowToDisk="false"
+ timeToIdleSeconds="3600"
+ timeToLiveSeconds="3600"
+ diskPersistent="false"
+ diskExpiryThreadIntervalSeconds="120"/>
+
+ <!-- Caches individual user objects
+ Sizing: the number of users in your system. -->
+ <cache name="com.atlassian.crowd.integration-user"
+ maxElementsInMemory="50000"
+ eternal="false"
+ overflowToDisk="false"
+ timeToIdleSeconds="3600"
+ timeToLiveSeconds="3600"
+ diskPersistent="false"
+ diskExpiryThreadIntervalSeconds="120"/>
+
+ <!-- Caches individual user objects with attributes
+ Sizing: the number of users in your system. -->
+ <cache name="com.atlassian.crowd.integration-user-with-attributes"
+ maxElementsInMemory="50000"
+ eternal="false"
+ overflowToDisk="false"
+ timeToIdleSeconds="3600"
+ timeToLiveSeconds="3600"
+ diskPersistent="false"
+ diskExpiryThreadIntervalSeconds="120"/>
+
+ <!-- Caches the list of all usernames in the system.
+ Sizing: One. There's only one list. -->
+ <cache name="com.atlassian.crowd.integration-usernames"
+ maxElementsInMemory="1"
+ eternal="false"
+ overflowToDisk="false"
+ timeToIdleSeconds="3600"
+ timeToLiveSeconds="3600"
+ diskPersistent="false"
+ diskExpiryThreadIntervalSeconds="120"/>
+
+ <!-- Caches individual group objects.
+ Sizing: the number of groups in your system. -->
+ <cache name="com.atlassian.crowd.integration-group"
+ maxElementsInMemory="50000"
+ eternal="false"
+ overflowToDisk="false"
+ timeToIdleSeconds="3600"
+ timeToLiveSeconds="3600"
+ diskPersistent="false"
+ diskExpiryThreadIntervalSeconds="120"/>
+
+ <!-- Caches the list of all group names in the system.
+ Sizing: One. There's only one list. -->
+ <cache name="com.atlassian.crowd.integration-groupnames"
+ maxElementsInMemory="1"
+ eternal="false"
+ overflowToDisk="false"
+ timeToIdleSeconds="3600"
+ timeToLiveSeconds="3600"
+ diskPersistent="false"
+ diskExpiryThreadIntervalSeconds="120"/>
+
+ <!-- Caches a list of group -> parentGroups. Needed for supporting certain API calls with nested groups.
+ Sizing: The number of groups in your system. -->
+ <cache name="com.atlassian.crowd.integration-parentgroup"
+ maxElementsInMemory="50000"
+ eternal="false"
+ overflowToDisk="false"
+ timeToIdleSeconds="3600"
+ timeToLiveSeconds="3600"
+ diskPersistent="false"
+ diskExpiryThreadIntervalSeconds="120"/>
+
+ <!-- Caches whether a user belongs in a given group.
+ Sizing: Number of users times number of groups. This could be quite large, so you can optimize by setting it
+ to the number that are likely to be active at any one time. The algorithm will fall back to using the
+ com.atlassian.crowd.integration-all-group-members cache before hitting the server to check. -->
+ <cache name="com.atlassian.crowd.integration-group-membership"
+ maxElementsInMemory="50000"
+ eternal="false"
+ overflowToDisk="false"
+ timeToIdleSeconds="3600"
+ timeToLiveSeconds="3600"
+ diskPersistent="false"
+ diskExpiryThreadIntervalSeconds="120"/>
+
+ <!-- Caches the list of all groups a user is in.
+ Sizing: the number of users in your system. -->
+ <cache name="com.atlassian.crowd.integration-all-memberships"
+ maxElementsInMemory="50000"
+ eternal="false"
+ overflowToDisk="false"
+ timeToIdleSeconds="3600"
+ timeToLiveSeconds="3600"
+ diskPersistent="false"
+ diskExpiryThreadIntervalSeconds="120"/>
+
+ <!-- Caches the list of users in a group plus its subgroups.
+ Sizing: the number of groups in your system. -->
+ <cache name="com.atlassian.crowd.integration-all-group-members"
+ maxElementsInMemory="50000"
+ eternal="false"
+ overflowToDisk="false"
+ timeToIdleSeconds="3600"
+ timeToLiveSeconds="3600"
+ diskPersistent="false"
+ diskExpiryThreadIntervalSeconds="120"/>
+
+ <!-- Caches the list of usernames in lower-case to correct-case usernames.
+ Sizing: the number of users in your system. -->
+ <cache name="com.atlassian.crowd.integration-username-case"
+ maxElementsInMemory="50000"
+ eternal="false"
+ overflowToDisk="false"
+ timeToIdleSeconds="3600"
+ timeToLiveSeconds="3600"
+ diskPersistent="false"
+ diskExpiryThreadIntervalSeconds="120"/>
+
+ <!-- Caches the list of groupnames in lower-case to correct-case groupnames.
+ Sizing: the number of groups in your system. -->
+ <cache name="com.atlassian.crowd.integration-groupname-case"
+ maxElementsInMemory="50000"
+ eternal="false"
+ overflowToDisk="false"
+ timeToIdleSeconds="3600"
+ timeToLiveSeconds="3600"
+ diskPersistent="false"
+ diskExpiryThreadIntervalSeconds="120"/>
+
+
+ <!-- See http://ehcache.sourceforge.net/documentation/#mozTocId258426 for how to configure caching for your objects -->
+</ehcache>
\ No newline at end of file
Propchange: shiro/sandbox/crowd/src/test/resources/crowd-ehcache.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: shiro/sandbox/crowd/src/test/resources/crowd-ehcache.xml
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: shiro/sandbox/crowd/src/test/resources/crowd-ehcache.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: shiro/sandbox/crowd/src/test/resources/crowd.properties
URL: http://svn.apache.org/viewvc/shiro/sandbox/crowd/src/test/resources/crowd.properties?rev=1023327&view=auto
==============================================================================
--- shiro/sandbox/crowd/src/test/resources/crowd.properties (added)
+++ shiro/sandbox/crowd/src/test/resources/crowd.properties Sat Oct 16 16:52:47 2010
@@ -0,0 +1,8 @@
+session.lastvalidation=session.lastvalidation
+application.password=secret
+session.isauthenticated=session.isauthenticated
+application.name=shiro
+crowd.server.url=http\://localhost\:8095/crowd/services/
+session.validationinterval=0
+session.tokenkey=session.tokenkey
+application.login.url=http\://localhost\:8095/crowd
Propchange: shiro/sandbox/crowd/src/test/resources/crowd.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: shiro/sandbox/crowd/src/test/resources/crowd.properties
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: shiro/sandbox/crowd/src/test/resources/crowd.properties
------------------------------------------------------------------------------
svn:mime-type = text/plain
Re: svn commit: r1023327 - in /shiro/sandbox/crowd/src/test:
java/org/apache/shiro/realm/crowd/CrowdRealmTest.java resources/crowd-ehcache.xml
resources/crowd.properties
Posted by Les Hazlewood <lh...@apache.org>.
The crowd-ehcache.xml file looks sweet - almost as if it were based on
a real-world application ;)
Thanks for this Alan!
On Sat, Oct 16, 2010 at 9:52 AM, <ad...@apache.org> wrote:
> Author: adc
> Date: Sat Oct 16 16:52:47 2010
> New Revision: 1023327
>
> URL: http://svn.apache.org/viewvc?rev=1023327&view=rev
> Log:
> SHIRO-18 integration test
>
> Added:
> shiro/sandbox/crowd/src/test/resources/crowd-ehcache.xml (with props)
> shiro/sandbox/crowd/src/test/resources/crowd.properties (with props)
> Modified:
> shiro/sandbox/crowd/src/test/java/org/apache/shiro/realm/crowd/CrowdRealmTest.java
>
> Modified: shiro/sandbox/crowd/src/test/java/org/apache/shiro/realm/crowd/CrowdRealmTest.java
> URL: http://svn.apache.org/viewvc/shiro/sandbox/crowd/src/test/java/org/apache/shiro/realm/crowd/CrowdRealmTest.java?rev=1023327&r1=1023326&r2=1023327&view=diff
> ==============================================================================
> --- shiro/sandbox/crowd/src/test/java/org/apache/shiro/realm/crowd/CrowdRealmTest.java (original)
> +++ shiro/sandbox/crowd/src/test/java/org/apache/shiro/realm/crowd/CrowdRealmTest.java Sat Oct 16 16:52:47 2010
> @@ -22,6 +22,7 @@ import java.util.Arrays;
> import java.util.EnumSet;
>
> import com.atlassian.crowd.integration.service.soap.client.SecurityServerClient;
> +import com.atlassian.crowd.integration.service.soap.client.SecurityServerClientFactory;
> import org.junit.Test;
> import static org.easymock.EasyMock.*;
> import static org.junit.Assert.*;
> @@ -162,4 +163,38 @@ public class CrowdRealmTest {
> assertTrue(authorizationInfo.getRoles().contains("girls"));
> assertTrue(authorizationInfo.getRoles().contains("naughty"));
> }
> +
> + public void testIntegration() throws Exception {
> + CrowdRealm realm = new CrowdRealm();
> + realm.setName("NutHouse");
> + realm.setRoleSources(EnumSet.of(RoleSource.ROLES_FROM_CROWD_GROUPS, RoleSource.ROLES_FROM_CROWD_ROLES));
> +
> + SecurityServerClient client = SecurityServerClientFactory.getSecurityServerClient();
> + client.authenticate();
> +
> + realm.setCrowdClient(client);
> +
> + AuthenticationInfo authenticationInfo = realm.doGetAuthenticationInfo(new UsernamePasswordToken("yoko", "barbie"));
> +
> + assertNotNull(authenticationInfo);
> + assertTrue(Arrays.equals("barbie".toCharArray(), (char[]) authenticationInfo.getCredentials()));
> +
> + PrincipalCollection collection = authenticationInfo.getPrincipals();
> + assertNotNull(collection);
> + assertTrue(!collection.isEmpty());
> + assertEquals("yoko", collection.getPrimaryPrincipal());
> + assertTrue(!collection.getRealmNames().isEmpty());
> + assertTrue(collection.getRealmNames().contains("NutHouse"));
> + assertTrue(!collection.fromRealm("NutHouse").isEmpty());
> + assertTrue(collection.fromRealm("NutHouse").contains("yoko"));
> +
> + AuthorizationInfo authorizationInfo = realm.doGetAuthorizationInfo(authenticationInfo.getPrincipals());
> +
> + assertTrue(!authorizationInfo.getRoles().isEmpty());
> + assertTrue(authorizationInfo.getRoles().contains("big_sister"));
> + assertTrue(authorizationInfo.getRoles().contains("table_setter"));
> + assertTrue(authorizationInfo.getRoles().contains("dog_walker"));
> + assertTrue(authorizationInfo.getRoles().contains("girls"));
> + assertTrue(authorizationInfo.getRoles().contains("naughty"));
> + }
> }
>
> Added: shiro/sandbox/crowd/src/test/resources/crowd-ehcache.xml
> URL: http://svn.apache.org/viewvc/shiro/sandbox/crowd/src/test/resources/crowd-ehcache.xml?rev=1023327&view=auto
> ==============================================================================
> --- shiro/sandbox/crowd/src/test/resources/crowd-ehcache.xml (added)
> +++ shiro/sandbox/crowd/src/test/resources/crowd-ehcache.xml Sat Oct 16 16:52:47 2010
> @@ -0,0 +1,176 @@
> +<ehcache>
> +
> + <!-- Sets the path to the directory where cache .data files are created.
> +
> + If the path is a Java System Property it is replaced by
> + its value in the running VM.
> +
> + The following properties are translated:
> + user.home - User's home directory
> + user.dir - User's current working directory
> + java.io.tmpdir - Default temp file path -->
> + <diskStore path="java.io.tmpdir"/>
> +
> + <!--Default Cache configuration. These will applied to caches programmatically created through
> + the CacheManager.
> +
> + The following attributes are required:
> +
> + maxElementsInMemory - Sets the maximum number of objects that will be created in memory
> + eternal - Sets whether elements are eternal. If eternal, timeouts are ignored and the
> + element is never expired.
> + overflowToDisk - Sets whether elements can overflow to disk when the in-memory cache
> + has reached the maxInMemory limit.
> +
> + The following attributes are optional:
> + timeToIdleSeconds - Sets the time to idle for an element before it expires.
> + i.e. The maximum amount of time between accesses before an element expires
> + Is only used if the element is not eternal.
> + Optional attribute. A value of 0 means that an Element can idle for infinity.
> + The default value is 0.
> + timeToLiveSeconds - Sets the time to live for an element before it expires.
> + i.e. The maximum time between creation time and when an element expires.
> + Is only used if the element is not eternal.
> + Optional attribute. A value of 0 means that and Element can live for infinity.
> + The default value is 0.
> + diskPersistent - Whether the disk store persists between restarts of the Virtual Machine.
> + The default value is false.
> + diskExpiryThreadIntervalSeconds- The number of seconds between runs of the disk expiry thread. The default value
> + is 120 seconds.
> + -->
> +
> + <defaultCache
> + maxElementsInMemory="50000"
> + eternal="false"
> + overflowToDisk="false"
> + timeToIdleSeconds="3600"
> + timeToLiveSeconds="3600"
> + diskPersistent="false"
> + diskExpiryThreadIntervalSeconds="120"/>
> +
> + <!-- Caches individual user objects
> + Sizing: the number of users in your system. -->
> + <cache name="com.atlassian.crowd.integration-user"
> + maxElementsInMemory="50000"
> + eternal="false"
> + overflowToDisk="false"
> + timeToIdleSeconds="3600"
> + timeToLiveSeconds="3600"
> + diskPersistent="false"
> + diskExpiryThreadIntervalSeconds="120"/>
> +
> + <!-- Caches individual user objects with attributes
> + Sizing: the number of users in your system. -->
> + <cache name="com.atlassian.crowd.integration-user-with-attributes"
> + maxElementsInMemory="50000"
> + eternal="false"
> + overflowToDisk="false"
> + timeToIdleSeconds="3600"
> + timeToLiveSeconds="3600"
> + diskPersistent="false"
> + diskExpiryThreadIntervalSeconds="120"/>
> +
> + <!-- Caches the list of all usernames in the system.
> + Sizing: One. There's only one list. -->
> + <cache name="com.atlassian.crowd.integration-usernames"
> + maxElementsInMemory="1"
> + eternal="false"
> + overflowToDisk="false"
> + timeToIdleSeconds="3600"
> + timeToLiveSeconds="3600"
> + diskPersistent="false"
> + diskExpiryThreadIntervalSeconds="120"/>
> +
> + <!-- Caches individual group objects.
> + Sizing: the number of groups in your system. -->
> + <cache name="com.atlassian.crowd.integration-group"
> + maxElementsInMemory="50000"
> + eternal="false"
> + overflowToDisk="false"
> + timeToIdleSeconds="3600"
> + timeToLiveSeconds="3600"
> + diskPersistent="false"
> + diskExpiryThreadIntervalSeconds="120"/>
> +
> + <!-- Caches the list of all group names in the system.
> + Sizing: One. There's only one list. -->
> + <cache name="com.atlassian.crowd.integration-groupnames"
> + maxElementsInMemory="1"
> + eternal="false"
> + overflowToDisk="false"
> + timeToIdleSeconds="3600"
> + timeToLiveSeconds="3600"
> + diskPersistent="false"
> + diskExpiryThreadIntervalSeconds="120"/>
> +
> + <!-- Caches a list of group -> parentGroups. Needed for supporting certain API calls with nested groups.
> + Sizing: The number of groups in your system. -->
> + <cache name="com.atlassian.crowd.integration-parentgroup"
> + maxElementsInMemory="50000"
> + eternal="false"
> + overflowToDisk="false"
> + timeToIdleSeconds="3600"
> + timeToLiveSeconds="3600"
> + diskPersistent="false"
> + diskExpiryThreadIntervalSeconds="120"/>
> +
> + <!-- Caches whether a user belongs in a given group.
> + Sizing: Number of users times number of groups. This could be quite large, so you can optimize by setting it
> + to the number that are likely to be active at any one time. The algorithm will fall back to using the
> + com.atlassian.crowd.integration-all-group-members cache before hitting the server to check. -->
> + <cache name="com.atlassian.crowd.integration-group-membership"
> + maxElementsInMemory="50000"
> + eternal="false"
> + overflowToDisk="false"
> + timeToIdleSeconds="3600"
> + timeToLiveSeconds="3600"
> + diskPersistent="false"
> + diskExpiryThreadIntervalSeconds="120"/>
> +
> + <!-- Caches the list of all groups a user is in.
> + Sizing: the number of users in your system. -->
> + <cache name="com.atlassian.crowd.integration-all-memberships"
> + maxElementsInMemory="50000"
> + eternal="false"
> + overflowToDisk="false"
> + timeToIdleSeconds="3600"
> + timeToLiveSeconds="3600"
> + diskPersistent="false"
> + diskExpiryThreadIntervalSeconds="120"/>
> +
> + <!-- Caches the list of users in a group plus its subgroups.
> + Sizing: the number of groups in your system. -->
> + <cache name="com.atlassian.crowd.integration-all-group-members"
> + maxElementsInMemory="50000"
> + eternal="false"
> + overflowToDisk="false"
> + timeToIdleSeconds="3600"
> + timeToLiveSeconds="3600"
> + diskPersistent="false"
> + diskExpiryThreadIntervalSeconds="120"/>
> +
> + <!-- Caches the list of usernames in lower-case to correct-case usernames.
> + Sizing: the number of users in your system. -->
> + <cache name="com.atlassian.crowd.integration-username-case"
> + maxElementsInMemory="50000"
> + eternal="false"
> + overflowToDisk="false"
> + timeToIdleSeconds="3600"
> + timeToLiveSeconds="3600"
> + diskPersistent="false"
> + diskExpiryThreadIntervalSeconds="120"/>
> +
> + <!-- Caches the list of groupnames in lower-case to correct-case groupnames.
> + Sizing: the number of groups in your system. -->
> + <cache name="com.atlassian.crowd.integration-groupname-case"
> + maxElementsInMemory="50000"
> + eternal="false"
> + overflowToDisk="false"
> + timeToIdleSeconds="3600"
> + timeToLiveSeconds="3600"
> + diskPersistent="false"
> + diskExpiryThreadIntervalSeconds="120"/>
> +
> +
> + <!-- See http://ehcache.sourceforge.net/documentation/#mozTocId258426 for how to configure caching for your objects -->
> +</ehcache>
> \ No newline at end of file
>
> Propchange: shiro/sandbox/crowd/src/test/resources/crowd-ehcache.xml
> ------------------------------------------------------------------------------
> svn:eol-style = native
>
> Propchange: shiro/sandbox/crowd/src/test/resources/crowd-ehcache.xml
> ------------------------------------------------------------------------------
> svn:keywords = Date Revision
>
> Propchange: shiro/sandbox/crowd/src/test/resources/crowd-ehcache.xml
> ------------------------------------------------------------------------------
> svn:mime-type = text/xml
>
> Added: shiro/sandbox/crowd/src/test/resources/crowd.properties
> URL: http://svn.apache.org/viewvc/shiro/sandbox/crowd/src/test/resources/crowd.properties?rev=1023327&view=auto
> ==============================================================================
> --- shiro/sandbox/crowd/src/test/resources/crowd.properties (added)
> +++ shiro/sandbox/crowd/src/test/resources/crowd.properties Sat Oct 16 16:52:47 2010
> @@ -0,0 +1,8 @@
> +session.lastvalidation=session.lastvalidation
> +application.password=secret
> +session.isauthenticated=session.isauthenticated
> +application.name=shiro
> +crowd.server.url=http\://localhost\:8095/crowd/services/
> +session.validationinterval=0
> +session.tokenkey=session.tokenkey
> +application.login.url=http\://localhost\:8095/crowd
>
> Propchange: shiro/sandbox/crowd/src/test/resources/crowd.properties
> ------------------------------------------------------------------------------
> svn:eol-style = native
>
> Propchange: shiro/sandbox/crowd/src/test/resources/crowd.properties
> ------------------------------------------------------------------------------
> svn:keywords = Date Revision
>
> Propchange: shiro/sandbox/crowd/src/test/resources/crowd.properties
> ------------------------------------------------------------------------------
> svn:mime-type = text/plain
>
>
>