因为提供的docker-compose是创建容器时直接bin/pulsar standalone,所以需要将配置文件挂载在容器外,然后修改配置文件添加权限后重启容器生效。其中secret-key可以在第一次启动容器后进入容器生成,然后挂载在容器外。
//创建key
bin/pulsar tok
//获取超级用户的token,放在配置文件中
bin/pulsar tokens create --secret-key file:///pulsar/my-secret.key --subject adminens create-secret-key --output my-secret.key
//修改standalone.conf中的以下几项
authenticationEnabled=true
authorizationEnabled=true
authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderToken
superUserRoles=admin
brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationToken
brokerClientAuthenticationParameters={"token":"超级用户的token"}
tokenSecretKey=/opt/key/my-secret.key
//docker-compose挂载
volumes:
- /opt/pulsar/key:/opt/key //secret-key
- /opt/pulsar/conf:/pulsar/conf //配置文件