I am afraid that it cannot be easily achieved as there are some contextual information missing. UserGroupCallbackManager is a singleton so you can't register other implementations. One thing that you could try is to:
- register custom implementation of UserGroupCallback that is capable of delegating the actual checks to some other implementation
- make the UserGroupCallback impl context aware - for example pass some contextual data via ThreadLocal
- based on contextual data make the decision on what delegate should be used
That way you have one master UserGroupCallback registered but it does not decide itself but always delegate to others based on some data such as process id or so.
HTH