Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.0.0-incubating
-
None
Description
Though, going forward (i.e. post 1.0.0-incubating), there will be multiple ways to configure Apache Geode's SecurityManager implementation in effect, for instance, and most notably, GEODE-2030, in addition to the Geode security-manager (System) property, it would be highly valuable if Apache Geode called Declarable.init() on the custom, application-specific, Geode-based SecurityManager implementation providing the custom, application-specific, Geode-based SecurityManager implementation implemented the Geode Declarable interface.
This would be especially beneficial in situations where any post-construction initialization logic needed to be invoked after the constructor, particularly where the custom SecurityManager *this* reference needs to be accessed by other classes/components in the init() method outside the SecurityManager instance, which if done from/within a constructor during construction would allow the *this* reference to escape (not good in a multi-threaded environment).
This is also useful in situations where the GemFire security-manager (System) property is still being used, as I suspect will be the case in some situations/environments.
Tracing this through, the IntegratedSecurityService delegates to the SecurityService.getObjectOfTypeFromClass(..) method. This method (along with similar supporting methods) could Introspect the class type and determine whether the custom, application-specific, Geode-based SecurityManager implementation implements the Declarable interface, invoking the init() method before returning, if it does.
Attachments
Issue Links
- is duplicated by
-
GEODE-2085 GEODE-2083
- Closed