0

たとえば、curlを使用してActiveMQトピックのスクリプトを挿入する運があった人はいますか?私はこのようなことを試みています

curl -d "JMSDestination=COMMON_TOPIC&JMSDestinationType=topic&JMSMessageCount=1&JMSText={\"name\":\"values-etc\"}}" http://localhost:8161/admin/sendMessage.action

AMQ-2740のようなHTTP500NullPointerExceptionが返されます

java.lang.NullPointerException
at org.apache.activemq.web.handler.BindingBeanNameUrlHandlerMapping.getHandlerInternal(BindingBeanNameUrlHandlerMapping.java:57)

問題は秘密鍵の生成と再送信にあるようですが、そこで迷子になります。誰もがこれで運が良かったですか?

4

1 に答える 1

2

これは、BASICHTTP認証とActiveMQ5.4.2で機能します。

あなたが言ったように、あなたはあなたのJavaセッションを維持するだけでなく、秘密鍵を含める必要があります。SECRET変数で秘密鍵を取得し、Cookieファイル(JSESSIONID用)を保存しましょう。

SECRET=`curl --silent -H "Authorization: Basic YWRtaW46c29tZXBhc3N3b3Jk" -c cookies "http://127.0.0.1:6500/admin/send.jsp?JMSDestination=$DESTINATION&JMSDestinationType=$DESTINATION_TYPE" | sed -n '/secret/s/.*name="secret"\s\+value="\([^"]\+\).*/\1/p'`

Authorizationヘッダーには、クレデンシャルのハッシュが含まれています。実際のWebコンソールおよびWeb開発ツール(chomeではF12)内でクレデンシャルをスニッフィングできます。

クッキーとシークレットを再利用してメッセージを送信する

curl --silent -H "Authorization: Basic YWRtaW46c29tZXBhc3N3b3Jk" -b cookies --data "secret=${SECRET}&JMSDestination=${DESTINATION}&JMSDestinationType=${DESTINATION_TYPE}&JMSText=${MESSAGE}"

5.8には特権が必要なRESTfulAPIがあることに注意してください

于 2013-01-11T14:50:35.867 に答える