You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@rocketmq.apache.org by GitBox <gi...@apache.org> on 2019/03/13 10:51:53 UTC

[GitHub] [rocketmq] haoforliu commented on issue #403: ACL feature request

haoforliu commented on issue #403: ACL feature request
URL: https://github.com/apache/rocketmq/issues/403#issuecomment-472372912
 
 
   @dongeforever 你好! 提个问题:
   我在开启ACL后,使用如下方式发送消息:
   SessionCredentials sc = new SessionCredentials("accessKey", "secretKey");
   RPCHook hook = new AclClientRPCHook(sc);
   DefaultMQProducer producer = new DefaultMQProducer("producer_group", hook);
   结果会出现这样的异常:
   org.apache.rocketmq.client.exception.MQClientException: Send [3] times, still failed, cost [864]ms, Topic: test_filter, BrokersSent: [broker-a, broker-b, broker-a]
   See http://rocketmq.apache.org/docs/faq/ for further details.
   	at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:632)
   	at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:1279)
   	at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:1225)
   	at org.apache.rocketmq.client.producer.DefaultMQProducer.send(DefaultMQProducer.java:283)
   	at test_rockemq.TestFilter.produce(TestFilter.java:39)
   	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   	at java.lang.reflect.Method.invoke(Unknown Source)
   	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
   	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
   	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
   	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
   	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
   	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
   	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
   	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
   	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
   	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
   	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
   	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
   	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
   	at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
   	at org.junit.runner.JUnitCore.run(JUnitCore.java:138)
   	at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:39)
   	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
   	at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
   	at java.util.Iterator.forEachRemaining(Unknown Source)
   	at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Unknown Source)
   	at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
   	at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
   	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
   	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
   	at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
   	at java.util.stream.ReferencePipeline.forEach(Unknown Source)
   	at org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:79)
   	at org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:70)
   	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:170)
   	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:154)
   	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:90)
   	at org.eclipse.jdt.internal.junit5.runner.JUnit5TestReference.run(JUnit5TestReference.java:86)
   	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
   	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538)
   	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)
   	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)
   	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)
   Caused by: org.apache.rocketmq.client.exception.MQBrokerException: CODE: 1  DESC: org.apache.rocketmq.acl.common.AclException: [10015:signature-failed] unable to calculate a request signature. error=[10015:signature-failed] unable to calculate a request signature. error=Algorithm HmacSHA1 not available, org.apache.rocketmq.acl.common.AclSigner.signAndBase64Encode(AclSigner.java:84)
   For more information, please visit the url, http://rocketmq.apache.org/docs/faq/
   	at org.apache.rocketmq.client.impl.MQClientAPIImpl.processSendResponse(MQClientAPIImpl.java:556)
   	at org.apache.rocketmq.client.impl.MQClientAPIImpl.sendMessageSync(MQClientAPIImpl.java:358)
   	at org.apache.rocketmq.client.impl.MQClientAPIImpl.sendMessage(MQClientAPIImpl.java:340)
   	at org.apache.rocketmq.client.impl.MQClientAPIImpl.sendMessage(MQClientAPIImpl.java:294)
   	at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendKernelImpl(DefaultMQProducerImpl.java:807)
   	at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:551)
   	... 45 more
   
   请问是Algorithm HmacSHA1不可用的原因是什么?
   PS: rocketmq的版本是4.4.0
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services