diff --git a/src/main/java/javax/security/enterprise/package-info.java b/src/main/java/javax/security/enterprise/package-info.java index 9ee300c..e4b81a3 100644 --- a/src/main/java/javax/security/enterprise/package-info.java +++ b/src/main/java/javax/security/enterprise/package-info.java @@ -39,11 +39,62 @@ */ /** - * The main Java EE Security API package. This package - * contains classes and interfaces that span authentication, + * The main Java EE Security API package. This package contains classes and interfaces that span authentication, * authorization and identity concerns. + * + *

EL Support in annotations

+ * + * This specification supports the use of expression language 3.0 in annotations. This is described in more detail below: + * + *

...Definition annotations

+ * + * The Java EE Security API features several annotations ending on Definition which when used make CDI + * beans available. For completeness, this concerns the following annotations: + * + * + * + * For all attributes of type String on these annotations expression language 3.0 expressions can be used. + * All named CDI beans are available to that expression as well as the default classes as specified by EL 3.0 for the + * {@link ELProcessor}. + * + *

+ * Expressions can be either immediate (${} syntax), or deferred (#{} syntax). Immediate + * expressions are evaluated once when the bean instance corresponding to the "...Definition" annotation is actually created. + * Since such beans are application scoped, that means once for the entire application. Deferred expressions are evaluated in + * each request where the security runtime needs to use the value of these attributes. + * + *

+ * Attributes that are documented as being EL alternatives to non-String type + * attributes (attributes of which the name ends on Expression, hereafter called EL alternative attribute) + * MUST evaluate to the same type as the attribute they are an alternative to. If the EL alternative attribute has a + * non empty value, it takes precedence over the attribute which it is an alternative to. + * + *

+ * The EL alternative attribute MUST contain a valid EL expression. Attributes of type string that are not EL alternative + * attributes can contain either an expression or a string value that is not an expression. + * + *

Interceptor annotations

+ * + * The Java EE Security API features several annotations with attributes that denote interceptor spec interceptors. + * For completeness, this concerns the following annotations: + * + * + * + *

+ * Expression language is supported for these annotations as well, but in a slightly different way. + * See the javadoc of both these annotations for how the expression language support differs. * * @version 1.0 */ package javax.security.enterprise; +import javax.el.ELProcessor;