Index: components/session-pool/src/test/resources/org/hippoecm/hst/core/jcr/pool/GeneralMultiplePoolingRepository.xml
===================================================================
--- components/session-pool/src/test/resources/org/hippoecm/hst/core/jcr/pool/GeneralMultiplePoolingRepository.xml	(revision 21377)
+++ components/session-pool/src/test/resources/org/hippoecm/hst/core/jcr/pool/GeneralMultiplePoolingRepository.xml	(working copy)
@@ -24,7 +24,7 @@
                            http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
                            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
   
-  <bean id="javax.jcr.Credentials.default" class="javax.jcr.SimpleCredentials">
+  <bean id="javax.jcr.Credentials.default.live" class="javax.jcr.SimpleCredentials">
     <constructor-arg value="admin" />
     <constructor-arg value="admin" />
   </bean>
@@ -38,12 +38,12 @@
     <!-- Delegating session pool repositories -->
     <constructor-arg>
       <map>
-        <entry key-ref="javax.jcr.Credentials.default" value-ref="javax.jcr.Repository.default" />
+        <entry key-ref="javax.jcr.Credentials.default.live" value-ref="javax.jcr.Repository.default.live" />
         <entry key-ref="javax.jcr.Credentials.writable" value-ref="javax.jcr.Repository.writable" />
       </map>
     </constructor-arg>
     <!-- The default credentials for login() without credentials parameter. -->
-    <constructor-arg ref="javax.jcr.Credentials.default" />
+    <constructor-arg ref="javax.jcr.Credentials.default.live" />
   </bean>
   
   <bean id="javax.jcr.Repository.default" class="org.hippoecm.hst.core.jcr.pool.BasicPoolingRepository" 
Index: components/core/src/main/resources/org/hippoecm/hst/site/container/SpringComponentManager-request.xml
===================================================================
--- components/core/src/main/resources/org/hippoecm/hst/site/container/SpringComponentManager-request.xml	(revision 21377)
+++ components/core/src/main/resources/org/hippoecm/hst/site/container/SpringComponentManager-request.xml	(working copy)
@@ -27,7 +27,7 @@
   <!-- Commons configuration from collab.properties -->
   <bean id="org.hippoecm.hst.core.request.HstRequestContextComponent" class="org.hippoecm.hst.site.request.HstRequestContextComponentImpl">
     <constructor-arg ref="javax.jcr.Repository" />
-    <constructor-arg ref="javax.jcr.Credentials.default" />
+    <constructor-arg ref="javax.jcr.Credentials.default.live" />
   </bean>
   
   <bean id="org.hippoecm.hst.core.container.HstRequestProcessor" class="org.hippoecm.hst.core.container.HstRequestProcessorImpl">
Index: components/core/src/main/resources/org/hippoecm/hst/site/container/SpringComponentManager.properties
===================================================================
--- components/core/src/main/resources/org/hippoecm/hst/site/container/SpringComponentManager.properties	(revision 21377)
+++ components/core/src/main/resources/org/hippoecm/hst/site/container/SpringComponentManager.properties	(working copy)
@@ -23,7 +23,7 @@
 
 # the global user that should be able to read all configuration and retrieve all events
 hstconfigreader.repository.address = 
-hstconfigreader.repository.user.name = admin
+hstconfigreader.repository.user.name = admin@hstconfigreader
 hstconfigreader.repository.password = admin
 
 default.sites.name = testproject
@@ -41,3 +41,17 @@
 component.error.page = 
 
 repositoryProviderClassName = org.hippoecm.hst.core.jcr.pool.JcrHippoRepositoryProvider
+
+# default session pool properties
+session.pool.defaults.maxActive = 25
+session.pool.defaults.maxIdle = 10
+session.pool.defaults.minIdle = 0
+session.pool.defaults.initialSize = 0
+session.pool.defaults.maxWait = 10000
+session.pool.defaults.testOnBorrow = true
+session.pool.defaults.testOnReturn = false
+session.pool.defaults.testWhileIdle = false
+session.pool.defaults.timeBetweenEvictionRunsMillis = 3600000
+session.pool.defaults.numTestsPerEvictionRun = 1
+session.pool.defaults.minEvictableIdleTimeMillis = 3600000
+session.pool.defaults.refreshOnPassivate = false
Index: components/core/src/main/resources/org/hippoecm/hst/site/container/SpringComponentManager-jcr.xml
===================================================================
--- components/core/src/main/resources/org/hippoecm/hst/site/container/SpringComponentManager-jcr.xml	(revision 21377)
+++ components/core/src/main/resources/org/hippoecm/hst/site/container/SpringComponentManager-jcr.xml	(working copy)
@@ -23,106 +23,134 @@
                            http://www.springframework.org/schema/lang http://www.springframework.org/schema/beans/spring-lang-2.5.xsd
                            http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
                            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
-
-  <bean id="javax.jcr.Credentials.default" class="javax.jcr.SimpleCredentials">
-    <constructor-arg value="${default.repository.user.name}"/>
-    <constructor-arg value="${default.repository.password}"/>
+  
+  <bean id="javax.jcr.Credentials.hstconfigreader" class="javax.jcr.SimpleCredentials">
+    <constructor-arg value="${hstconfigreader.repository.user.name}"/>
+    <constructor-arg value="${hstconfigreader.repository.password}"/>
+  </bean>
+  
+  <bean id="javax.jcr.Credentials.default.live" class="javax.jcr.SimpleCredentials">
+    <constructor-arg value="${default.live.repository.user.name}"/>
+    <constructor-arg value="${default.live.repository.password}"/>
+  </bean>
+  
+  <bean id="javax.jcr.Credentials.default.preview" class="javax.jcr.SimpleCredentials">
+    <constructor-arg value="${default.preview.repository.user.name}"/>
+    <constructor-arg value="${default.preview.repository.password}"/>
   </bean>
-
+  
   <bean id="javax.jcr.Credentials.writable" class="javax.jcr.SimpleCredentials">
     <constructor-arg value="${writable.repository.user.name}"/>
     <constructor-arg value="${writable.repository.password}"/>
   </bean>
-
-  <bean id="javax.jcr.Credentials.hstconfigreader" class="javax.jcr.SimpleCredentials">
-    <constructor-arg value="${hstconfigreader.repository.user.name}"/>
-    <constructor-arg value="${hstconfigreader.repository.password}"/>
-  </bean>
-
+  
   <!--
   <bean id="javax.jcr.Credentials.event.based" class="javax.jcr.SimpleCredentials">
     <constructor-arg value="${event.based.repository.user.name}" />
     <constructor-arg value="${event.based.repository.password}" />
   </bean>
   -->
-
+  
   <bean id="javax.jcr.Repository" class="org.hippoecm.hst.core.jcr.pool.MultipleRepositoryImpl">
     <!-- Delegating session pool repositories -->
     <constructor-arg>
       <map>
-        <entry key-ref="javax.jcr.Credentials.default">
+        <entry key-ref="javax.jcr.Credentials.hstconfigreader">
           <bean class="org.hippoecm.hst.core.jcr.pool.BasicPoolingRepository"
             init-method="initialize" destroy-method="close">
             <!-- delegated JCR repository -->
             <property name="repositoryProviderClassName" value="${repositoryProviderClassName}" />
-            <property name="repositoryAddress" value="${default.repository.address}"/>
-            <property name="defaultCredentialsUserID" value="${default.repository.user.name}"/>
-            <property name="defaultCredentialsPassword" value="${default.repository.password}"/>
+            <property name="repositoryAddress" value="${hstconfigreader.repository.address}"/>
+            <property name="defaultCredentialsUserID" value="${hstconfigreader.repository.user.name}"/>
+            <property name="defaultCredentialsPassword" value="${hstconfigreader.repository.password}"/>
             <!-- Pool properties. Refer to the GenericObjectPool of commons-pool library. -->
-            <property name="maxActive" value="25"/>
-            <property name="maxIdle" value="10"/>
-            <property name="minIdle" value="0"/>
-            <property name="initialSize" value="0"/>
-            <property name="maxWait" value="10000"/>
-            <property name="testOnBorrow" value="true"/>
-            <property name="testOnReturn" value="false"/>
-            <property name="testWhileIdle" value="false"/>
-            <property name="timeBetweenEvictionRunsMillis" value="3600000"/>
-            <property name="numTestsPerEvictionRun" value="1"/>
-            <property name="minEvictableIdleTimeMillis" value="3600000"/>
-            <property name="refreshOnPassivate" value="false"/>
+            <property name="maxActive" value="${session.pool.defaults.maxActive}"/>
+            <property name="maxIdle" value="${session.pool.defaults.maxIdle}"/>
+            <property name="minIdle" value="${session.pool.defaults.minIdle}"/>
+            <property name="initialSize" value="${session.pool.defaults.initialSize}"/>
+            <property name="maxWait" value="${session.pool.defaults.maxWait}"/>
+            <property name="testOnBorrow" value="${session.pool.defaults.testOnBorrow}"/>
+            <property name="testOnReturn" value="${session.pool.defaults.testOnReturn}"/>
+            <property name="testWhileIdle" value="${session.pool.defaults.testWhileIdle}"/>
+            <property name="timeBetweenEvictionRunsMillis" value="${session.pool.defaults.timeBetweenEvictionRunsMillis}"/>
+            <property name="numTestsPerEvictionRun" value="${session.pool.defaults.numTestsPerEvictionRun}"/>
+            <property name="minEvictableIdleTimeMillis" value="${session.pool.defaults.minEvictableIdleTimeMillis}"/>
+            <property name="refreshOnPassivate" value="${session.pool.defaults.refreshOnPassivate}"/>
           </bean>
         </entry>
-        <entry key-ref="javax.jcr.Credentials.writable">
+        <entry key-ref="javax.jcr.Credentials.default.live">
+          <bean class="org.hippoecm.hst.core.jcr.pool.BasicPoolingRepository"
+            init-method="initialize" destroy-method="close">
+            <!-- delegated JCR repository -->
+            <property name="repositoryProviderClassName" value="${repositoryProviderClassName}" />
+            <property name="repositoryAddress" value="${default.live.repository.address}"/>
+            <property name="defaultCredentialsUserID" value="${default.live.repository.user.name}"/>
+            <property name="defaultCredentialsPassword" value="${default.live.repository.password}"/>
+            <!-- Pool properties. Refer to the GenericObjectPool of commons-pool library. -->
+            <property name="maxActive" value="${session.pool.defaults.maxActive}"/>
+            <property name="maxIdle" value="${session.pool.defaults.maxIdle}"/>
+            <property name="minIdle" value="${session.pool.defaults.minIdle}"/>
+            <property name="initialSize" value="${session.pool.defaults.initialSize}"/>
+            <property name="maxWait" value="${session.pool.defaults.maxWait}"/>
+            <property name="testOnBorrow" value="${session.pool.defaults.testOnBorrow}"/>
+            <property name="testOnReturn" value="${session.pool.defaults.testOnReturn}"/>
+            <property name="testWhileIdle" value="${session.pool.defaults.testWhileIdle}"/>
+            <property name="timeBetweenEvictionRunsMillis" value="${session.pool.defaults.timeBetweenEvictionRunsMillis}"/>
+            <property name="numTestsPerEvictionRun" value="${session.pool.defaults.numTestsPerEvictionRun}"/>
+            <property name="minEvictableIdleTimeMillis" value="${session.pool.defaults.minEvictableIdleTimeMillis}"/>
+            <property name="refreshOnPassivate" value="${session.pool.defaults.refreshOnPassivate}"/>
+          </bean>
+        </entry>
+        <entry key-ref="javax.jcr.Credentials.default.preview">
           <bean class="org.hippoecm.hst.core.jcr.pool.BasicPoolingRepository"
             init-method="initialize" destroy-method="close">
             <!-- delegated JCR repository -->
             <property name="repositoryProviderClassName" value="${repositoryProviderClassName}" />
-            <property name="repositoryAddress" value="${writable.repository.address}"/>
-            <property name="defaultCredentialsUserID" value="${writable.repository.user.name}"/>
-            <property name="defaultCredentialsPassword" value="${writable.repository.password}"/>
+            <property name="repositoryAddress" value="${default.preview.repository.address}"/>
+            <property name="defaultCredentialsUserID" value="${default.preview.repository.user.name}"/>
+            <property name="defaultCredentialsPassword" value="${default.preview.repository.password}"/>
             <!-- Pool properties. Refer to the GenericObjectPool of commons-pool library. -->
-            <property name="maxActive" value="25"/>
-            <property name="maxIdle" value="10"/>
-            <property name="minIdle" value="0"/>
-            <property name="initialSize" value="0"/>
-            <property name="maxWait" value="10000"/>
-            <property name="testOnBorrow" value="true"/>
-            <property name="testOnReturn" value="false"/>
-            <property name="testWhileIdle" value="false"/>
-            <property name="timeBetweenEvictionRunsMillis" value="3600000"/>
-            <property name="numTestsPerEvictionRun" value="1"/>
-            <property name="minEvictableIdleTimeMillis" value="3600000"/>
-            <property name="refreshOnPassivate" value="false"/>
+            <property name="maxActive" value="${session.pool.defaults.maxActive}"/>
+            <property name="maxIdle" value="${session.pool.defaults.maxIdle}"/>
+            <property name="minIdle" value="${session.pool.defaults.minIdle}"/>
+            <property name="initialSize" value="${session.pool.defaults.initialSize}"/>
+            <property name="maxWait" value="${session.pool.defaults.maxWait}"/>
+            <property name="testOnBorrow" value="${session.pool.defaults.testOnBorrow}"/>
+            <property name="testOnReturn" value="${session.pool.defaults.testOnReturn}"/>
+            <property name="testWhileIdle" value="${session.pool.defaults.testWhileIdle}"/>
+            <property name="timeBetweenEvictionRunsMillis" value="${session.pool.defaults.timeBetweenEvictionRunsMillis}"/>
+            <property name="numTestsPerEvictionRun" value="${session.pool.defaults.numTestsPerEvictionRun}"/>
+            <property name="minEvictableIdleTimeMillis" value="${session.pool.defaults.minEvictableIdleTimeMillis}"/>
+            <property name="refreshOnPassivate" value="${session.pool.defaults.refreshOnPassivate}"/>
           </bean>
         </entry>
-        <entry key-ref="javax.jcr.Credentials.hstconfigreader">
+        <entry key-ref="javax.jcr.Credentials.writable">
           <bean class="org.hippoecm.hst.core.jcr.pool.BasicPoolingRepository"
             init-method="initialize" destroy-method="close">
             <!-- delegated JCR repository -->
             <property name="repositoryProviderClassName" value="${repositoryProviderClassName}" />
-            <property name="repositoryAddress" value="${hstconfigreader.repository.address}"/>
-            <property name="defaultCredentialsUserID" value="${hstconfigreader.repository.user.name}"/>
-            <property name="defaultCredentialsPassword" value="${hstconfigreader.repository.password}"/>
+            <property name="repositoryAddress" value="${writable.repository.address}"/>
+            <property name="defaultCredentialsUserID" value="${writable.repository.user.name}"/>
+            <property name="defaultCredentialsPassword" value="${writable.repository.password}"/>
             <!-- Pool properties. Refer to the GenericObjectPool of commons-pool library. -->
-            <property name="maxActive" value="25"/>
-            <property name="maxIdle" value="10"/>
-            <property name="minIdle" value="0"/>
-            <property name="initialSize" value="0"/>
-            <property name="maxWait" value="10000"/>
-            <property name="testOnBorrow" value="true"/>
-            <property name="testOnReturn" value="false"/>
-            <property name="testWhileIdle" value="false"/>
-            <property name="timeBetweenEvictionRunsMillis" value="3600000"/>
-            <property name="numTestsPerEvictionRun" value="1"/>
-            <property name="minEvictableIdleTimeMillis" value="3600000"/>
-            <property name="refreshOnPassivate" value="false"/>
+            <property name="maxActive" value="${session.pool.defaults.maxActive}"/>
+            <property name="maxIdle" value="${session.pool.defaults.maxIdle}"/>
+            <property name="minIdle" value="${session.pool.defaults.minIdle}"/>
+            <property name="initialSize" value="${session.pool.defaults.initialSize}"/>
+            <property name="maxWait" value="${session.pool.defaults.maxWait}"/>
+            <property name="testOnBorrow" value="${session.pool.defaults.testOnBorrow}"/>
+            <property name="testOnReturn" value="${session.pool.defaults.testOnReturn}"/>
+            <property name="testWhileIdle" value="${session.pool.defaults.testWhileIdle}"/>
+            <property name="timeBetweenEvictionRunsMillis" value="${session.pool.defaults.timeBetweenEvictionRunsMillis}"/>
+            <property name="numTestsPerEvictionRun" value="${session.pool.defaults.numTestsPerEvictionRun}"/>
+            <property name="minEvictableIdleTimeMillis" value="${session.pool.defaults.minEvictableIdleTimeMillis}"/>
+            <property name="refreshOnPassivate" value="${session.pool.defaults.refreshOnPassivate}"/>
           </bean>
         </entry>
       </map>
     </constructor-arg>
     <!-- The default credentials for login() without credentials parameter. -->
-    <constructor-arg ref="javax.jcr.Credentials.default"/>
+    <constructor-arg ref="javax.jcr.Credentials.default.live"/>
   </bean>
 
 </beans>
Index: components/core/src/main/resources/org/hippoecm/hst/site/container/SpringComponentManager-observation.xml
===================================================================
--- components/core/src/main/resources/org/hippoecm/hst/site/container/SpringComponentManager-observation.xml	(revision 21377)
+++ components/core/src/main/resources/org/hippoecm/hst/site/container/SpringComponentManager-observation.xml	(working copy)
@@ -127,7 +127,16 @@
                     <property name="targetMethod" value="getRepositoryByCredentials"/>
                     <property name="arguments">
                       <list>
-                        <ref bean="javax.jcr.Credentials.default"/>
+                        <ref bean="javax.jcr.Credentials.default.live"/>
+                      </list>
+                    </property>
+                  </bean>
+                  <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
+                    <property name="targetObject" ref="javax.jcr.Repository"/>
+                    <property name="targetMethod" value="getRepositoryByCredentials"/>
+                    <property name="arguments">
+                      <list>
+                        <ref bean="javax.jcr.Credentials.default.preview"/>
                       </list>
                     </property>
                   </bean>
Index: components/core/src/test/resources/org/hippoecm/hst/core/configuration/TestConfiguration.xml
===================================================================
--- components/core/src/test/resources/org/hippoecm/hst/core/configuration/TestConfiguration.xml	(revision 21377)
+++ components/core/src/test/resources/org/hippoecm/hst/core/configuration/TestConfiguration.xml	(working copy)
@@ -29,7 +29,7 @@
     <bean id="org.hippoecm.hst.configuration.HstSitesManager" class="org.hippoecm.hst.configuration.HstSitesManagerImpl">
       <property name="repository" ref="javax.jcr.Repository" />
       <property name="sitesContentPath" value="testpreview" />
-      <property name="credentials" ref="javax.jcr.Credentials.default" />
+      <property name="credentials" ref="javax.jcr.Credentials.default.live" />
     </bean>  
     
 </beans>
\ No newline at end of file
Index: components/core/src/test/resources/org/hippoecm/hst/core/hosting/TestVirtualHosting.xml
===================================================================
--- components/core/src/test/resources/org/hippoecm/hst/core/hosting/TestVirtualHosting.xml	(revision 21377)
+++ components/core/src/test/resources/org/hippoecm/hst/core/hosting/TestVirtualHosting.xml	(working copy)
@@ -30,7 +30,7 @@
         <constructor-arg value="testproject"/>
         <constructor-arg value="/hst:testvirtualhosts"/>
         <property name="repository" ref="javax.jcr.Repository" />
-        <property name="credentials" ref="javax.jcr.Credentials.default" />  
+        <property name="credentials" ref="javax.jcr.Credentials.default.live" />  
     </bean>  
     
 </beans>
\ No newline at end of file
Index: components/core/src/test/resources/org/hippoecm/hst/core/GeneralMultiplePoolingRepository.xml
===================================================================
--- components/core/src/test/resources/org/hippoecm/hst/core/GeneralMultiplePoolingRepository.xml	(revision 21377)
+++ components/core/src/test/resources/org/hippoecm/hst/core/GeneralMultiplePoolingRepository.xml	(working copy)
@@ -24,7 +24,7 @@
                            http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
                            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
   
-  <bean id="javax.jcr.Credentials.default" class="javax.jcr.SimpleCredentials">
+  <bean id="javax.jcr.Credentials.default.live" class="javax.jcr.SimpleCredentials">
     <constructor-arg value="admin" />
     <constructor-arg value="admin" />
   </bean>
@@ -38,12 +38,12 @@
     <!-- Delegating session pool repositories -->
     <constructor-arg>
       <map>
-        <entry key-ref="javax.jcr.Credentials.default" value-ref="javax.jcr.Repository.default" />
+        <entry key-ref="javax.jcr.Credentials.default.live" value-ref="javax.jcr.Repository.default.live" />
         <entry key-ref="javax.jcr.Credentials.writable" value-ref="javax.jcr.Repository.writable" />
       </map>
     </constructor-arg>
     <!-- The default credentials for login() without credentials parameter. -->
-    <constructor-arg ref="javax.jcr.Credentials.default" />
+    <constructor-arg ref="javax.jcr.Credentials.default.live" />
   </bean>
   
   <bean id="javax.jcr.Repository.default" class="org.hippoecm.hst.core.jcr.pool.BasicPoolingRepository" 
Index: maven/archetype_7_1/src/main/resources/archetype-resources/site/src/main/webapp/WEB-INF/hst-config.properties
===================================================================
--- maven/archetype_7_1/src/main/resources/archetype-resources/site/src/main/webapp/WEB-INF/hst-config.properties	(revision 21377)
+++ maven/archetype_7_1/src/main/resources/archetype-resources/site/src/main/webapp/WEB-INF/hst-config.properties	(working copy)
@@ -26,17 +26,26 @@
 
 check.repositories.running = false
 
-# the global user that should be able to read all configuration and retrieve all events
-hstconfigreader.repository.address = rmi://127.0.0.1:1099/hipporepository
-hstconfigreader.repository.user.name = admin
+${symbol_pound} The default repository address 
+default.repository.address = rmi://127.0.0.1:1099/hipporepository
+
+${symbol_pound} The global user that should be able to read all configuration and retrieve all events
+hstconfigreader.repository.address = ${symbol_dollar}{default.repository.address}
+hstconfigreader.repository.user.name = admin@hstconfigreader
 hstconfigreader.repository.password = admin
 
-default.repository.address = rmi://127.0.0.1:1099/hipporepository
-default.repository.user.name = admin
-default.repository.password = admin
+${symbol_pound} Typically configure a user having read access on published documents only. (Recommended for production env.)
+default.live.repository.address = ${symbol_dollar}{default.repository.address}
+default.live.repository.user.name = admin@live
+default.live.repository.password = admin
+
+${symbol_pound} Typically configure a user having read access on unpublished and published documents only. (Recommended for production env.)
+default.preview.repository.address = ${symbol_dollar}{default.repository.address}
+default.preview.repository.user.name = admin@preview
+default.preview.repository.password = admin
 
-writable.repository.address = rmi://127.0.0.1:1099/hipporepository
-writable.repository.user.name = admin
+writable.repository.address = ${symbol_dollar}{default.repository.address}
+writable.repository.user.name = admin@writable
 writable.repository.password = admin
 
 
Index: maven/archetype_7_2/src/main/resources/archetype-resources/site/src/main/webapp/WEB-INF/hst-config.properties
===================================================================
--- maven/archetype_7_2/src/main/resources/archetype-resources/site/src/main/webapp/WEB-INF/hst-config.properties	(revision 21377)
+++ maven/archetype_7_2/src/main/resources/archetype-resources/site/src/main/webapp/WEB-INF/hst-config.properties	(working copy)
@@ -26,17 +26,26 @@
 
 check.repositories.running = false
 
-# the global user that should be able to read all configuration and retrieve all events
-hstconfigreader.repository.address = rmi://127.0.0.1:1099/hipporepository
-hstconfigreader.repository.user.name = admin
+${symbol_pound} The default repository address 
+default.repository.address = rmi://127.0.0.1:1099/hipporepository
+
+${symbol_pound} The global user that should be able to read all configuration and retrieve all events
+hstconfigreader.repository.address = ${symbol_dollar}{default.repository.address}
+hstconfigreader.repository.user.name = admin@hstconfigreader
 hstconfigreader.repository.password = admin
 
-default.repository.address = rmi://127.0.0.1:1099/hipporepository
-default.repository.user.name = admin
-default.repository.password = admin
+${symbol_pound} Typically configure a user having read access on published documents only. (Recommended for production env.)
+default.live.repository.address = ${symbol_dollar}{default.repository.address}
+default.live.repository.user.name = admin@live
+default.live.repository.password = admin
+
+${symbol_pound} Typically configure a user having read access on unpublished and published documents only. (Recommended for production env.)
+default.preview.repository.address = ${symbol_dollar}{default.repository.address}
+default.preview.repository.user.name = admin@preview
+default.preview.repository.password = admin
 
-writable.repository.address = rmi://127.0.0.1:1099/hipporepository
-writable.repository.user.name = admin
+writable.repository.address = ${symbol_dollar}{default.repository.address}
+writable.repository.user.name = admin@writable
 writable.repository.password = admin
 
 
Index: testsuite/site/src/main/webapp/WEB-INF/hst-config.properties
===================================================================
--- testsuite/site/src/main/webapp/WEB-INF/hst-config.properties	(revision 21377)
+++ testsuite/site/src/main/webapp/WEB-INF/hst-config.properties	(working copy)
@@ -21,17 +21,26 @@
 
 check.repositories.running = false
 
-# the global user that should be able to read all configuration and retrieve all events
-hstconfigreader.repository.address = rmi://127.0.0.1:1099/hipporepository
-hstconfigreader.repository.user.name = admin
+# The default repository address 
+default.repository.address = rmi://127.0.0.1:1099/hipporepository
+
+# The global user that should be able to read all configuration and retrieve all events
+hstconfigreader.repository.address = ${default.repository.address}
+hstconfigreader.repository.user.name = admin@hstconfigreader
 hstconfigreader.repository.password = admin
 
-default.repository.address = rmi://127.0.0.1:1099/hipporepository
-default.repository.user.name = admin
-default.repository.password = admin
+# Typically configure a user having read access on published documents only. (Recommended for production env.)
+default.live.repository.address = ${default.repository.address}
+default.live.repository.user.name = admin@live
+default.live.repository.password = admin
+
+# Typically configure a user having read access on unpublished and published documents only. (Recommended for production env.)
+default.preview.repository.address = ${default.repository.address}
+default.preview.repository.user.name = admin@preview
+default.preview.repository.password = admin
 
-writable.repository.address = rmi://127.0.0.1:1099/hipporepository
-writable.repository.user.name = admin
+writable.repository.address = ${default.repository.address}
+writable.repository.user.name = admin@writable
 writable.repository.password = admin
 
 default.sites.name = testproject
Index: demosuite/site/src/main/resources/META-INF/hst-assembly/overrides/lazy-multiple-repository.xml
===================================================================
--- demosuite/site/src/main/resources/META-INF/hst-assembly/overrides/lazy-multiple-repository.xml	(revision 21377)
+++ demosuite/site/src/main/resources/META-INF/hst-assembly/overrides/lazy-multiple-repository.xml	(working copy)
@@ -27,13 +27,13 @@
   <!-- If you want to use a lazy multiple pooling JCR repository, uncomment the following and configure the correct configuration properties. -->
   <!--
   <bean id="javax.jcr.Repository" class="org.hippoecm.hst.core.jcr.pool.LazyMultipleRepositoryImpl">
-    <constructor-arg><ref bean="javax.jcr.Credentials.default"/></constructor-arg>
+    <constructor-arg><ref bean="javax.jcr.Credentials.default.live"/></constructor-arg>
     <constructor-arg>
       <map key-type="java.lang.String" value-type="java.lang.String">
         <entry key="repositoryProviderClassName" value="${repositoryProviderClassName}" />
-        <entry key="repositoryAddress" value="${default.repository.address}"/>
-        <entry key="defaultCredentialsUserID" value="${default.repository.user.name}"/>
-        <entry key="defaultCredentialsPassword" value="${default.repository.password}"/>
+        <entry key="repositoryAddress" value="${default.live.repository.address}"/>
+        <entry key="defaultCredentialsUserID" value="${default.live.repository.user.name}"/>
+        <entry key="defaultCredentialsPassword" value="${default.live.repository.password}"/>
         <entry key="maxActive" value="25"/>
         <entry key="maxIdle" value="10"/>
         <entry key="minIdle" value="0"/>
Index: demosuite/site/src/main/webapp/WEB-INF/hst-config.properties
===================================================================
--- demosuite/site/src/main/webapp/WEB-INF/hst-config.properties	(revision 21377)
+++ demosuite/site/src/main/webapp/WEB-INF/hst-config.properties	(working copy)
@@ -21,17 +21,26 @@
 
 check.repositories.running = false
 
-# the global user that should be able to read all configuration and retrieve all events
-hstconfigreader.repository.address = rmi://127.0.0.1:1099/hipporepository
-hstconfigreader.repository.user.name = admin
+# The default repository address 
+default.repository.address = rmi://127.0.0.1:1099/hipporepository
+
+# The global user that should be able to read all configuration and retrieve all events
+hstconfigreader.repository.address = ${default.repository.address}
+hstconfigreader.repository.user.name = admin@hstconfigreader
 hstconfigreader.repository.password = admin
 
-default.repository.address = rmi://127.0.0.1:1099/hipporepository
-default.repository.user.name = admin
-default.repository.password = admin
+# Typically configure a user having read access on published documents only. (Recommended for production env.)
+default.live.repository.address = ${default.repository.address}
+default.live.repository.user.name = admin@live
+default.live.repository.password = admin
+
+# Typically configure a user having read access on unpublished and published documents only. (Recommended for production env.)
+default.preview.repository.address = ${default.repository.address}
+default.preview.repository.user.name = admin@preview
+default.preview.repository.password = admin
 
-writable.repository.address = rmi://127.0.0.1:1099/hipporepository
-writable.repository.user.name = admin
+writable.repository.address = ${default.repository.address}
+writable.repository.user.name = admin@writable
 writable.repository.password = admin
 
 default.sites.name = demosite
