
# 使用ACL权限访问
实例开启ACL访问控制后，消息生产者和消费者都需要增加用户认证信息。
#### 准备环境
开源的Java客户端支持连接分布式消息服务RocketMQ版，推荐使用的客户端版本为**5.1.4**。
通过以下任意一种方式引入依赖：
- 使用Maven方式引入依赖。
  ```
  <dependency>
      <groupId>org.apache.rocketmq</groupId>
      <artifactId>rocketmq-client</artifactId>
      <version>5.1.4</version>
  </dependency>
  <dependency>
      <groupId>org.apache.rocketmq</groupId>
      <artifactId>rocketmq-acl</artifactId>
      <version>5.1.4</version>
  </dependency>
  ```
  
- 下载[依赖JAR包](https://archive.apache.org/dist/rocketmq/5.1.4/rocketmq-all-5.1.4-bin-release.zip)。
 
#### 生产者增加用户认证信息
生产者初始化时需要增加"rpcHook"参数。
- 普通消息、顺序消息和定时消息，增加如下代码。
  ```
  RPCHook rpcHook = new AclClientRPCHook(new SessionCredentials("ACL_User_Name", "ACL_Secret_Key"));
  DefaultMQProducer producer = new DefaultMQProducer("ProducerGroupName", rpcHook);
  ```
  
- 事务消息，增加如下代码。
  ```
  RPCHook rpcHook = new AclClientRPCHook(new SessionCredentials("ACL_User_Name", "ACL_Secret_Key"));
  TransactionMQProducer producer = new TransactionMQProducer("ProducerGroupName", rpcHook);
  ```
  
 
ACL_User_Name为用户名，ACL_Secret_Key为用户的密钥。创建用户的步骤，请参见[创建用户](https://support.huaweicloud.com/usermanual-hrm/hrm-ug-035.html)。为了确保用户名和密钥的安全性，建议对用户名和密钥进行加密处理。
#### 消费者增加用户认证信息
消费者初始化时需要增加"rpcHook"参数。无论是普通消息、顺序消息、定时消息，还是事务消息，都增加如下代码。
```
RPCHook rpcHook = new AclClientRPCHook(new SessionCredentials("ACL_User_Name", "ACL_Secret_Key"));
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(null, "ConsumerGroupName", rpcHook);
```
ACL_User_Name为用户名，ACL_Secret_Key为用户的密钥。创建用户的步骤，请参见[创建用户](https://support.huaweicloud.com/usermanual-hrm/hrm-ug-035.html)。为了确保用户名和密钥的安全性，建议对用户名和密钥进行加密处理。
