Package org.apache.bookkeeper.sasl
Class SASLClientProviderFactory
- java.lang.Object
-
- org.apache.bookkeeper.sasl.SASLClientProviderFactory
-
- All Implemented Interfaces:
ClientAuthProvider.Factory,JAASCredentialsContainer
public class SASLClientProviderFactory extends java.lang.Object implements ClientAuthProvider.Factory, JAASCredentialsContainer
ClientAuthProvider which uses JDK-bundled SASL.
-
-
Constructor Summary
Constructors Constructor Description SASLClientProviderFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Release resources.AbstractConfigurationgetConfiguration()javax.security.auth.login.LoginContextgetLogin()java.lang.StringgetLoginContextName()java.lang.StringgetPluginName()Get Auth provider plugin name.java.lang.StringgetPrincipal()javax.security.auth.SubjectgetSubject()voidinit(ClientConfiguration conf)Initialize the factory with the client configuration and protobuf message registry.booleanisUsingTicketCache()ClientAuthProvidernewProvider(ClientConnectionPeer addr, AuthCallbacks.GenericCallback<java.lang.Void> completeCb)Create a new instance of a client auth provider.voidsetLogin(javax.security.auth.login.LoginContext login)
-
-
-
Method Detail
-
init
public void init(ClientConfiguration conf) throws java.io.IOException
Description copied from interface:ClientAuthProvider.FactoryInitialize the factory with the client configuration and protobuf message registry. Implementors must add any extension messages which contain the auth payload, so that the client can decode auth messages it receives from the server.- Specified by:
initin interfaceClientAuthProvider.Factory- Throws:
java.io.IOException
-
newProvider
public ClientAuthProvider newProvider(ClientConnectionPeer addr, AuthCallbacks.GenericCallback<java.lang.Void> completeCb)
Description copied from interface:ClientAuthProvider.FactoryCreate a new instance of a client auth provider. Each connection should get its own instance, as they can hold connection specific state. The completeCb is used to notify the client that the authentication handshake is complete. CompleteCb should be called only once. If the authentication was successful, BKException.Code.OK should be passed as the return code. Otherwise, another error code should be passed.- Specified by:
newProviderin interfaceClientAuthProvider.Factory- Parameters:
addr- an handle to the connectioncompleteCb- callback to be notified when authentication is complete.
-
getPluginName
public java.lang.String getPluginName()
Description copied from interface:ClientAuthProvider.FactoryGet Auth provider plugin name. Used as a sanity check to ensure that the bookie and the client. are using the same auth provider.- Specified by:
getPluginNamein interfaceClientAuthProvider.Factory
-
close
public void close()
Description copied from interface:ClientAuthProvider.FactoryRelease resources.- Specified by:
closein interfaceClientAuthProvider.Factory
-
getLogin
public javax.security.auth.login.LoginContext getLogin()
- Specified by:
getLoginin interfaceJAASCredentialsContainer
-
setLogin
public void setLogin(javax.security.auth.login.LoginContext login)
- Specified by:
setLoginin interfaceJAASCredentialsContainer
-
getSubject
public javax.security.auth.Subject getSubject()
- Specified by:
getSubjectin interfaceJAASCredentialsContainer
-
isUsingTicketCache
public boolean isUsingTicketCache()
- Specified by:
isUsingTicketCachein interfaceJAASCredentialsContainer
-
getPrincipal
public java.lang.String getPrincipal()
- Specified by:
getPrincipalin interfaceJAASCredentialsContainer
-
getConfiguration
public AbstractConfiguration getConfiguration()
- Specified by:
getConfigurationin interfaceJAASCredentialsContainer
-
getLoginContextName
public java.lang.String getLoginContextName()
- Specified by:
getLoginContextNamein interfaceJAASCredentialsContainer
-
-