This is an automated email from the ASF dual-hosted git repository.
dongeforever pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git
The following commit(s) were added to refs/heads/develop by this push:
new 6f322c4 [issue#789]fix NullPointerException in the
PlainAccessValidator#parse() method when recieved some admin request command,if
configed no aclRPCHook. (#819)
6f322c4 is described below
commit 6f322c46df9b14c2ac37512eb6e569398427bf0d
Author: Hu Zongtang <[email protected]>
AuthorDate: Thu Feb 21 14:01:18 2019 +0800
[issue#789]fix NullPointerException in the PlainAccessValidator#parse()
method when recieved some admin request command,if configed no aclRPCHook.
(#819)
* [issue#790]fix defaultTopicPerm and defaultGroupPerm values which are in
the yaml config file doesn't work.
* [issue#790]fix defaultTopicPerm and defaultGroupPerm doesn't work,fix the
unit test.
* [issue#789]fix NullPointerException in the PlainAccessValidator#parse()
method when recieved some admin request command,if configed no aclRPCHook.
---
.../apache/rocketmq/acl/plain/PlainAccessValidator.java | 5 +++++
.../rocketmq/acl/plain/PlainAccessValidatorTest.java | 17 +++++++++++++++++
2 files changed, 22 insertions(+)
diff --git
a/acl/src/main/java/org/apache/rocketmq/acl/plain/PlainAccessValidator.java
b/acl/src/main/java/org/apache/rocketmq/acl/plain/PlainAccessValidator.java
index 34bb1b4..bd50e12 100644
--- a/acl/src/main/java/org/apache/rocketmq/acl/plain/PlainAccessValidator.java
+++ b/acl/src/main/java/org/apache/rocketmq/acl/plain/PlainAccessValidator.java
@@ -52,6 +52,11 @@ public class PlainAccessValidator implements AccessValidator
{
} else {
accessResource.setWhiteRemoteAddress(remoteAddr);
}
+
+ if (request.getExtFields() == null) {
+ throw new AclException("request's extFields value is null");
+ }
+
accessResource.setRequestCode(request.getCode());
accessResource.setAccessKey(request.getExtFields().get(SessionCredentials.ACCESS_KEY));
accessResource.setSignature(request.getExtFields().get(SessionCredentials.SIGNATURE));
diff --git
a/acl/src/test/java/org/apache/rocketmq/acl/plain/PlainAccessValidatorTest.java
b/acl/src/test/java/org/apache/rocketmq/acl/plain/PlainAccessValidatorTest.java
index 16e7702..e7b6f2d 100644
---
a/acl/src/test/java/org/apache/rocketmq/acl/plain/PlainAccessValidatorTest.java
+++
b/acl/src/test/java/org/apache/rocketmq/acl/plain/PlainAccessValidatorTest.java
@@ -43,6 +43,7 @@ public class PlainAccessValidatorTest {
@Before
public void init() {
System.setProperty("rocketmq.home.dir", "src/test/resources");
+ System.setProperty("rocketmq.acl.plain.file", "/conf/plain_acl.yml");
plainAccessValidator = new PlainAccessValidator();
sessionCredentials = new SessionCredentials();
sessionCredentials.setAccessKey("RocketMQ");
@@ -115,6 +116,22 @@ public class PlainAccessValidatorTest {
plainAccessValidator.validate(accessResource);
}
+ @Test(expected = AclException.class)
+ public void validateForAdminCommandWithOutAclRPCHook() {
+ RemotingCommand consumerOffsetAdminRequest =
RemotingCommand.createRequestCommand(RequestCode.GET_ALL_CONSUMER_OFFSET, null);
+ plainAccessValidator.parse(consumerOffsetAdminRequest,
"192.168.0.1:9876");
+
+ RemotingCommand subscriptionGroupAdminRequest =
RemotingCommand.createRequestCommand(RequestCode.GET_ALL_SUBSCRIPTIONGROUP_CONFIG,
null);
+ plainAccessValidator.parse(subscriptionGroupAdminRequest,
"192.168.0.1:9876");
+
+ RemotingCommand delayOffsetAdminRequest =
RemotingCommand.createRequestCommand(RequestCode.GET_ALL_DELAY_OFFSET, null);
+ plainAccessValidator.parse(delayOffsetAdminRequest,
"192.168.0.1:9876");
+
+ RemotingCommand allTopicConfigAdminRequest =
RemotingCommand.createRequestCommand(RequestCode.GET_ALL_TOPIC_CONFIG, null);
+ plainAccessValidator.parse(allTopicConfigAdminRequest,
"192.168.0.1:9876");
+
+ }
+
@Test
public void validatePullMessageTest() {
PullMessageRequestHeader pullMessageRequestHeader=new
PullMessageRequestHeader();