We are using NetworkServerControl to embed the Derby server. We would like to use our own user authenticator for this. Currently, this requires setting a system property and Derby creates a brand new instance every time it needs to call it.
This wreaks havoc with our development philosophy because we would like to unit test our stuff, but Derby is constructing an instance directly instead of letting us pass a mock authenticator.
The workaround we are using is:
- Set the real authenticator as a static field somewhere and provide register()/deregister()/lookup() access methods
- Make a DelegatingUserAuthenticator which calls lookup() on the real thing and then delegates the call to it