import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';
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.
<Tabs groupId=“api-choice” defaultValue=“pulsar-admin” values={[{“label”:“pulsar-admin”,“value”:“pulsar-admin”},{“label”:“REST API”,“value”:“REST API”},{“label”:“Java”,“value”:“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 REST API doc.
To use the Java admin API, instantiate a PulsarAdmin object, and specify a URL for a Pulsar broker and a PulsarAdminBuilder. 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();