[
https://issues.apache.org/jira/browse/DERBY-5397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13096769#comment-13096769
]
Trejkaz commented on DERBY-5397:
--------------------------------
For instance, I would like to use a UserAuthenticator like this:
public class UserAuthenticator {
private final UserStore store;
public UserAuthenticator(UserStore store) {
this.store = store;
}
public void authenticateUser(String user, String pass, String db,
Properties info) {
// ... use the store
}
}
But Derby calls a no-arg constructor to construct the authenticator itself, so
there is no way to do it.
> Make it possible to directly set a UserAuthenticator instance on the
> NetworkServerControl.
> ------------------------------------------------------------------------------------------
>
> Key: DERBY-5397
> URL: https://issues.apache.org/jira/browse/DERBY-5397
> Project: Derby
> Issue Type: Improvement
> Components: Network Server
> Reporter: Trejkaz
> Labels: auth
>
> 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
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira