You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2013/01/04 16:14:59 UTC

[6/6] git commit: ISIS-290: updating quickstart_wrj-archetype

Updated Branches:
  refs/heads/master 24563eaea -> b09d1d232


ISIS-290: updating quickstart_wrj-archetype


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/b09d1d23
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/b09d1d23
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/b09d1d23

Branch: refs/heads/master
Commit: b09d1d2329c59f76c133c5540fd07850cb0aa933
Parents: f3edeb3
Author: Dan Haywood <da...@apache.org>
Authored: Fri Jan 4 13:26:51 2013 +0000
Committer: Dan Haywood <da...@apache.org>
Committed: Fri Jan 4 13:26:51 2013 +0000

----------------------------------------------------------------------
 .../shiro/ShiroAuthenticatorOrAuthorizorTest.java  |  181 ++++++++-------
 .../viewer-webapp/pom.xml                          |   92 ++++----
 .../viewer-webapp/src/main/webapp/about/index.html |    6 +-
 .../META-INF/maven/archetype-metadata.xml          |    7 +-
 .../main/java/fixture/todo/ToDoItemsFixture.java   |   26 ++
 .../fixture/todo/ToDoItemsFixturesService.java     |   22 ++-
 .../src/main/resources/archetype-resources/pom.xml |    8 +
 .../archetype-resources/viewer-webapp/pom.xml      |  117 ++++------
 .../src/main/jettyconsole/isis-banner.pdn          |  Bin 66390 -> 66892 bytes
 .../src/main/jettyconsole/isis-banner.png          |  Bin 29047 -> 30003 bytes
 .../src/main/resources/images/Default.png          |  Bin 3016 -> 0 bytes
 .../src/main/webapp/WEB-INF/isis.properties        |    6 +-
 .../src/main/webapp/WEB-INF/shiro.ini              |   61 +++++
 .../viewer-webapp/src/main/webapp/WEB-INF/web.xml  |   44 +++-
 .../viewer-webapp/src/main/webapp/about/index.html |   50 +++--
 .../resources/projects/basic/archetype.properties  |    2 +-
 16 files changed, 386 insertions(+), 236 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/b09d1d23/component/security/shiro/src/test/java/org/apache/isis/security/shiro/ShiroAuthenticatorOrAuthorizorTest.java
----------------------------------------------------------------------
diff --git a/component/security/shiro/src/test/java/org/apache/isis/security/shiro/ShiroAuthenticatorOrAuthorizorTest.java b/component/security/shiro/src/test/java/org/apache/isis/security/shiro/ShiroAuthenticatorOrAuthorizorTest.java
index b6c0d94..a68f75f 100644
--- a/component/security/shiro/src/test/java/org/apache/isis/security/shiro/ShiroAuthenticatorOrAuthorizorTest.java
+++ b/component/security/shiro/src/test/java/org/apache/isis/security/shiro/ShiroAuthenticatorOrAuthorizorTest.java
@@ -42,6 +42,7 @@ import org.apache.shiro.session.Session;
 import org.apache.shiro.subject.Subject;
 import org.apache.shiro.util.Factory;
 import org.jmock.Expectations;
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -53,38 +54,47 @@ public class ShiroAuthenticatorOrAuthorizorTest {
 
     @Mock
     private IsisConfiguration mockConfiguration;
-    
+
     private ShiroAuthenticatorOrAuthorizor authOrAuth;
 
     @Before
     public void setUp() throws Exception {
         authOrAuth = new ShiroAuthenticatorOrAuthorizor(mockConfiguration);
+        authOrAuth.init();
     }
-    
+
+    @After
+    public void tearDown() throws Exception {
+        SecurityUtils.setSecurityManager(null);
+    }
+
     @Test
-    public void happyCase() throws Exception {
+    public void cannotAuthenticateIfShiroEnvironmentNotInitialized() throws Exception {
 
-        context.checking(new Expectations() {
-            {
-                allowing(mockConfiguration).getString(with("isis.security.shiro.iniLocation"));
-                will(returnValue("classpath:shiro.ini"));
-            }
-        });
+        assertThat(authOrAuth.canAuthenticate(AuthenticationRequestPassword.class), is(false));
+        assertThat(authOrAuth.authenticate(new AuthenticationRequestPassword("dummy", "dummy"), "unused"), is(nullValue()));
+    }
 
+    @Test
+    public void happyCase() throws Exception {
+
+        Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");
+        SecurityManager securityManager = factory.getInstance();
+        SecurityUtils.setSecurityManager(securityManager);
 
-        authOrAuth.init();
-        assertThat(authOrAuth.canAuthenticate(AuthenticationRequestPassword.class), is(true));
         
+        assertThat(authOrAuth.canAuthenticate(AuthenticationRequestPassword.class), is(true));
+
         AuthenticationRequest ar = new AuthenticationRequestPassword("lonestarr", "vespa");
         AuthenticationSession isisAuthSession = authOrAuth.authenticate(ar, null);
-        
+
         assertThat(isisAuthSession, is(not(nullValue())));
         assertThat(isisAuthSession.getUserName(), is("lonestarr"));
         assertThat(isisAuthSession.getValidationCode(), is(nullValue()));
 
         Identifier changeAddressIdentifier = Identifier.actionIdentifier("com.mycompany.myapp.Customer", "changeAddress", String.class, String.class);
         assertThat(authOrAuth.isVisibleInAnyRole(changeAddressIdentifier), is(true));
-        
+
         Identifier changeEmailIdentifier = Identifier.actionIdentifier("com.mycompany.myapp.Customer", "changeEmail", String.class);
         assertThat(authOrAuth.isVisibleInAnyRole(changeEmailIdentifier), is(true));
 
@@ -94,73 +104,84 @@ public class ShiroAuthenticatorOrAuthorizorTest {
         Identifier cancelOrderIdentifier = Identifier.actionIdentifier("com.mycompany.myapp.Order", "cancel");
         assertThat(authOrAuth.isVisibleInAnyRole(cancelOrderIdentifier), is(false));
 
-        
-//        // Use the shiro.ini file at the root of the classpath
-//        // (file: and url: prefixes load from files and urls respectively):
-//        Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");
-//        SecurityManager securityManager = factory.getInstance();
-//
-//        // for this simple example quickstart, make the SecurityManager
-//        // accessible as a JVM singleton.  Most applications wouldn't do this
-//        // and instead rely on their container configuration or web.xml for
-//        // webapps.  That is outside the scope of this simple quickstart, so
-//        // we'll just do the bare minimum so you can continue to get a feel
-//        // for things.
-//        SecurityUtils.setSecurityManager(securityManager);
-//
-//        // Now that a simple Shiro environment is set up, let's see what you can do:
-//
-//        // get the currently executing user:
-//        Subject currentUser = SecurityUtils.getSubject();
-//
-//        // Do some stuff with a Session (no need for a web or EJB container!!!)
-//        Session session = currentUser.getSession();
-//        session.setAttribute("someKey", "aValue");
-//        String value = (String) session.getAttribute("someKey");
-//        if (value.equals("aValue")) {
-//            System.out.println("Retrieved the correct value! [" + value + "]");
-//        }
-//
-//        // let's login the current user so we can check against roles and permissions:
-//        if (!currentUser.isAuthenticated()) {
-//            UsernamePasswordToken token = new UsernamePasswordToken("lonestarr", "vespa");
-//            token.setRememberMe(true);
-//            try {
-//                currentUser.login(token);
-//            } catch (UnknownAccountException uae) {
-//                System.out.println("There is no user with username of " + token.getPrincipal());
-//            } catch (IncorrectCredentialsException ice) {
-//                System.out.println("Password for account " + token.getPrincipal() + " was incorrect!");
-//            } catch (LockedAccountException lae) {
-//                System.out.println("The account for username " + token.getPrincipal() + " is locked.  " +
-//                        "Please contact your administrator to unlock it.");
-//            }
-//            // ... catch more exceptions here (maybe custom ones specific to your application?
-//            catch (AuthenticationException ae) {
-//                //unexpected condition?  error?
-//            }
-//        }
-//
-//        //say who they are:
-//        //print their identifying principal (in this case, a username):
-//        System.out.println("User [" + currentUser.getPrincipal() + "] logged in successfully.");
-//
-//        //test a role:
-//        if (currentUser.hasRole("schwartz")) {
-//            System.out.println("May the Schwartz be with you!");
-//        } else {
-//            System.out.println("Hello, mere mortal.");
-//        }
-//
-//        //test a typed permission (not instance-level)
-//        if (currentUser.isPermitted("com.mycompany.myapp:Customer:changeAddress:w")) {
-//            System.out.println("You may invoke the customer's changeAddress action.");
-//        } else {
-//            System.out.println("Sorry, changing address is only allowed for schwartz masters only.");
-//        }
-//
-//        //all done - log out!
-//        currentUser.logout();
+        // // Use the shiro.ini file at the root of the classpath
+        // // (file: and url: prefixes load from files and urls respectively):
+        // Factory<SecurityManager> factory = new
+        // IniSecurityManagerFactory("classpath:shiro.ini");
+        // SecurityManager securityManager = factory.getInstance();
+        //
+        // // for this simple example quickstart, make the SecurityManager
+        // // accessible as a JVM singleton. Most applications wouldn't do this
+        // // and instead rely on their container configuration or web.xml for
+        // // webapps. That is outside the scope of this simple quickstart, so
+        // // we'll just do the bare minimum so you can continue to get a feel
+        // // for things.
+        // SecurityUtils.setSecurityManager(securityManager);
+        //
+        // // Now that a simple Shiro environment is set up, let's see what you
+        // can do:
+        //
+        // // get the currently executing user:
+        // Subject currentUser = SecurityUtils.getSubject();
+        //
+        // // Do some stuff with a Session (no need for a web or EJB
+        // container!!!)
+        // Session session = currentUser.getSession();
+        // session.setAttribute("someKey", "aValue");
+        // String value = (String) session.getAttribute("someKey");
+        // if (value.equals("aValue")) {
+        // System.out.println("Retrieved the correct value! [" + value + "]");
+        // }
+        //
+        // // let's login the current user so we can check against roles and
+        // permissions:
+        // if (!currentUser.isAuthenticated()) {
+        // UsernamePasswordToken token = new UsernamePasswordToken("lonestarr",
+        // "vespa");
+        // token.setRememberMe(true);
+        // try {
+        // currentUser.login(token);
+        // } catch (UnknownAccountException uae) {
+        // System.out.println("There is no user with username of " +
+        // token.getPrincipal());
+        // } catch (IncorrectCredentialsException ice) {
+        // System.out.println("Password for account " + token.getPrincipal() +
+        // " was incorrect!");
+        // } catch (LockedAccountException lae) {
+        // System.out.println("The account for username " + token.getPrincipal()
+        // + " is locked.  " +
+        // "Please contact your administrator to unlock it.");
+        // }
+        // // ... catch more exceptions here (maybe custom ones specific to your
+        // application?
+        // catch (AuthenticationException ae) {
+        // //unexpected condition? error?
+        // }
+        // }
+        //
+        // //say who they are:
+        // //print their identifying principal (in this case, a username):
+        // System.out.println("User [" + currentUser.getPrincipal() +
+        // "] logged in successfully.");
+        //
+        // //test a role:
+        // if (currentUser.hasRole("schwartz")) {
+        // System.out.println("May the Schwartz be with you!");
+        // } else {
+        // System.out.println("Hello, mere mortal.");
+        // }
+        //
+        // //test a typed permission (not instance-level)
+        // if
+        // (currentUser.isPermitted("com.mycompany.myapp:Customer:changeAddress:w"))
+        // {
+        // System.out.println("You may invoke the customer's changeAddress action.");
+        // } else {
+        // System.out.println("Sorry, changing address is only allowed for schwartz masters only.");
+        // }
+        //
+        // //all done - log out!
+        // currentUser.logout();
 
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/b09d1d23/example/application/quickstart_wicket_restful_jdo/viewer-webapp/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/pom.xml b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/pom.xml
index b8ef633..c646872 100644
--- a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/pom.xml
+++ b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/pom.xml
@@ -17,7 +17,7 @@
   specific language governing permissions and limitations
   under the License.
 --><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-	<modelVersion>4.0.0</modelVersion>
+    <modelVersion>4.0.0</modelVersion>
 
     <parent>
         <groupId>org.apache.isis.example.application</groupId>
@@ -25,19 +25,19 @@
         <version>1.0.1-SNAPSHOT</version>
     </parent>
 
-	<artifactId>quickstart_wicket_restful_jdo-viewer-webapp</artifactId>
-	<name>Quickstart Wicket/Restful/JDO Webapp</name>
+    <artifactId>quickstart_wicket_restful_jdo-viewer-webapp</artifactId>
+    <name>Quickstart Wicket/Restful/JDO Webapp</name>
 
-	<description>This module runs both the Wicket viewer and the Restfulobjects viewer in a single webapp configured to run using the datanucleus object store.</description>
+    <description>This module runs both the Wicket viewer and the Restfulobjects viewer in a single webapp configured to run using the datanucleus object store.</description>
 
-	<packaging>war</packaging>
+    <packaging>war</packaging>
 
-	<properties>
+    <properties>
         <siteBaseDir>..</siteBaseDir>
-	</properties>
+    </properties>
     
-	<build>
-		<plugins>
+    <build>
+        <plugins>
             <plugin>
                 <groupId>org.mortbay.jetty</groupId>
                 <artifactId>maven-jetty-plugin</artifactId>
@@ -75,11 +75,11 @@
                 </configuration>
             </plugin>
 
-		</plugins>
-	</build>
+        </plugins>
+    </build>
 
-	<dependencies>
-	
+    <dependencies>
+    
         <!-- other modules in this project -->
         <dependency>
             <groupId>${project.groupId}</groupId>
@@ -97,21 +97,21 @@
         
         
         <!-- other isis components -->
-		<dependency>
-			<groupId>org.apache.isis.viewer</groupId>
-			<artifactId>isis-viewer-wicket-impl</artifactId>
-		</dependency>
+        <dependency>
+            <groupId>org.apache.isis.viewer</groupId>
+            <artifactId>isis-viewer-wicket-impl</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.apache.isis.viewer</groupId>
             <artifactId>isis-viewer-restfulobjects-impl</artifactId>
         </dependency>
-		<dependency>
-			<groupId>org.apache.isis.security</groupId>
-			<artifactId>isis-security-shiro</artifactId>
-		</dependency>
+        <dependency>
+            <groupId>org.apache.isis.security</groupId>
+            <artifactId>isis-security-shiro</artifactId>
+        </dependency>
 
 
-		<!-- isis core -->
+        <!-- isis core -->
         <dependency>
             <groupId>org.apache.isis.core</groupId>
             <artifactId>isis-core-runtime</artifactId>
@@ -134,33 +134,37 @@
         </dependency>
 
 
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-servlet_2.5_spec</artifactId>
+            <scope>provided</scope>
+        </dependency>
 
-		<!-- 
-		  JDBC drivers 
-		  (for jdo objectstore)
-		  -->
+        <!-- 
+          JDBC drivers 
+          (for jdo objectstore)
+          -->
         <dependency>
             <groupId>org.hsqldb</groupId>
             <artifactId>hsqldb</artifactId>
         </dependency>
 
-		<!-- 
-		<dependency>
-			<groupId>com.microsoft.sqlserver</groupId>
-			<artifactId>jdbc</artifactId>
-			<version>4.0</version>
-			<scope>system</scope>
-			<optional>true</optional>
-			<systemPath>${basedir}/lib/sqljdbc4.jar</systemPath>
-		</dependency>
-		-->	
-
-		<dependency>
-		  <groupId>org.lazyluke</groupId>
-		  <artifactId>log4jdbc-remix</artifactId>
-		  <version>0.2.7</version>
-		</dependency>
-
-	</dependencies>
+        <!-- 
+        <dependency>
+            <groupId>com.microsoft.sqlserver</groupId>
+            <artifactId>jdbc</artifactId>
+            <version>4.0</version>
+            <scope>system</scope>
+            <optional>true</optional>
+            <systemPath>${basedir}/lib/sqljdbc4.jar</systemPath>
+        </dependency>
+        -->    
+
+        <dependency>
+          <groupId>org.lazyluke</groupId>
+          <artifactId>log4jdbc-remix</artifactId>
+        </dependency>
+
+    </dependencies>
 
 </project>

http://git-wip-us.apache.org/repos/asf/isis/blob/b09d1d23/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/about/index.html
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/about/index.html b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/about/index.html
index f22d516..69e82b1 100644
--- a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/about/index.html
+++ b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/about/index.html
@@ -56,13 +56,13 @@ th, td {
                 </tr>
                 <tr>
                     <td>Wicket Viewer</td>
-                    <td><a href="/wicket">/wicket</a></td>
+                    <td><a href="/wicket/">/wicket/</a></td>
                     <td>Provides a generic UI for end-users, built with <a href="http://wicket.apache.org">Apache Wicket</a>&trade;</td>
                     <td><a href="http://isis.apache.org/components/viewers/wicket/about.html">wicket viewer</a></td>
                 </tr>
                 <tr>
                     <td>RestfulObjects Viewer</td>
-                    <td><a href="/restful">/restful</a></td>
+                    <td><a href="/restful/">/restful/</a></td>
                     <td>Provides a RESTful API conformant with the <a href="http://restfulobjects.org">Restful Objects</a> spec</td>
                     <td><a href="http://isis.apache.org/components/viewers/restfulobjects/about.html">restfulobjects viewer</a></td>
                 </tr>
@@ -170,4 +170,4 @@ th, td {
             </ul>
         </div>
     </body>
-</html>
\ No newline at end of file
+</html>

http://git-wip-us.apache.org/repos/asf/isis/blob/b09d1d23/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/META-INF/maven/archetype-metadata.xml
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/META-INF/maven/archetype-metadata.xml b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/META-INF/maven/archetype-metadata.xml
index 8a92126..8c7709e 100644
--- a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/META-INF/maven/archetype-metadata.xml
+++ b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/META-INF/maven/archetype-metadata.xml
@@ -105,16 +105,11 @@
             <include>**/*.allow</include>
             <include>**/*.png</include>
             <include>**/*.js</include>
+            <include>**/*.ini</include>
             <include>**/*.css</include>
           </includes>
         </fileSet>
         <fileSet encoding="UTF-8">
-          <directory>src/main/resources</directory>
-          <includes>
-            <include>**/*.png</include>
-          </includes>
-        </fileSet>
-        <fileSet encoding="UTF-8">
           <directory>lib</directory>
           <includes>
             <include>**/*.gitignore</include>

http://git-wip-us.apache.org/repos/asf/isis/blob/b09d1d23/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/ToDoItemsFixture.java
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/ToDoItemsFixture.java b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/ToDoItemsFixture.java
index d954ef9..261d8ac 100644
--- a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/ToDoItemsFixture.java
+++ b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/ToDoItemsFixture.java
@@ -24,6 +24,7 @@ package fixture.todo;
 
 import java.util.List;
 
+import org.apache.isis.applib.annotation.Named;
 import org.apache.isis.applib.clock.Clock;
 import org.apache.isis.applib.fixtures.AbstractFixture;
 import org.joda.time.LocalDate;
@@ -48,18 +49,43 @@ public class ToDoItemsFixture extends AbstractFixture {
         getContainer().flush();
     }
 
+    public void installFor(String user) {
+
+        removeAllToDosFor(user);
+
+        createToDoItemForUser("Buy milk", Category.Domestic, user, daysFromToday(0));
+        createToDoItemForUser("Buy stamps", Category.Domestic, user, daysFromToday(0));
+        createToDoItemForUser("Pick up laundry", Category.Other, user, daysFromToday(6));
+        createToDoItemForUser("Write blog post", Category.Professional, user, null);
+        createToDoItemForUser("Organize brown bag", Category.Professional, user, daysFromToday(14));
+
+        getContainer().flush();
+    }
+
     // {{ helpers
     private void removeAllToDosForCurrentUser() {
+        
         final List<ToDoItem> allToDos = toDoItems.allToDos();
         for (final ToDoItem toDoItem : allToDos) {
             getContainer().remove(toDoItem);
         }
     }
 
+    private void removeAllToDosFor(String user) {
+        final List<ToDoItem> items = allMatches(ToDoItem.class, ToDoItem.thoseOwnedBy(user));
+        for (final ToDoItem toDoItem : items) {
+            getContainer().remove(toDoItem);
+        }
+    }
+
     private ToDoItem createToDoItemForCurrentUser(final String description, final Category category, final LocalDate dueBy) {
         return toDoItems.newToDo(description, category, dueBy);
     }
 
+    private ToDoItem createToDoItemForUser(final String description, final Category category, String user, final LocalDate dueBy) {
+        return toDoItems.newToDo(description, category, user, dueBy);
+    }
+
     private static LocalDate daysFromToday(final int i) {
         final LocalDate date = new LocalDate(Clock.getTimeAsDateTime());
         return date.plusDays(i);

http://git-wip-us.apache.org/repos/asf/isis/blob/b09d1d23/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/ToDoItemsFixturesService.java
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/ToDoItemsFixturesService.java b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/ToDoItemsFixturesService.java
index 8eae877..0d88138 100644
--- a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/ToDoItemsFixturesService.java
+++ b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/fixture/src/main/java/fixture/todo/ToDoItemsFixturesService.java
@@ -22,11 +22,15 @@
 
 package fixture.todo;
 
-import dom.todo.ToDoItems;
+import java.util.List;
 
 import org.apache.isis.applib.AbstractService;
 import org.apache.isis.applib.annotation.Named;
 
+import com.google.common.collect.Lists;
+
+import dom.todo.ToDoItems;
+
 /**
  * Enables fixtures to be installed from the application.
  */
@@ -41,8 +45,22 @@ public class ToDoItemsFixturesService extends AbstractService {
         return "Example fixtures installed";
     }
 
-    private ToDoItems toDoItems;
+    public String installFor(@Named("User") String user) {
+        final ToDoItemsFixture fixture = new ToDoItemsFixture();
+        fixture.setContainer(getContainer());
+        fixture.setToDoItems(toDoItems);
+        fixture.installFor(user);
+        return "Example fixtures installed for " + user;
+    }
+    public String default0InstallFor() {
+        return "guest";
+    }
+    public List<String> choices0InstallFor() {
+        return Lists.newArrayList("guest", "dick", "bob", "joe");
+    }
 
+    
+    private ToDoItems toDoItems;
     public void setToDoItems(final ToDoItems toDoItems) {
         this.toDoItems = toDoItems;
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/b09d1d23/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/pom.xml
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/pom.xml b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/pom.xml
index a063a0c..092b5b1 100644
--- a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/pom.xml
+++ b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/pom.xml
@@ -32,6 +32,7 @@
 		<isis-objectstore-jdo.version>1.0.0</isis-objectstore-jdo.version>
 		<isis-viewer-wicket.version>1.0.0</isis-viewer-wicket.version>
 		<isis-viewer-restfulobjects.version>1.0.0</isis-viewer-restfulobjects.version>
+		<isis-security-shiro.version>1.0.0-SNAPSHOT</isis-security-shiro.version>
 	</properties>
     
     <repositories>
@@ -180,6 +181,13 @@
 				<scope>import</scope>
 			</dependency>
 
+			<dependency>
+				<groupId>org.apache.isis.security</groupId>
+				<artifactId>isis-security-shiro</artifactId>
+				<version>${isis-security-shiro.version}</version>
+				<type>pom</type>
+				<scope>import</scope>
+			</dependency>
 
             <!-- this project's own modules -->
             <dependency>

http://git-wip-us.apache.org/repos/asf/isis/blob/b09d1d23/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/pom.xml
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/pom.xml b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/pom.xml
index 4a3f52e..fb371df 100644
--- a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/pom.xml
+++ b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/pom.xml
@@ -17,7 +17,7 @@
   specific language governing permissions and limitations
   under the License.
 --><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-	<modelVersion>4.0.0</modelVersion>
+    <modelVersion>4.0.0</modelVersion>
 
     <parent>
         <groupId>${groupId}</groupId>
@@ -25,19 +25,19 @@
         <version>${version}</version>
     </parent>
 
-	<artifactId>${artifactId}</artifactId>
-	<name>Quickstart Wicket/Restful/JDO Webapp</name>
+    <artifactId>${artifactId}</artifactId>
+    <name>Quickstart Wicket/Restful/JDO Webapp</name>
 
-	<description>This module runs both the Wicket viewer and the Restfulobjects viewer in a single webapp configured to run using the datanucleus object store.</description>
+    <description>This module runs both the Wicket viewer and the Restfulobjects viewer in a single webapp configured to run using the datanucleus object store.</description>
 
-	<packaging>war</packaging>
+    <packaging>war</packaging>
 
-	<properties>
+    <properties>
         <siteBaseDir>..</siteBaseDir>
-	</properties>
+    </properties>
     
-	<build>
-		<plugins>
+    <build>
+        <plugins>
             <plugin>
                 <groupId>org.mortbay.jetty</groupId>
                 <artifactId>maven-jetty-plugin</artifactId>
@@ -75,62 +75,46 @@
                 </configuration>
             </plugin>
 
-		</plugins>
-	</build>
+        </plugins>
+    </build>
 
-	<dependencies>
-	
+    <dependencies>
+    
         <!-- other modules in this project -->
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>${rootArtifactId}-dom</artifactId>
         </dependency>
-        
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>${rootArtifactId}-fixture</artifactId>
         </dependency>
-
-
-        <!-- objectstore/domain service/repository implementations -->
-        
+        <!-- objectstore/domain service/repository implementations (brings in dependency to objectstore-jdo)-->
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>${rootArtifactId}-objstore-jdo</artifactId>
         </dependency>
         
         
-        
-
-        <!-- isis viewers -->
-		<dependency>
-			<groupId>org.apache.isis.viewer</groupId>
-			<artifactId>isis-viewer-wicket-impl</artifactId>
-		</dependency>
-
+        <!-- other isis components -->
         <dependency>
             <groupId>org.apache.isis.viewer</groupId>
-            <artifactId>isis-viewer-restfulobjects-impl</artifactId>
-        </dependency>
-
-
-
-
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-metamodel</artifactId>
+            <artifactId>isis-viewer-wicket-impl</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-runtime</artifactId>
+            <groupId>org.apache.isis.viewer</groupId>
+            <artifactId>isis-viewer-restfulobjects-impl</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-bytecode-cglib</artifactId>
+            <groupId>org.apache.isis.security</groupId>
+            <artifactId>isis-security-shiro</artifactId>
         </dependency>
+
+
+        <!-- isis core -->
         <dependency>
             <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-objectstore</artifactId>
+            <artifactId>isis-core-runtime</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.isis.core</groupId>
@@ -140,12 +124,6 @@
             <groupId>org.apache.isis.core</groupId>
             <artifactId>isis-core-security</artifactId>
         </dependency>
-        <!-- 
-        <dependency>
-            <groupId>org.apache.isis.security</groupId>
-            <artifactId>isis-security-file</artifactId>
-        </dependency>
-         -->
         
         <!-- to run using WebServer (optional) -->
         <dependency>
@@ -155,39 +133,38 @@
             <optional>true</optional>
         </dependency>
 
+
         <dependency>
             <groupId>org.apache.geronimo.specs</groupId>
             <artifactId>geronimo-servlet_2.5_spec</artifactId>
+            <scope>provided</scope>
         </dependency>
 
-
-		<!-- 
-		  JDBC drivers 
-		  (if using jdo or sql object store)
-		  -->
-
+        <!-- 
+          JDBC drivers 
+          (for jdo objectstore)
+          -->
         <dependency>
             <groupId>org.hsqldb</groupId>
             <artifactId>hsqldb</artifactId>
         </dependency>
 
-		<!-- 
-		<dependency>
-			<groupId>com.microsoft.sqlserver</groupId>
-			<artifactId>jdbc</artifactId>
-			<version>4.0</version>
-			<scope>system</scope>
-			<optional>true</optional>
-			<systemPath>${basedir}/lib/sqljdbc4.jar</systemPath>
-		</dependency>
-		-->	
-
-		<dependency>
-		  <groupId>org.lazyluke</groupId>
-		  <artifactId>log4jdbc-remix</artifactId>
-		  <version>0.2.7</version>
-		</dependency>
-
-	</dependencies>
+        <!-- 
+        <dependency>
+            <groupId>com.microsoft.sqlserver</groupId>
+            <artifactId>jdbc</artifactId>
+            <version>4.0</version>
+            <scope>system</scope>
+            <optional>true</optional>
+            <systemPath>${basedir}/lib/sqljdbc4.jar</systemPath>
+        </dependency>
+        -->    
+
+        <dependency>
+          <groupId>org.lazyluke</groupId>
+          <artifactId>log4jdbc-remix</artifactId>
+        </dependency>
+
+    </dependencies>
 
 </project>

http://git-wip-us.apache.org/repos/asf/isis/blob/b09d1d23/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/jettyconsole/isis-banner.pdn
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/jettyconsole/isis-banner.pdn b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/jettyconsole/isis-banner.pdn
index 1ce228c..141ba11 100644
Binary files a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/jettyconsole/isis-banner.pdn and b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/jettyconsole/isis-banner.pdn differ

http://git-wip-us.apache.org/repos/asf/isis/blob/b09d1d23/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/jettyconsole/isis-banner.png
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/jettyconsole/isis-banner.png b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/jettyconsole/isis-banner.png
index 1f2811f..7085398 100644
Binary files a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/jettyconsole/isis-banner.png and b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/jettyconsole/isis-banner.png differ

http://git-wip-us.apache.org/repos/asf/isis/blob/b09d1d23/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/resources/images/Default.png
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/resources/images/Default.png b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/resources/images/Default.png
deleted file mode 100644
index 8409e46..0000000
Binary files a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/resources/images/Default.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/isis/blob/b09d1d23/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/isis.properties
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/isis.properties b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/isis.properties
index 141f2c7..29f57ee 100644
--- a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/isis.properties
+++ b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/isis.properties
@@ -83,8 +83,8 @@ ${symbol_pound} - the Scimpi viewer allows access to anonymous users
 ${symbol_pound} 
  
 ${symbol_pound} default is file in SERVER mode, none in SERVER_EXPLORATION.  Derived from wicket mode 
-isis.authentication=bypass
-
+${symbol_pound}isis.authentication=bypass
+isis.authentication=org.apache.isis.security.shiro.authentication.ShiroAuthenticationManagerInstaller
 
 ${symbol_pound}
 ${symbol_pound} configure authorization mechanism to use
@@ -98,7 +98,7 @@ ${symbol_pound}
  
 ${symbol_pound} default is file in SERVER mode, none in SERVER_EXPLORATION.  Derived from wicket mode 
 ${symbol_pound}isis.authorization=file
-
+isis.authorization=org.apache.isis.security.shiro.authorization.ShiroAuthorizationManagerInstaller
 
 
 ${symbol_pound}

http://git-wip-us.apache.org/repos/asf/isis/blob/b09d1d23/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/shiro.ini
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/shiro.ini b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/shiro.ini
new file mode 100644
index 0000000..4703d3e
--- /dev/null
+++ b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/shiro.ini
@@ -0,0 +1,61 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+
+# -----------------------------------------------------------------------------
+# Users and their assigned roles
+#
+# Each line conforms to the format defined in the
+# org.apache.shiro.realm.text.TextConfigurationRealm#setUserDefinitions JavaDoc
+# -----------------------------------------------------------------------------
+
+[users]
+# user = password, role1, role2, role3, ...
+
+sven = pass, admin
+dick = pass, user
+bob  = pass, user
+joe  = pass, user
+guest = guest, guest
+
+
+
+# -----------------------------------------------------------------------------
+# Roles with assigned permissions
+# 
+# Each line conforms to the format defined in the
+# org.apache.shiro.realm.text.TextConfigurationRealm#setRoleDefinitions JavaDoc
+# -----------------------------------------------------------------------------
+
+[roles]
+# role = perm1, perm2, perm3, ...
+
+admin = *
+user = *:ToDoItemsJdo:*:*,\
+       *:ToDoItem:*:*,\
+       *:ToDoItemsFixturesService:install:*
+guest = *:ToDoItemsJdo:notYetComplete:*,\
+        *:ToDoItemsJdo:complete:*,\
+        *:ToDoItemsJdo:similarTo:*,\
+        *:ToDoItemsJdo:newToDo:r,\
+        *:ToDoItem:*:r,\
+        *:ToDoItem:completed:*,\
+        *:ToDoItem:notYetCompleted:r
+        
+### packageName:className:memberName:r,w

http://git-wip-us.apache.org/repos/asf/isis/blob/b09d1d23/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/web.xml b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/web.xml
index c453a82..ddd7353 100644
--- a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/web.xml
+++ b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/WEB-INF/web.xml
@@ -24,7 +24,33 @@
     xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 
-    <display-name>Quickstart Wicket app</display-name>
+    <display-name>Quickstart Wicket/RestfulObjects app</display-name>
+
+
+    <listener>
+        <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
+    </listener>
+
+    <filter>
+        <filter-name>ShiroFilter</filter-name>
+        <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
+    </filter>
+
+    <filter-mapping>
+        <filter-name>ShiroFilter</filter-name>
+        <url-pattern>/*</url-pattern>
+    </filter-mapping>
+
+    <filter>
+        <filter-name>IsisShiroFilter</filter-name>
+        <filter-class>org.apache.isis.security.shiro.web.IsisShiroSecurityManagerThreadLocalBinderFilter</filter-class>
+    </filter>
+
+    <filter-mapping>
+        <filter-name>IsisShiroFilter</filter-name>
+        <url-pattern>/*</url-pattern>
+    </filter-mapping>
+
 
 	
 
@@ -51,7 +77,6 @@
     </context-param>
     -->
 
-
     <filter>
         <filter-name>AboutPageFilter</filter-name>
         <filter-class>app.AboutPageFilter</filter-class>
@@ -62,7 +87,6 @@
     </filter-mapping>
 
 
-
     <!-- cache static resources for 1 day -->
     <filter>
         <filter-name>ResourceCachingFilter</filter-name>
@@ -145,6 +169,9 @@
     <filter-mapping>
         <filter-name>WicketFilter</filter-name>
         <url-pattern>/wicket/*</url-pattern>
+        <!-- 
+        <url-pattern>/*</url-pattern>
+         -->
     </filter-mapping>
 
 
@@ -185,6 +212,12 @@
         <param-name>javax.ws.rs.Application</param-name>
         <param-value>org.apache.isis.viewer.restfulobjects.viewer.RestfulObjectsApplication</param-value>
     </context-param>
+    
+    <context-param>
+        <param-name>resteasy.servlet.mapping.prefix</param-name>
+        <param-value>/restful/</param-value>
+    </context-param>
+    
 
     <!-- authenticate user, set up an Isis session -->
     <filter>
@@ -208,16 +241,15 @@
         <servlet-name>RestfulObjectsRestEasyDispatcher</servlet-name>
     </filter-mapping>
 
-
     <servlet>
         <servlet-name>RestfulObjectsRestEasyDispatcher</servlet-name>
         <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
     </servlet>
     <servlet-mapping>
         <servlet-name>RestfulObjectsRestEasyDispatcher</servlet-name>
-        <url-pattern>/</url-pattern>
+        <url-pattern>/restful/*</url-pattern>
     </servlet-mapping>
 
 
-	
+
 </web-app>

http://git-wip-us.apache.org/repos/asf/isis/blob/b09d1d23/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/about/index.html
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/about/index.html b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/about/index.html
index 4e2e8eb..f62146c 100644
--- a/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/about/index.html
+++ b/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/viewer-webapp/src/main/webapp/about/index.html
@@ -5,7 +5,7 @@
 <html>
     <head>
         <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-        <title>Apache Isis QuickStart (Wicket/Restful/JDO)</title>
+        <title>Apache Isis QuickStart (Wicket/Restful/JDO/Shiro)</title>
         
         <style type="text/css">
 body {
@@ -41,7 +41,7 @@ ${symbol_pound}wrapper {
         <div id="wrapper">
             <img alt="Isis Logo" src="about/images/isis-logo.png" />
              
-            <p>This app has been generated by the <a href="http://isis.apache.org/getting-started/quickstart-archetype.html">quickstart</a> (wicket/restful/jdo) archetype for 
+            <p>This app has been generated by the <a href="http://isis.apache.org/getting-started/quickstart-archetype.html">quickstart</a> (wicket/restful/jdo/shiro) archetype for 
             <a href="http://isis.apache.org">Apache Isis</a>&trade;, a framework to let you rapidly develop 
             domain-driven apps in Java.</p>
             
@@ -54,32 +54,32 @@ ${symbol_pound}wrapper {
                 <tr>
                     <th>Component</th>
                     <th>Access URL</th>
-                    <th>HTTP Accept header</th>
                     <th>Description</th>
-                    <th>Further info on the Isis site</th>
+                    <th>Further info on the Isis website</th>
                 </tr>
                 <tr>
                     <td>Wicket Viewer</td>
-                    <td><a href="/wicket">/wicket</a></td>
-                    <td>[any]</td>
-                    <td>Provides a generic UI for end-users</td>
-                    <td><a href="http://isis.apache.org/components/viewers/wicket/about.html">wicket viewer</a> page</td>
+                    <td><a href="/wicket/">/wicket/</a></td>
+                    <td>Provides a generic UI for end-users, built with <a href="http://wicket.apache.org">Apache Wicket</a>&trade;</td>
+                    <td><a href="http://isis.apache.org/components/viewers/wicket/about.html">wicket viewer</a></td>
                 </tr>
                 <tr>
-                    <td rowspan="2">RestfulObjects Viewer</td>
-                    <td><a href="/">/</a></td><td><tt>application/json</tt></td>
-                    <td rowspan="2">Provides a RESTful API conformant with the <a href="http://restfulobjects.org">Restful Objects</a> spec</td>
-                    <td rowspan="2"><a href="http://isis.apache.org/components/viewers/restfulobjects/about.html">restfulobjects viewer</a> page</td>
-                </tr>
-                <tr>
-                    <td><a href="/services">/services</a></td><td>[any]</td>
+                    <td>RestfulObjects Viewer</td>
+                    <td><a href="/restful/">/restful/</a></td>
+                    <td>Provides a RESTful API conformant with the <a href="http://restfulobjects.org">Restful Objects</a> spec</td>
+                    <td><a href="http://isis.apache.org/components/viewers/restfulobjects/about.html">restfulobjects viewer</a></td>
                 </tr>
                 <tr>
                     <td>JDO Object&nbsp;Store</td>
                     <td>n/a</td>
-                    <td>n/a</td>
                     <td>Persists objects using JDO/DataNucleus; configured to use HSQLDB in-memory database</td>
-                    <td><a href="http://isis.apache.org/components/objectstores/jdo/about.html">jdo&nbsp;objectstore</a> page</td>
+                    <td><a href="http://isis.apache.org/components/objectstores/jdo/about.html">jdo&nbsp;objectstore</a></td>
+                </tr>
+                <tr>
+                    <td>Shiro Security</td>
+                    <td>n/a</td>
+                    <td>Provides authentication and authorization, using <a href="http://shiro.apache.org">Apache Shiro</a>&trade;</td>
+                    <td><a href="http://isis.apache.org/components/security/shiro/about.html">shiro security</a></td>
                 </tr>
             </table>
     
@@ -121,7 +121,7 @@ ${symbol_pound}wrapper {
                   </li>
                   <li><tt>WicketFilter</tt> - filter for the wicket application, mapped to <tt>/wicket/*</tt> 
                   </li>
-                  <li><tt>ResteasyBootstrap</tt>, <tt>IsisSessionFilterForRestfulObjects</tt>, <tt>RestfulObjectsRestEasyDispatcher</tt> - listeners, filters and servlets to bootstrap and map restful objects viewer to <tt>/</tt>. 
+                  <li><tt>ResteasyBootstrap</tt>, <tt>IsisSessionFilterForRestfulObjects</tt>, <tt>RestfulObjectsRestEasyDispatcher</tt> - listeners, filters and servlets to bootstrap and map restful objects viewer to <tt>/restful/*</tt>. 
                   </li>
                   <li>commented out <tt>IsisWebAppBootstrapper</tt> listener; this is NOT required unless wicket viewer config is removed 
                   </li>
@@ -133,7 +133,7 @@ ${symbol_pound}wrapper {
                   </li>
                   <li><tt>isis.persistor</tt> - specifies to use the JDO object store
                   </li>
-                  <li><tt>isis.authentication</tt> - specifies to use <tt>bypass</tt> authentication (ie effectively disables)
+                  <li><tt>isis.authentication</tt> and <tt>isis.authorization</tt> - security mechanism to use (<tt>bypass</tt> effectively disables) 
                   </li>
                 </ul>
               </li>
@@ -143,14 +143,22 @@ ${symbol_pound}wrapper {
                   </li>
                 </ul>
               </li>
+              <li><tt><a href="https://github.com/apache/isis/blob/master/example/application/quickstart%5Fwicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/shiro.ini">WEB-INF/shiro.ini</a></tt> (in <tt>viewer-webapp</tt> module)</a>
+                <ul>
+                  <li>configuration for Shiro security
+                  </li>
+                </ul>
+              </li>
             </ul>
     
             <h2>Next steps</h2>
             <p>Use the following as a check-list for refactoring towards your own application:
             <ul>
+              <li>Enable <tt>shiro</tt> authentication and authorization (in <tt>isis.properties</tt>) and experiment with users, roles and permissions (in <tt>shiro.ini</tt>)
+              </li>
               <li>Remove the <tt>AboutPageFilter</tt> from <tt>web.xml</tt>; this filter redirects to this page, which you are unlikely to want to keep
               </li>
-              <li>Refactor the <tt>ToDoItem</tt>, <tt>ToDoItems</tt> and <tt>ToDoItemsJdo</tt> towards your own application's functionality; obviously you are likely to introduce many more classes and services 
+              <li>Refactor the <tt>ToDoItem</tt>, <tt>ToDoItems</tt> and <tt>ToDoItemsJdo</tt> towards your own application's functionality; obviously you are likely to introduce many more classes and services
               </li>
               <li>Reconfigure <tt>persistor_datanucleus.properties</tt> to specify the JDBC URL to the database you wish to work with; if necessary also update the <tt>pom.xml</tt> in the <tt>viewer-webapp</tt> module to add the JDBC driver to the classpath
               </li>
@@ -165,4 +173,4 @@ ${symbol_pound}wrapper {
             </ul>
         </div>
     </body>
-</html>
\ No newline at end of file
+</html>

http://git-wip-us.apache.org/repos/asf/isis/blob/b09d1d23/example/archetype/quickstart_wicket_restful_jdo/src/test/resources/projects/basic/archetype.properties
----------------------------------------------------------------------
diff --git a/example/archetype/quickstart_wicket_restful_jdo/src/test/resources/projects/basic/archetype.properties b/example/archetype/quickstart_wicket_restful_jdo/src/test/resources/projects/basic/archetype.properties
index d4381dd..7160aee 100644
--- a/example/archetype/quickstart_wicket_restful_jdo/src/test/resources/projects/basic/archetype.properties
+++ b/example/archetype/quickstart_wicket_restful_jdo/src/test/resources/projects/basic/archetype.properties
@@ -1,4 +1,4 @@
-#Fri Jan 04 07:29:19 GMT 2013
+#Fri Jan 04 13:12:40 GMT 2013
 package=it.pkg
 version=0.1-SNAPSHOT
 groupId=archetype.it