[seam-commits] Seam SVN: r12460 - in modules/security/trunk/api/src/main/java/org/jboss/seam/security: annotations and 2 other directories.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Tue Apr 13 07:39:44 EDT 2010


Author: shane.bryzak at jboss.com
Date: 2010-04-13 07:39:42 -0400 (Tue, 13 Apr 2010)
New Revision: 12460

Added:
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Admin.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Delete.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Insert.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/PermissionCheck.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Read.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Restrict.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/RoleCheck.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/TokenUsername.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/TokenValue.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Update.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/PasswordSalt.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/RoleConditional.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/RoleGroups.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/RoleName.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserEnabled.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserFirstName.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserLastName.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserPassword.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserPrincipal.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserRoles.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/Identifier.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/Permission.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/PermissionAction.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/PermissionDiscriminator.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/PermissionRole.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/PermissionTarget.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/PermissionUser.java
   modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/Permissions.java
Log:
move annotations to the api


Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Admin.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Admin.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Admin.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,25 @@
+package org.jboss.seam.security.annotations;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Indicates that the action method requires the user to be a member of the 'admin' role to invoke.
+ * 
+ * @author Shane Bryzak
+ */
+ at Target({TYPE, METHOD})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+ at RoleCheck
+public @interface Admin
+{
+
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Delete.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Delete.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Delete.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,24 @@
+package org.jboss.seam.security.annotations;
+
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * 
+ *
+ * @author Shane Bryzak
+ */
+ at Target({METHOD, PARAMETER})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+ at PermissionCheck
+public @interface Delete {
+   Class value() default void.class;
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Insert.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Insert.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Insert.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,24 @@
+package org.jboss.seam.security.annotations;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * 
+ *
+ * @author Shane Bryzak
+ */
+ at Target({METHOD, PARAMETER})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+ at PermissionCheck
+public @interface Insert {
+   Class value() default void.class;
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/PermissionCheck.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/PermissionCheck.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/PermissionCheck.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,24 @@
+package org.jboss.seam.security.annotations;
+
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Meta-annotation that designates an annotation as being a permission action, 
+ * requiring a security check prior to invoking the annotated method or class
+ *
+ * @author Shane Bryzak
+ */
+ at Target({ANNOTATION_TYPE})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface PermissionCheck 
+{
+   String value() default "";
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Read.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Read.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Read.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,24 @@
+package org.jboss.seam.security.annotations;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * 
+ *
+ * @author Shane Bryzak
+ */
+ at Target({METHOD, PARAMETER})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+ at PermissionCheck
+public @interface Read {
+   Class value() default void.class;
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Restrict.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Restrict.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Restrict.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,34 @@
+package org.jboss.seam.security.annotations;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Used to restrict access to a Seam component, component method or entity.
+ * 
+ * @see org.jboss.seam.security.Identity
+ *
+ * @author Shane Bryzak
+ */
+ at Target({TYPE,METHOD})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface Restrict 
+{
+   /**
+    * Restrictions may be expressed using any EL expression, and usually
+    * include the use of s:hasRole(...) or s:hasPermission(..., /..).
+    * If no EL expression is explicitly specified, Seam security defaults
+    * the permission to be checked.
+    * 
+    * @return An EL expression that defines the restriction to be checked
+    */
+   String value() default "";
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/RoleCheck.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/RoleCheck.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/RoleCheck.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,24 @@
+package org.jboss.seam.security.annotations;
+
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Meta-annotation that designates an annotation as being a role, 
+ * requiring a security check prior to invoking the annotated method or class
+ *
+ * @author Shane Bryzak
+ */
+ at Target({ANNOTATION_TYPE})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface RoleCheck
+{
+
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/TokenUsername.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/TokenUsername.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/TokenUsername.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,24 @@
+package org.jboss.seam.security.annotations;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Flags an entity field or method as representing the username for an authentication token
+ *  
+ * @author Shane Bryzak
+ */
+ at Target({METHOD,FIELD})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface TokenUsername
+{
+
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/TokenValue.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/TokenValue.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/TokenValue.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,24 @@
+package org.jboss.seam.security.annotations;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Flags an entity field or method as representing the value for an authentication token
+ *  
+ * @author Shane Bryzak
+ */
+ at Target({METHOD,FIELD})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface TokenValue
+{
+
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Update.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Update.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/Update.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,24 @@
+package org.jboss.seam.security.annotations;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * 
+ *
+ * @author Shane Bryzak
+ */
+ at Target({METHOD, PARAMETER})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+ at PermissionCheck
+public @interface Update {
+   Class value() default void.class;
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/PasswordSalt.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/PasswordSalt.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/PasswordSalt.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,24 @@
+package org.jboss.seam.security.annotations.management;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * The salt value used to produce the password hash 
+ * 
+ * @author Shane Bryzak
+ */
+ at Target({METHOD,FIELD})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface PasswordSalt
+{
+      
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/RoleConditional.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/RoleConditional.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/RoleConditional.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,24 @@
+package org.jboss.seam.security.annotations.management;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Flags an entity field or method as representing whether a role is conditional or not
+ *  
+ * @author Shane Bryzak
+ */
+ at Target({METHOD,FIELD})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface RoleConditional
+{
+
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/RoleGroups.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/RoleGroups.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/RoleGroups.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,24 @@
+package org.jboss.seam.security.annotations.management;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Flags an entity field or method as representing the group memberships for a role
+ *  
+ * @author Shane Bryzak
+ */
+ at Target({METHOD,FIELD})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface RoleGroups
+{
+
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/RoleName.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/RoleName.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/RoleName.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,24 @@
+package org.jboss.seam.security.annotations.management;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Flags an entity field or method as representing the name of a role
+ *  
+ * @author Shane Bryzak
+ */
+ at Target({METHOD,FIELD})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface RoleName
+{
+
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserEnabled.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserEnabled.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserEnabled.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,24 @@
+package org.jboss.seam.security.annotations.management;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Flags an entity field or method as representing the enabled status of a user
+ *  
+ * @author Shane Bryzak
+ */
+ at Target({METHOD,FIELD})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface UserEnabled
+{
+
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserFirstName.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserFirstName.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserFirstName.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,24 @@
+package org.jboss.seam.security.annotations.management;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Flags an entity field or method as representing the first name of a user
+ *  
+ * @author Shane Bryzak
+ */
+ at Target({METHOD,FIELD})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface UserFirstName
+{
+
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserLastName.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserLastName.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserLastName.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,24 @@
+package org.jboss.seam.security.annotations.management;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Flags an entity field or method as representing the last name of a user
+ *  
+ * @author Shane Bryzak
+ */
+ at Target({METHOD,FIELD})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface UserLastName
+{
+
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserPassword.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserPassword.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserPassword.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,32 @@
+package org.jboss.seam.security.annotations.management;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Flags an entity field or method as representing the password for a user
+ *  
+ * @author Shane Bryzak
+ */
+ at Target({METHOD,FIELD})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface UserPassword
+{   
+   /**
+    * The hash algorithm, only used if there is no @PasswordSalt property specified
+    */
+   String hash() default "";
+   
+   /**
+    * Number of iterations for generating the password hash
+    */
+   int iterations() default 1000;
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserPrincipal.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserPrincipal.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserPrincipal.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,24 @@
+package org.jboss.seam.security.annotations.management;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Flags an entity field or method as representing the principal (username) for a user
+ *  
+ * @author Shane Bryzak
+ */
+ at Target({METHOD,FIELD})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface UserPrincipal
+{
+
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserRoles.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserRoles.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/management/UserRoles.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,24 @@
+package org.jboss.seam.security.annotations.management;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Flags an entity field or method as representing the list of role memberships for a user
+ *  
+ * @author Shane Bryzak
+ */
+ at Target({METHOD,FIELD})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface UserRoles
+{
+
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/Identifier.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/Identifier.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/Identifier.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,27 @@
+package org.jboss.seam.security.annotations.permission;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import org.jboss.seam.security.permission.IdentifierStrategy;
+
+/**
+ * Configures the Identifier strategy to use for instance-based permissions.  The specified class
+ * should implement the IdentifierStrategy interface.
+ *  
+ * @author Shane Bryzak
+ */
+ at Target({TYPE})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface Identifier
+{  
+   Class<? extends IdentifierStrategy> value() default IdentifierStrategy.class;
+   String name() default "";
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/Permission.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/Permission.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/Permission.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,25 @@
+package org.jboss.seam.security.annotations.permission;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Specifies an allowable permission action for the target class, and allows for an optional bit mask
+ * value for mapping the permission action to a persistent store
+ *
+ * @author Shane Bryzak
+ */
+ at Target({TYPE})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface Permission
+{
+   String action();
+   long mask() default 0L;
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/PermissionAction.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/PermissionAction.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/PermissionAction.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,25 @@
+package org.jboss.seam.security.annotations.permission;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Flags an entity field or method as representing the action component of a permission, e.g. "update",
+ * "delete".
+ *  
+ * @author Shane Bryzak
+ */
+ at Target({METHOD,FIELD})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface PermissionAction
+{
+
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/PermissionDiscriminator.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/PermissionDiscriminator.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/PermissionDiscriminator.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,26 @@
+package org.jboss.seam.security.annotations.permission;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Flags an entity field or method as representing the discriminator column in a permission table
+ * that contains permissions for both roles and users.
+ *  
+ * @author Shane Bryzak
+ */
+ at Target({METHOD,FIELD})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface PermissionDiscriminator
+{
+   String userValue() default "user";
+   String roleValue() default "role";
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/PermissionRole.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/PermissionRole.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/PermissionRole.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,24 @@
+package org.jboss.seam.security.annotations.permission;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Flags an entity field or method as representing the role that a permission is assigned to.
+ *  
+ * @author Shane Bryzak
+ */
+ at Target({METHOD,FIELD})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface PermissionRole
+{
+
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/PermissionTarget.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/PermissionTarget.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/PermissionTarget.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,24 @@
+package org.jboss.seam.security.annotations.permission;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Flags an entity field or method as representing the target of a permission.
+ *  
+ * @author Shane Bryzak
+ */
+ at Target({METHOD,FIELD})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface PermissionTarget
+{
+
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/PermissionUser.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/PermissionUser.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/PermissionUser.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,25 @@
+package org.jboss.seam.security.annotations.permission;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Flags an entity field or method as representing the principal (username) that a permission is
+ * assigned to.
+ *  
+ * @author Shane Bryzak
+ */
+ at Target({METHOD,FIELD})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface PermissionUser
+{
+
+}

Added: modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/Permissions.java
===================================================================
--- modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/Permissions.java	                        (rev 0)
+++ modules/security/trunk/api/src/main/java/org/jboss/seam/security/annotations/permission/Permissions.java	2010-04-13 11:39:42 UTC (rev 12460)
@@ -0,0 +1,23 @@
+package org.jboss.seam.security.annotations.permission;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Specifies a list of permission actions for a class
+ *
+ * @author Shane Bryzak
+ */
+ at Target({TYPE})
+ at Documented
+ at Retention(RUNTIME)
+ at Inherited
+public @interface Permissions
+{
+   Permission[] value() default {};
+}



More information about the seam-commits mailing list