Class JexlPermissions.ClassPermissions
- All Implemented Interfaces:
- JexlPermissions
- Enclosing interface:
- JexlPermissions
Typical use case is to deny access to a package - and thus all its classes - but allow a few specific classes.
Note that the newer positive restriction syntax is preferable as in:
 RESTRICTED.compose("java.lang { +Class {} }").
- 
Nested Class SummaryNested classes/interfaces inherited from interface org.apache.commons.jexl3.introspection.JexlPermissionsJexlPermissions.ClassPermissions, JexlPermissions.Delegate
- 
Field SummaryFields inherited from class org.apache.commons.jexl3.introspection.JexlPermissions.DelegatebaseFields inherited from interface org.apache.commons.jexl3.introspection.JexlPermissionsRESTRICTED, UNRESTRICTED
- 
Constructor SummaryConstructorsConstructorDescriptionClassPermissions(Class<?>... allow) Creates permissions based on the RESTRICTED set but allowing an explicit set.ClassPermissions(JexlPermissions delegate, Collection<String> allow) Required for compose().
- 
Method SummaryModifier and TypeMethodDescriptionbooleanChecks whether a class allows JEXL introspection.booleanallow(Constructor<?> constructor) Checks whether a constructor allows JEXL introspection.booleanChecks whether a method allows JEXL introspection.Compose these permissions with a new set.Methods inherited from class org.apache.commons.jexl3.introspection.JexlPermissions.Delegateallow, allow
- 
Constructor Details- 
ClassPermissionsCreates permissions based on the RESTRICTED set but allowing an explicit set.- Parameters:
- allow- the set of allowed classes
 
- 
ClassPermissionsRequired for compose().- Parameters:
- delegate- the base to delegate to
- allow- the list of class canonical names
 
 
- 
- 
Method Details- 
allowDescription copied from interface:JexlPermissionsChecks whether a class allows JEXL introspection.If the class disallows JEXL introspection, none of its constructors, methods or fields as well as derived classes are visible to JEXL and cannot be used in scripts or expressions. If one of its super-classes is not allowed, tbe class is not allowed either. For interfaces, only methods and fields are disallowed in derived interfaces or implementing classes. - Specified by:
- allowin interface- JexlPermissions
- Overrides:
- allowin class- JexlPermissions.Delegate
- Parameters:
- clazz- the class to check
- Returns:
- true if JEXL is allowed to introspect, false otherwise
 
- 
allowDescription copied from interface:JexlPermissionsChecks whether a constructor allows JEXL introspection.If a constructor is not allowed, the new operator cannot be used to instantiate its declared class in scripts or expressions. - Specified by:
- allowin interface- JexlPermissions
- Overrides:
- allowin class- JexlPermissions.Delegate
- Parameters:
- constructor- the constructor to check
- Returns:
- true if JEXL is allowed to introspect, false otherwise
 
- 
allowDescription copied from interface:JexlPermissionsChecks whether a method allows JEXL introspection.If a method is not allowed, it cannot resolved and called in scripts or expressions. Since methods can be overridden and overloaded, this also checks that no superclass or interface explicitly disallows this methods. - Specified by:
- allowin interface- JexlPermissions
- Overrides:
- allowin class- JexlPermissions.Delegate
- Parameters:
- method- the method to check
- Returns:
- true if JEXL is allowed to introspect, false otherwise
 
- 
composeDescription copied from interface:JexlPermissionsCompose these permissions with a new set.This is a convenience method meant to easily give access to the packages JEXL is used to integrate with. For instance, using JexlPermissions.RESTRICTED.compose("com.my.app.*")- Specified by:
- composein interface- JexlPermissions
- Overrides:
- composein class- JexlPermissions.Delegate
- Parameters:
- src- the new constraints
- Returns:
- the new permissions
 
 
-