You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2008/08/21 02:23:01 UTC
svn commit: r687520 - in /openejb/trunk/openejb3/examples: ./
testing-security-2/
testing-security-2/src/test/java/org/superbiz/injection/secure/
testing-security-2/src/test/resources/
Author: dblevins
Date: Wed Aug 20 17:23:01 2008
New Revision: 687520
URL: http://svn.apache.org/viewvc?rev=687520&view=rev
Log:
OPENEJB-900: Example: Testing Security via InitialContext login/logout
Added:
openejb/trunk/openejb3/examples/testing-security-2/
- copied from r686875, openejb/trunk/openejb3/examples/testing-security/
openejb/trunk/openejb3/examples/testing-security-2/src/test/resources/groups.properties
openejb/trunk/openejb3/examples/testing-security-2/src/test/resources/users.properties
Modified:
openejb/trunk/openejb3/examples/pom.xml
openejb/trunk/openejb3/examples/testing-security-2/pom.xml
openejb/trunk/openejb3/examples/testing-security-2/src/test/java/org/superbiz/injection/secure/MovieTest.java
Modified: openejb/trunk/openejb3/examples/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/pom.xml?rev=687520&r1=687519&r2=687520&view=diff
==============================================================================
--- openejb/trunk/openejb3/examples/pom.xml (original)
+++ openejb/trunk/openejb3/examples/pom.xml Wed Aug 20 17:23:01 2008
@@ -46,6 +46,7 @@
<module>injection-of-connectionfactory</module>
<module>testing-transactions</module>
<module>testing-security</module>
+ <module>testing-security-2</module>
<module>ear-testing</module>
<module>interceptors</module>
<module>custom-injection</module>
Modified: openejb/trunk/openejb3/examples/testing-security-2/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/testing-security-2/pom.xml?rev=687520&r1=686875&r2=687520&view=diff
==============================================================================
--- openejb/trunk/openejb3/examples/testing-security-2/pom.xml (original)
+++ openejb/trunk/openejb3/examples/testing-security-2/pom.xml Wed Aug 20 17:23:01 2008
@@ -22,7 +22,7 @@
<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>
<groupId>org.superbiz</groupId>
- <artifactId>testing-security</artifactId>
+ <artifactId>testing-security-2</artifactId>
<packaging>jar</packaging>
<version>1.1-SNAPSHOT</version>
<name>OpenEJB :: Examples :: Testing Security</name>
Modified: openejb/trunk/openejb3/examples/testing-security-2/src/test/java/org/superbiz/injection/secure/MovieTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/testing-security-2/src/test/java/org/superbiz/injection/secure/MovieTest.java?rev=687520&r1=686875&r2=687520&view=diff
==============================================================================
--- openejb/trunk/openejb3/examples/testing-security-2/src/test/java/org/superbiz/injection/secure/MovieTest.java (original)
+++ openejb/trunk/openejb3/examples/testing-security-2/src/test/java/org/superbiz/injection/secure/MovieTest.java Wed Aug 20 17:23:01 2008
@@ -32,6 +32,10 @@
private Context context;
protected void setUp() throws Exception {
+
+ // Uncomment this line to set the login/logout functionality on Debug
+ //System.setProperty("log4j.category.OpenEJB.security", "debug");
+
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory");
p.put("movieDatabase", "new://Resource?type=DataSource");
@@ -47,56 +51,65 @@
}
public void testAsManager() throws Exception {
- Caller managerBean = (Caller) context.lookup("ManagerBeanLocal");
- managerBean.call(new Callable() {
- public Object call() throws Exception {
+ Properties p = new Properties();
+ p.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory");
+ p.put(Context.SECURITY_PRINCIPAL, "jane");
+ p.put(Context.SECURITY_CREDENTIALS, "waterfall");
- Movies movies = (Movies) context.lookup("MoviesLocal");
+ InitialContext context = new InitialContext(p);
- movies.addMovie(new Movie("Quentin Tarantino", "Reservoir Dogs", 1992));
- movies.addMovie(new Movie("Joel Coen", "Fargo", 1996));
- movies.addMovie(new Movie("Joel Coen", "The Big Lebowski", 1998));
+ try {
+ Movies movies = (Movies) context.lookup("MoviesLocal");
- List<Movie> list = movies.getMovies();
- assertEquals("List.size()", 3, list.size());
+ movies.addMovie(new Movie("Quentin Tarantino", "Reservoir Dogs", 1992));
+ movies.addMovie(new Movie("Joel Coen", "Fargo", 1996));
+ movies.addMovie(new Movie("Joel Coen", "The Big Lebowski", 1998));
- for (Movie movie : list) {
- movies.deleteMovie(movie);
- }
+ List<Movie> list = movies.getMovies();
+ assertEquals("List.size()", 3, list.size());
- assertEquals("Movies.getMovies()", 0, movies.getMovies().size());
- return null;
+ for (Movie movie : list) {
+ movies.deleteMovie(movie);
}
- });
+
+ assertEquals("Movies.getMovies()", 0, movies.getMovies().size());
+ } finally {
+ context.close();
+ }
}
public void testAsEmployee() throws Exception {
- Caller employeeBean = (Caller) context.lookup("EmployeeBeanLocal");
- employeeBean.call(new Callable() {
- public Object call() throws Exception {
- Movies movies = (Movies) context.lookup("MoviesLocal");
-
- movies.addMovie(new Movie("Quentin Tarantino", "Reservoir Dogs", 1992));
- movies.addMovie(new Movie("Joel Coen", "Fargo", 1996));
- movies.addMovie(new Movie("Joel Coen", "The Big Lebowski", 1998));
-
- List<Movie> list = movies.getMovies();
- assertEquals("List.size()", 3, list.size());
-
- for (Movie movie : list) {
- try {
- movies.deleteMovie(movie);
- fail("Employees should not be allowed to delete");
- } catch (EJBAccessException e) {
- // Good, Employees cannot delete things
- }
- }
+ Properties p = new Properties();
+ p.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory");
+ p.put(Context.SECURITY_PRINCIPAL, "joe");
+ p.put(Context.SECURITY_CREDENTIALS, "cool");
+
+ InitialContext context = new InitialContext(p);
- // The list should still be three movies long
- assertEquals("Movies.getMovies()", 3, movies.getMovies().size());
- return null;
+ try {
+ Movies movies = (Movies) context.lookup("MoviesLocal");
+
+ movies.addMovie(new Movie("Quentin Tarantino", "Reservoir Dogs", 1992));
+ movies.addMovie(new Movie("Joel Coen", "Fargo", 1996));
+ movies.addMovie(new Movie("Joel Coen", "The Big Lebowski", 1998));
+
+ List<Movie> list = movies.getMovies();
+ assertEquals("List.size()", 3, list.size());
+
+ for (Movie movie : list) {
+ try {
+ movies.deleteMovie(movie);
+ fail("Employees should not be allowed to delete");
+ } catch (EJBAccessException e) {
+ // Good, Employees cannot delete things
+ }
}
- });
+
+ // The list should still be three movies long
+ assertEquals("Movies.getMovies()", 3, movies.getMovies().size());
+ } finally {
+ context.close();
+ }
}
public void testUnauthenticated() throws Exception {
@@ -126,40 +139,5 @@
}
}
-
-
- public static interface Caller {
- public <V> V call(Callable<V> callable) throws Exception;
- }
-
- /**
- * This little bit of magic allows our test code to execute in
- * the desired security scope.
- * <p/>
- * The src/test/resource/META-INF/ejb-jar.xml will cause this
- * EJB to be automatically discovered and deployed when
- * OpenEJB boots up.
- */
-
- @Stateless
- @RunAs("Manager")
- public static class ManagerBean implements Caller {
-
- public <V> V call(Callable<V> callable) throws Exception {
- return callable.call();
- }
-
- }
-
- @Stateless
- @RunAs("Employee")
- public static class EmployeeBean implements Caller {
-
- public <V> V call(Callable<V> callable) throws Exception {
- return callable.call();
- }
-
- }
-
}
//END SNIPPET: code
Added: openejb/trunk/openejb3/examples/testing-security-2/src/test/resources/groups.properties
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/testing-security-2/src/test/resources/groups.properties?rev=687520&view=auto
==============================================================================
--- openejb/trunk/openejb3/examples/testing-security-2/src/test/resources/groups.properties (added)
+++ openejb/trunk/openejb3/examples/testing-security-2/src/test/resources/groups.properties Wed Aug 20 17:23:01 2008
@@ -0,0 +1,2 @@
+Manager=jane
+Employee=jane,joe
Added: openejb/trunk/openejb3/examples/testing-security-2/src/test/resources/users.properties
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/testing-security-2/src/test/resources/users.properties?rev=687520&view=auto
==============================================================================
--- openejb/trunk/openejb3/examples/testing-security-2/src/test/resources/users.properties (added)
+++ openejb/trunk/openejb3/examples/testing-security-2/src/test/resources/users.properties Wed Aug 20 17:23:01 2008
@@ -0,0 +1,2 @@
+joe=cool
+jane=waterfall
\ No newline at end of file