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>™</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>™, 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>™</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 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 objectstore</a> page</td>
+ <td><a href="http://isis.apache.org/components/objectstores/jdo/about.html">jdo 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>™</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