Author: shane.bryzak(a)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
+ */
+@Target({TYPE, METHOD})
+@Documented
+@Retention(RUNTIME)
+@Inherited
+@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
+ */
+@Target({METHOD, PARAMETER})
+@Documented
+@Retention(RUNTIME)
+@Inherited
+@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
+ */
+@Target({METHOD, PARAMETER})
+@Documented
+@Retention(RUNTIME)
+@Inherited
+@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
+ */
+@Target({ANNOTATION_TYPE})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({METHOD, PARAMETER})
+@Documented
+@Retention(RUNTIME)
+@Inherited
+@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
+ */
+@Target({TYPE,METHOD})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({ANNOTATION_TYPE})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({METHOD,FIELD})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({METHOD,FIELD})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({METHOD, PARAMETER})
+@Documented
+@Retention(RUNTIME)
+@Inherited
+@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
+ */
+@Target({METHOD,FIELD})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({METHOD,FIELD})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({METHOD,FIELD})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({METHOD,FIELD})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({METHOD,FIELD})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({METHOD,FIELD})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({METHOD,FIELD})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({METHOD,FIELD})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({METHOD,FIELD})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({METHOD,FIELD})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({TYPE})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({TYPE})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({METHOD,FIELD})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({METHOD,FIELD})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({METHOD,FIELD})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({METHOD,FIELD})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({METHOD,FIELD})
+@Documented
+@Retention(RUNTIME)
+@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
+ */
+@Target({TYPE})
+@Documented
+@Retention(RUNTIME)
+@Inherited
+public @interface Permissions
+{
+ Permission[] value() default {};
+}