Tutorial
Admin setup
Each of the three admin interfaces (the pulsar-admin
CLI tool, the REST API, and the Java admin API) requires some special setup if you have enabled authentication in your Pulsar instance.
- pulsar-admin
- REST API
- Java
If you have enabled authentication, you need to provide an auth configuration to use the pulsar-admin
tool. By default, the configuration for the pulsar-admin
tool is in the conf/client.conf
file. The following are the available parameters:
Name | Description | Default |
---|---|---|
webServiceUrl | The web URL for the cluster. | http://localhost:8080/ |
brokerServiceUrl | The Pulsar protocol URL for the cluster. | pulsar://localhost:6650/ |
authPlugin | The authentication plugin. | |
authParams | The authentication parameters for the cluster, as a comma-separated string. | |
useTls | Whether or not TLS authentication will be enforced in the cluster. | false |
tlsAllowInsecureConnection | Accept untrusted TLS certificate from client. | false |
tlsTrustCertsFilePath | Path for the trusted TLS certificate file. |
You can find details for the REST API exposed by Pulsar brokers in the REST API doc.
If you want to test REST APIs in postman, you can use the REST API JSON files here.
To use the Java admin API, instantiate a PulsarAdmin object, and specify a URL for a Pulsar broker and a PulsarAdminBuilder object. The following is a minimal example using localhost
.
String url = "http://localhost:8080";
// Pass auth-plugin class fully-qualified name if Pulsar-security enabled
String authPluginClassName = "com.org.MyAuthPluginClass";
// Pass auth-param if auth-plugin class requires it
String authParams = "param1=value1";
boolean tlsAllowInsecureConnection = false;
String tlsTrustCertsFilePath = null;
PulsarAdmin admin = PulsarAdmin.builder()
.authentication(authPluginClassName,authParams)
.serviceHttpUrl(url)
.tlsTrustCertsFilePath(tlsTrustCertsFilePath)
.allowTlsInsecureConnection(tlsAllowInsecureConnection)
.build();
If you use multiple brokers, you can use multi-host like Pulsar service. For example,
String url = "http://localhost:8080,localhost:8081,localhost:8082";
// Below are the same to the line 2 - line 13 in the code snippet above
// Pass auth-plugin class fully-qualified name if Pulsar-security enabled
String authPluginClassName = "com.org.MyAuthPluginClass";
// Pass auth-param if auth-plugin class requires it
String authParams = "param1=value1";
boolean tlsAllowInsecureConnection = false;
String tlsTrustCertsFilePath = null;
PulsarAdmin admin = PulsarAdmin.builder()
.authentication(authPluginClassName,authParams)
.serviceHttpUrl(url)
.tlsTrustCertsFilePath(tlsTrustCertsFilePath)
.allowTlsInsecureConnection(tlsAllowInsecureConnection)
.build();