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