Author: dblevins
Date: Tue Apr 12 01:02:09 2011
New Revision: 1091270
URL: http://svn.apache.org/viewvc?rev=1091270&view=rev
Log:
Meta version of the testing-security example
Added:
openejb/trunk/openejb3/examples/testing-security-meta/
- copied from r1088039, openejb/trunk/openejb3/examples/testing-security/
openejb/trunk/openejb3/examples/testing-security-meta/build.xml
- copied unchanged from r1090810,
openejb/trunk/openejb3/examples/testing-security/build.xml
openejb/trunk/openejb3/examples/testing-security-meta/pom.xml
- copied, changed from r1090810,
openejb/trunk/openejb3/examples/testing-security/pom.xml
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/Movies.java
- copied, changed from r1091022,
openejb/trunk/openejb3/examples/testing-security/src/main/java/org/superbiz/injection/secure/Movies.java
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/AddPermission.java
(with props)
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/DeletePermission.java
(with props)
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/Metatype.java
(with props)
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/MovieUnit.java
(with props)
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/ReadPermission.java
(with props)
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/RunAsEmployee.java
(with props)
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/RunAsManager.java
(with props)
openejb/trunk/openejb3/examples/testing-security-meta/src/main/resources/META-INF/persistence.xml
- copied unchanged from r1090810,
openejb/trunk/openejb3/examples/testing-security/src/main/resources/META-INF/persistence.xml
openejb/trunk/openejb3/examples/testing-security-meta/src/test/java/org/superbiz/injection/secure/MovieTest.java
- copied, changed from r1091022,
openejb/trunk/openejb3/examples/testing-security/src/test/java/org/superbiz/injection/secure/MovieTest.java
Removed:
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/MoviesImpl.java
openejb/trunk/openejb3/examples/testing-security-meta/src/main/resources/META-INF/ejb-jar.xml
openejb/trunk/openejb3/examples/testing-security-meta/src/test/resources/
Copied: openejb/trunk/openejb3/examples/testing-security-meta/pom.xml (from
r1090810, openejb/trunk/openejb3/examples/testing-security/pom.xml)
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/testing-security-meta/pom.xml?p2=openejb/trunk/openejb3/examples/testing-security-meta/pom.xml&p1=openejb/trunk/openejb3/examples/testing-security/pom.xml&r1=1090810&r2=1091270&rev=1091270&view=diff
==============================================================================
--- openejb/trunk/openejb3/examples/testing-security/pom.xml (original)
+++ openejb/trunk/openejb3/examples/testing-security-meta/pom.xml Tue Apr 12
01:02:09 2011
@@ -23,10 +23,10 @@
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-meta</artifactId>
<packaging>jar</packaging>
<version>1.1-SNAPSHOT</version>
- <name>OpenEJB :: Examples :: Testing Security</name>
+ <name>OpenEJB :: Examples :: Testing Security (Meta)</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
Copied:
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/Movies.java
(from r1091022,
openejb/trunk/openejb3/examples/testing-security/src/main/java/org/superbiz/injection/secure/Movies.java)
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/Movies.java?p2=openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/Movies.java&p1=openejb/trunk/openejb3/examples/testing-security/src/main/java/org/superbiz/injection/secure/Movies.java&r1=1091022&r2=1091270&rev=1091270&view=diff
==============================================================================
---
openejb/trunk/openejb3/examples/testing-security/src/main/java/org/superbiz/injection/secure/Movies.java
(original)
+++
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/Movies.java
Tue Apr 12 01:02:09 2011
@@ -18,6 +18,11 @@ package org.superbiz.injection.secure;
//START SNIPPET: code
+import org.superbiz.injection.secure.api.AddPermission;
+import org.superbiz.injection.secure.api.DeletePermission;
+import org.superbiz.injection.secure.api.MovieUnit;
+import org.superbiz.injection.secure.api.ReadPermission;
+
import javax.annotation.security.PermitAll;
import javax.annotation.security.RolesAllowed;
import javax.ejb.Stateful;
@@ -32,21 +37,20 @@ import java.util.List;
@Stateful
public class Movies {
- @PersistenceContext(unitName = "movie-unit", type =
PersistenceContextType.EXTENDED)
+ @MovieUnit
private EntityManager entityManager;
- @RolesAllowed({"Employee", "Manager"})
+ @AddPermission
public void addMovie(Movie movie) throws Exception {
entityManager.persist(movie);
}
- @RolesAllowed({"Manager"})
+ @DeletePermission
public void deleteMovie(Movie movie) throws Exception {
entityManager.remove(movie);
}
- @PermitAll
- @TransactionAttribute(TransactionAttributeType.SUPPORTS)
+ @ReadPermission
public List<Movie> getMovies() throws Exception {
Query query = entityManager.createQuery("SELECT m from Movie as m");
return query.getResultList();
Added:
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/AddPermission.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/AddPermission.java?rev=1091270&view=auto
==============================================================================
---
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/AddPermission.java
(added)
+++
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/AddPermission.java
Tue Apr 12 01:02:09 2011
@@ -0,0 +1,39 @@
+/**
+ * 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.
+ */
+package org.superbiz.injection.secure.api;
+
+import javax.annotation.security.RolesAllowed;
+import javax.persistence.PersistenceContext;
+import javax.persistence.PersistenceContextType;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+
+@Metatype
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+
+public @interface AddPermission {
+ public static interface $ {
+
+ @AddPermission
+ @RolesAllowed({"Employee", "Manager"})
+ public void method();
+ }
+}
\ No newline at end of file
Propchange:
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/AddPermission.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/DeletePermission.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/DeletePermission.java?rev=1091270&view=auto
==============================================================================
---
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/DeletePermission.java
(added)
+++
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/DeletePermission.java
Tue Apr 12 01:02:09 2011
@@ -0,0 +1,37 @@
+/**
+ * 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.
+ */
+package org.superbiz.injection.secure.api;
+
+import javax.annotation.security.RolesAllowed;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+
+@Metatype
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+
+public @interface DeletePermission {
+ public static interface $ {
+
+ @DeletePermission
+ @RolesAllowed("Manager")
+ public void method();
+ }
+}
\ No newline at end of file
Propchange:
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/DeletePermission.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/Metatype.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/Metatype.java?rev=1091270&view=auto
==============================================================================
---
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/Metatype.java
(added)
+++
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/Metatype.java
Tue Apr 12 01:02:09 2011
@@ -0,0 +1,28 @@
+/**
+ * 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.
+ */
+package org.superbiz.injection.secure.api;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Metatype
+@Target(ElementType.ANNOTATION_TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Metatype {
+}
Propchange:
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/Metatype.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/MovieUnit.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/MovieUnit.java?rev=1091270&view=auto
==============================================================================
---
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/MovieUnit.java
(added)
+++
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/MovieUnit.java
Tue Apr 12 01:02:09 2011
@@ -0,0 +1,33 @@
+/**
+ * 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.
+ */
+package org.superbiz.injection.secure.api;
+
+import javax.persistence.PersistenceContext;
+import javax.persistence.PersistenceContextType;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+
+@Metatype
+@Target({ElementType.METHOD, ElementType.FIELD})
+@Retention(RetentionPolicy.RUNTIME)
+
+@PersistenceContext(name ="movie-unit", unitName = "movie-unit", type =
PersistenceContextType.EXTENDED)
+public @interface MovieUnit {
+}
Propchange:
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/MovieUnit.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/ReadPermission.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/ReadPermission.java?rev=1091270&view=auto
==============================================================================
---
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/ReadPermission.java
(added)
+++
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/ReadPermission.java
Tue Apr 12 01:02:09 2011
@@ -0,0 +1,41 @@
+/**
+ * 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.
+ */
+package org.superbiz.injection.secure.api;
+
+import javax.annotation.security.PermitAll;
+import javax.annotation.security.RolesAllowed;
+import javax.ejb.TransactionAttribute;
+import javax.ejb.TransactionAttributeType;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+
+@Metatype
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+
+public @interface ReadPermission {
+ public static interface $ {
+
+ @ReadPermission
+ @PermitAll
+ @TransactionAttribute(TransactionAttributeType.SUPPORTS)
+ public void method();
+ }
+}
\ No newline at end of file
Propchange:
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/ReadPermission.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/RunAsEmployee.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/RunAsEmployee.java?rev=1091270&view=auto
==============================================================================
---
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/RunAsEmployee.java
(added)
+++
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/RunAsEmployee.java
Tue Apr 12 01:02:09 2011
@@ -0,0 +1,32 @@
+/**
+ * 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.
+ */
+package org.superbiz.injection.secure.api;
+
+import javax.annotation.security.RunAs;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+
+@Metatype
+@Target({ElementType.TYPE, ElementType.METHOD})
+@Retention(RetentionPolicy.RUNTIME)
+
+@RunAs("Employee")
+public @interface RunAsEmployee {
+}
\ No newline at end of file
Propchange:
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/RunAsEmployee.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/RunAsManager.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/RunAsManager.java?rev=1091270&view=auto
==============================================================================
---
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/RunAsManager.java
(added)
+++
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/RunAsManager.java
Tue Apr 12 01:02:09 2011
@@ -0,0 +1,32 @@
+/**
+ * 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.
+ */
+package org.superbiz.injection.secure.api;
+
+import javax.annotation.security.RunAs;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+
+@Metatype
+@Target({ElementType.TYPE, ElementType.METHOD})
+@Retention(RetentionPolicy.RUNTIME)
+
+@RunAs("Manager")
+public @interface RunAsManager {
+}
\ No newline at end of file
Propchange:
openejb/trunk/openejb3/examples/testing-security-meta/src/main/java/org/superbiz/injection/secure/api/RunAsManager.java
------------------------------------------------------------------------------
svn:eol-style = native
Copied:
openejb/trunk/openejb3/examples/testing-security-meta/src/test/java/org/superbiz/injection/secure/MovieTest.java
(from r1091022,
openejb/trunk/openejb3/examples/testing-security/src/test/java/org/superbiz/injection/secure/MovieTest.java)
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/examples/testing-security-meta/src/test/java/org/superbiz/injection/secure/MovieTest.java?p2=openejb/trunk/openejb3/examples/testing-security-meta/src/test/java/org/superbiz/injection/secure/MovieTest.java&p1=openejb/trunk/openejb3/examples/testing-security/src/test/java/org/superbiz/injection/secure/MovieTest.java&r1=1091022&r2=1091270&rev=1091270&view=diff
==============================================================================
---
openejb/trunk/openejb3/examples/testing-security/src/test/java/org/superbiz/injection/secure/MovieTest.java
(original)
+++
openejb/trunk/openejb3/examples/testing-security-meta/src/test/java/org/superbiz/injection/secure/MovieTest.java
Tue Apr 12 01:02:09 2011
@@ -17,8 +17,9 @@
package org.superbiz.injection.secure;
import junit.framework.TestCase;
+import org.superbiz.injection.secure.api.RunAsEmployee;
+import org.superbiz.injection.secure.api.RunAsManager;
-import javax.annotation.security.RunAs;
import javax.ejb.EJB;
import javax.ejb.EJBAccessException;
import javax.ejb.Stateless;
@@ -34,10 +35,10 @@ public class MovieTest extends TestCase
@EJB
private Movies movies;
- @EJB(name = "ManagerBean")
+ @EJB(beanName = "ManagerBean")
private Caller manager;
- @EJB(name = "EmployeeBean")
+ @EJB(beanName = "EmployeeBean")
private Caller employee;
protected void setUp() throws Exception {
@@ -123,18 +124,17 @@ public class MovieTest extends TestCase
}
-
- public static interface Caller {
+ public 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.
*/
@Stateless
- @RunAs("Manager")
+ @RunAsManager
public static class ManagerBean implements Caller {
public <V> V call(Callable<V> callable) throws Exception {
@@ -144,7 +144,7 @@ public class MovieTest extends TestCase
}
@Stateless
- @RunAs("Employee")
+ @RunAsEmployee
public static class EmployeeBean implements Caller {
public <V> V call(Callable<V> callable) throws Exception {