参考:Pulsar集群和PulsarManager添加JWT认证_pulsar 管理界面_酱紫很帅的博客-CSDN博客
在其中一个节点上执行,并把生成的my-secret.key拷贝到其他节点上
bin/pulsar tokens create-secret-key --output /data/my-secret.key --base64
在其中一个节点上执行
pulsar tokens create --secret-key file:///data/my-secret.key --subject pulsar-admin
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJwdWxzYXItYWRtaW4ifQ.7qOOul4v82J_r-r06uWkIGwgr_y5e_dJ2zPgAAZvvIg
可通过--expiry-time
设置token的有效期
pulsar tokens create --secret-key file:///data/my-secret.key --subject test --expiry-time 1y #有效期为1年
在所有节点上执行
修改broker.conf文件
vim conf/broker.conf
authenticationEnabled=true
superUserRoles=pulsar-user # 用户名
authorizationEnabled=true
authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderToken
authenticateOriginalAuthData=true
tokenSecretKey=file:///data/my-secret.key # my-secret.key的绝对路径
brokerClientAuthenticationPlugin=org.apache.pulsar.client.impl.auth.AuthenticationToken
brokerClientAuthenticationParameters=token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJwdWxzYXItYWRtaW4ifQ.7qOOul4v82J_r-r06uWkIGwgr_y5e_dJ2zPgAAZvvIg # 第二步生成的token
在broker.conf文件配置完成后重启pulsar-broker即可开启认证,此时在客户端进行远程访问或者在服务集群命令行操作都需要进行认证才能进行相关操作。
修改client.conf文件
vim conf/client.conf
authPlugin=org.apache.pulsar.client.impl.auth.AuthenticationToken
authParams=token:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJwdWxzYXItYWRtaW4ifQ.7qOOul4v82J_r-r06uWkIGwgr_y5e_dJ2zPgAAZvvIg # 第二步生成的token
在client.conf配置完成后重启pulsar-broker,此时在客户端进行远程访问需要进行认证才能进行相关操作,但在集群服务器进行命令行操作不需要进行认证。
所有节点都执行
bin/pulsar-daemon stop broker
bin/pulsar-daemon start broker
在给Pulsar添加了认证相关的配置后,发现pulsar-manger的管理页面是无法使用的,需要我们也进行token相关的配置。 修改pulsar-manager目录下的application.properties文件中jwt相关的配置。
backend.jwt.token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiJ9.NMwO2z_xzpH7EydXbMs59Ct394Nr8-X3zc41hDY6dss
jwt.broker.token.mode=SECRET #我这里使用的是对称密钥,根据自己生成密钥的实际情况选择
jwt.broker.secret.key=file:///data/my-secret.key
jwt.broker.public.key=file:///path/pulsar/broker-public.key
jwt.broker.private.key=file:///path/broker-private.key
修改完配置后,重启pulsar-manger即可。
Pulsar sql相关配置可以参考:pulsar集成presto_presto pulsar_0TXY0的博客-CSDN博客
修改 pulsar.properties 中的内容
#用来验证 Pulsar 集群的认证插件
pulsar.auth-plugin=org.apache.pulsar.client.impl.auth.AuthenticationToken
# 用来向 Pulsar 集群认证的认证参数,格式为字符串,例如:“key1:vall,key2:val2”。
pulsar.auth-params=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJwdWxzYXItYWRtaW4ifQ.7qOOul4v82J_r-r06uWkIGwgr_y5e_dJ2zPgAAZvvIg