在wso2 API manager 1.8.0中使用Curl命令重新生成应用程序AccessToken时出错

在wso2 API manager 1.8.0中使用Curl命令重新生成应用程序AccessToken时出错,curl,wso2,wso2-am,Curl,Wso2,Wso2 Am,我正在尝试使用Curl命令重新生成应用程序访问令牌。我已经安装了wso2 1.8.0版本。当我试图在命令下开火时,我越来越害怕了 {"error" : true, "message" : "Error occurred while executing the action generateApplicationKey"} 命令: curl -X POST -b cookies http://localhost:9763/store/site/blocks/subscription/subsc

我正在尝试使用Curl命令重新生成应用程序访问令牌。我已经安装了wso2 1.8.0版本。当我试图在命令下开火时,我越来越害怕了

{"error" : true, "message" : "Error occurred while executing the action generateApplicationKey"}

命令:

curl -X POST -b cookies http://localhost:9763/store/site/blocks/subscription/subscription-add/ajax/subscription-add.jag -d 'action=generateApplicationKey&application=test&keytype=PRODUCTION&callbackUrl=&authorizedDomains=ALL&validityTime=360000'
请帮忙。问题在哪里

wso2carbon.log中的堆栈跟踪:

TID: [0] [AM] [2015-12-24 13:47:51,378] ERROR {org.wso2.carbon.apimgt.hostobjects.APIStoreHostObject} -  Error while obtaining the application access token for the application:test {org.wso2.carbon.apimgt.hostobjects.APIStoreHostObject}
org.wso2.carbon.apimgt.api.APIManagementException: Could not execute Workflow
        at org.wso2.carbon.apimgt.impl.APIConsumerImpl.requestApprovalForApplicationRegistration(APIConsumerImpl.java:1746)
        at org.wso2.carbon.apimgt.impl.UserAwareAPIConsumer.requestApprovalForApplicationRegistration(UserAwareAPIConsumer.java:34)
        at org.wso2.carbon.apimgt.hostobjects.APIStoreHostObject.jsFunction_getApplicationKey(APIStoreHostObject.java:692)
        at sun.reflect.GeneratedMethodAccessor130.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:126)
        at org.mozilla.javascript.FunctionObject.call(FunctionObject.java:386)
        at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52)
        at org.jaggeryjs.rhino.store.modules.subscription.c3._c_anonymous_2(/store/modules/subscription/key.jag:34)
        at org.jaggeryjs.rhino.store.modules.subscription.c3.call(/store/modules/subscription/key.jag)
        at org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
        at org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
        at org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
        at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
        at org.jaggeryjs.rhino.store.modules.subscription.c0._c_anonymous_8(/store/modules/subscription/module.jag:29)
        at org.jaggeryjs.rhino.store.modules.subscription.c0.call(/store/modules/subscription/module.jag)
        at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52)
        at org.jaggeryjs.rhino.store.site.blocks.subscription.subscription_add.ajax.c0._c_anonymous_1(/store/site/blocks/subscription/subscription-add/ajax/subscription-add.jag:155)
        at org.jaggeryjs.rhino.store.site.blocks.subscription.subscription_add.ajax.c0.call(/store/site/blocks/subscription/subscription-add/ajax/subscription-add.jag)
        at org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:23)
        at org.jaggeryjs.rhino.store.site.blocks.subscription.subscription_add.ajax.c0._c_script_0(/store/site/blocks/subscription/subscription-add/ajax/subscription-add.jag:3)
        at org.jaggeryjs.rhino.store.site.blocks.subscription.subscription_add.ajax.c0.call(/store/site/blocks/subscription/subscription-add/ajax/subscription-add.jag)
        at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
        at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
        at org.jaggeryjs.rhino.store.site.blocks.subscription.subscription_add.ajax.c0.call(/store/site/blocks/subscription/subscription-add/ajax/subscription-add.jag)
        at org.jaggeryjs.rhino.store.site.blocks.subscription.subscription_add.ajax.c0.exec(/store/site/blocks/subscription/subscription-add/ajax/subscription-add.jag)
        at org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:570)
        at org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:273)
        at org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:432)
        at org.jaggeryjs.jaggery.core.JaggeryServlet.doPost(JaggeryServlet.java:29)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
        at org.jaggeryjs.jaggery.core.JaggeryFilter.doFilter(JaggeryFilter.java:21)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:178)
        at org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)
        at org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:56)
        at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)
        at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:141)
        at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
        at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:52)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)
Caused by: org.wso2.carbon.apimgt.impl.workflow.WorkflowException: Error occured when updating the status of the Application creation process
        at org.wso2.carbon.apimgt.impl.workflow.ApplicationRegistrationSimpleWorkflowExecutor.complete(ApplicationRegistrationSimpleWorkflowExecutor.java:79)
        at org.wso2.carbon.apimgt.impl.workflow.ApplicationRegistrationSimpleWorkflowExecutor.execute(ApplicationRegistrationSimpleWorkflowExecutor.java:52)
        at org.wso2.carbon.apimgt.impl.APIConsumerImpl.requestApprovalForApplicationRegistration(APIConsumerImpl.java:1742)
        ... 62 more
Caused by: org.wso2.carbon.apimgt.api.APIManagementException: Error occurred while creating an Application Registration Entry for Application : test
        at org.wso2.carbon.apimgt.impl.dao.ApiMgtDAO.handleException(ApiMgtDAO.java:5832)
        at org.wso2.carbon.apimgt.impl.dao.ApiMgtDAO.createApplicationRegistrationEntry(ApiMgtDAO.java:284)
        at org.wso2.carbon.apimgt.impl.workflow.ApplicationRegistrationSimpleWorkflowExecutor.complete(ApplicationRegistrationSimpleWorkflowExecutor.java:74)
        ... 64 more
Caused by: org.h2.jdbc.JdbcSQLException: Unique index or primary key violation: "CONSTRAINT_INDEX_F9 ON PUBLIC.AM_APPLICATION_REGISTRATION(SUBSCRIBER_ID, APP_ID, TOKEN_TYPE)"; SQL statement:
INSERT INTO  AM_APPLICATION_REGISTRATION (SUBSCRIBER_ID,WF_REF,APP_ID,TOKEN_TYPE,ALLOWED_DOMAINS,VALIDITY_PERIOD)   VALUES(?,?,?,?,?,?) [23001-140]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:327)
        at org.h2.message.DbException.get(DbException.java:167)
        at org.h2.message.DbException.get(DbException.java:144)
        at org.h2.index.BaseIndex.getDuplicateKeyException(BaseIndex.java:157)
        at org.h2.index.PageBtree.find(PageBtree.java:121)
        at org.h2.index.PageBtreeLeaf.addRow(PageBtreeLeaf.java:138)
        at org.h2.index.PageBtreeLeaf.addRowTry(PageBtreeLeaf.java:93)
        at org.h2.index.PageBtreeIndex.addRow(PageBtreeIndex.java:90)
        at org.h2.index.PageBtreeIndex.add(PageBtreeIndex.java:81)
        at org.h2.table.RegularTable.addRow(RegularTable.java:116)
        at org.h2.command.dml.Insert.insertRows(Insert.java:120)
        at org.h2.command.dml.Insert.update(Insert.java:82)
        at org.h2.command.CommandContainer.update(CommandContainer.java:70)
        at org.h2.command.Command.executeUpdate(Command.java:199)
        at org.h2.jdbc.JdbcPreparedStatement.execute(JdbcPreparedStatement.java:179)
        at org.wso2.carbon.apimgt.impl.dao.ApiMgtDAO.createApplicationRegistrationEntry(ApiMgtDAO.java:267)
        ... 65 more
TID: [0] [AM] [2015-12-24 13:47:51,383] ERROR {JAGGERY.site.blocks.subscription.subscription-add.ajax.subscription-add:jag} -  org.jaggeryjs.scriptengine.exceptions.ScriptException: Error while obtaining the application access token for the application:test {JAGGERY.site.blocks.subscription.subscription-add.ajax.subscription-add:jag}

如果已生成一次访问令牌和使用者密钥和机密,则可以将它们与一起使用以重新生成访问令牌。无法使用指定的curl重新生成访问密钥,因为它用于按指定的操作生成应用程序密钥,而不是用于重新生成

总结一下如何使用生成的使用者密钥和第一个curl请求的秘密重新生成访问令牌

curl-X POST-b cookieshttp://localhost:9763/store/site/blocks/subscription/subscription-add/ajax/subscription-add.jag-d'action=generateApplicationKey&application=test&keytype=PRODUCTION&callbackUrl=&authorizedDomains=ALL&validityTime=360000'

下面是步骤

  • 将生成的使用者密钥和机密放入以下格式后,使用它们创建base64编码的令牌
  • 创建此呼叫
  • curl-k-d“grant_type=password&username=&password=“-H”授权:基本,内容类型:application/x-www-form-urlencoded”https://localhost:8243/token

    这将产生一个访问令牌和一个刷新令牌

  • 您可以使用步骤2中生成的刷新令牌来重新生成访问令牌,如下所示

  • curl-k-d“grant\u type=refresh\u token&refresh\u token=&scope=PRODUCTION”-H“授权:基本,内容类型:application/x-www-form-urlencoded”https://localhost:8243/token

    你好,拉克希曼,谢谢你的快速回复。通过使用上述步骤,我可以续订访问令牌,但为什么存储UI订阅页面的访问令牌会话中没有反映相同的情况。我可以使用Store UI中的Regenate按钮重新生成应用程序令牌,该按钮显示新生成的应用程序访问令牌,但如果我们将通过令牌API生成,它不会反映在Store UI上。@Pabitra:API Store不是这样设计的。无论如何,您应该能够使用通过UI和curl命令生成的访问令牌。如果答案适合您,请毫不犹豫地将其标记为“答案”。