当前位置: 首页 > 知识库问答 >
问题:

wso2 api管理器-wso2: vault查找()不工作

陈俊郎
2023-03-14

我想配置WSO2 Api Manager以在一个中按顺序发送基本的auth头。在我开始配置安全保管库来存储凭据之前,一切都运行良好。

我使用的是Api Manager(https://github.com/wso2/docker-apim/tree/v2.1.0/docker-compose/pattern-2 )

我尝试在repository/conf/security/ciphertext中添加新的vault条目。属性文件,但在运行sh bin/ciphertool之后。sh-Dconfigure我收到一个异常:

Exception in thread "main" org.wso2.ciphertool.exception.CipherToolException: XPath value for secret alias 'ApiManager.BasicAuth.password' cannot be found.
at org.wso2.ciphertool.CipherTool.loadXpathValuesAndPasswordDetails(CipherTool.java:174)
at org.wso2.ciphertool.CipherTool.main(CipherTool.java:56)

这是否意味着我必须将xPath指定到我想要使用它的序列文件中?

除此之外,我想检查是否可以在我的序列中使用vault文件(repository/conf/security/cipher text.properties)中的任何现有密码,因此我使用了一个值:

<property name="X-SomeHeader" expression="wso2:vault-lookup('UserManager.AdminUser.Password')" scope="transport" type="STRING" description="" />

当我尝试使用此序列运行API时,我收到以下异常:

api-manager_1   | [2017-05-25 10:12:04,949] ERROR - SynapseXPath Evaluation of the XPath expression wso2:vault-lookup('UserManager.AdminUser.Password') resulted in an error
api-manager_1   | org.jaxen.FunctionCallException
api-manager_1   |   at org.wso2.carbon.mediation.security.vault.xpath.VaultLookupFunction.call(VaultLookupFunction.java:85)
api-manager_1   |   at org.jaxen.expr.DefaultFunctionCallExpr.evaluate(DefaultFunctionCallExpr.java:181)
api-manager_1   |   at org.jaxen.expr.DefaultXPathExpr.asList(DefaultXPathExpr.java:102)
api-manager_1   |   at org.jaxen.BaseXPath.selectNodesForContext(BaseXPath.java:677)
api-manager_1   |   at org.jaxen.BaseXPath.selectNodes(BaseXPath.java:216)
api-manager_1   |   at org.jaxen.BaseXPath.evaluate(BaseXPath.java:175)
api-manager_1   |   at org.apache.synapse.util.xpath.SynapseXPath.stringValueOf(SynapseXPath.java:297)
api-manager_1   |   at org.apache.synapse.mediators.builtin.PropertyMediator.getResultValue(PropertyMediator.java:346)
api-manager_1   |   at org.apache.synapse.mediators.builtin.PropertyMediator.mediate(PropertyMediator.java:108)
api-manager_1   |   at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:97)
api-manager_1   |   at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:59)
api-manager_1   |   at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158)
api-manager_1   |   at org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler.mediate(APIManagerExtensionHandler.java:67)
api-manager_1   |   at org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler.handleRequest(APIManagerExtensionHandler.java:78)
api-manager_1   |   at org.apache.synapse.rest.API.process(API.java:325)
api-manager_1   |   at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:90)
api-manager_1   |   at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:69)
api-manager_1   |   at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:304)
api-manager_1   |   at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:78)
api-manager_1   |   at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
api-manager_1   |   at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:325)
api-manager_1   |   at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:158)
api-manager_1   |   at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
api-manager_1   |   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
api-manager_1   |   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
api-manager_1   |   at java.lang.Thread.run(Thread.java:745)
api-manager_1   | Caused by: java.lang.NullPointerException
api-manager_1   |   at org.wso2.carbon.mediation.security.vault.SecureVaultLookupHandlerImpl.vaultLookup(SecureVaultLookupHandlerImpl.java:166)
api-manager_1   |   at org.wso2.carbon.mediation.security.vault.SecureVaultLookupHandlerImpl.evaluate(SecureVaultLookupHandlerImpl.java:153)
api-manager_1   |   at org.wso2.carbon.mediation.security.vault.xpath.VaultLookupFunction.call(VaultLookupFunction.java:82)
api-manager_1   |   ... 25 more

有人能告诉我我做错了什么吗?先谢谢你。

共有1个答案

赵灼光
2023-03-14
Exception in thread "main" org.wso2.ciphertool.exception.CipherToolException: XPath value for secret alias 'ApiManager.BasicAuth.password' cannot be found.
at org.wso2.ciphertool.CipherTool.loadXpathValuesAndPasswordDetails(CipherTool.java:174)
at org.wso2.ciphertool.CipherTool.main(CipherTool.java:56)

意味着你的密码工具。属性文件包含的xpath与指定文件中的xpath不匹配。

它必须是这样的:{alias}={path}{xpath},因此如果采用以下方法:

SalesforcePasswords.SalesforceApi.ClientId=tmp/app-config/SalesforcePasswords.xml//SalesforceApi/ClientId
  • {alias}是SalesforcePasswords。SalesforceApi。客户ID
  • {path}是tmp/app config/SalesforcePasswords。xml
  • {xpath}是//SalesforceApi/ClientId

不知道是什么导致了你的第二次例外

 类似资料:
  • 我们正在将WSO2 API Manager从2.1版更新到2.6版。我们正在使用带有木偶支持的分布式部署(模式4)。阅读更新指南(https://docs.wso2.com/display/AM260/Upgrading上一个版本),我们注意到它只谈到数据库升级和工件更新。剩下的所有配置呢? 似乎我们应该安装一个新的分布式环境(2.6版本),并从地面再次配置它。在这种情况下,我们想使用木偶。无论如

  • 在WSO2AS5.0.1中,我部署了一个webapp,它应该使用数据源。我可以在tomcat-server.xml或WAR中的任何其他地方配置数据源,但是否可以使用通过JNDI在Carbon Management Console中配置的数据源? 采取的步骤: meta-inf/context.xml中的ResourceLink链接全局资源: 引用web.xml中的资源 这种构型是WSO2碳支持的吗

  • 因此,我们设置了一个api管理器,其中有一个标识服务器作为密钥管理器。Carbon.super是唯一可以在api管理器中创建API的租户,没有任何问题。 内部/每个人都被授予了他们租户的所有权限,不同租户的用户可以登录到api管理器发布者和商店,在其他租户上用户无法创建任何api,因为API管理器上的以下错误删除了(at)引用,使其更难阅读。 有关完整的问题日志,请访问以下链接:https://p

  • 问题内容: 大家好,我似乎一直无法解决当前的问题,而且我的头正变得越来越秃。 当前的问题是我的SDK管理员找不到我的Java,也找不到我的SWT文件。 我正在运行Windows 7 64位,并且我的SDK,Java,SWT位于以下位置。 我是第一次学习编码,到目前为止,我已经尝试了所有方法。设置SDK管理器指定的正确路径,甚至尝试设置多个路径,更改批处理文件,然后列表继续。 有任何想法吗? 混乱的

  • 概览 我们用docker run指令来运行一个容器: 交互容器跑在前端. 守护进程跑在后台. 一些常用管理容器的命令: docker ps - 列出容器. docker logs - 输出容器日志. docker stop - 停止运行容器. Docker客户端非常简单,你只需要需要输入一些带有一系列参数的指令就可以: # Usage: [sudo] docker [command] [flag

  • 我正在使用HazelCast的这个示例,其中管理中心在 但是当我访问< code > http://localhost:9090/mancenter 时,我得到< code >加载资源失败:net::ERR _ CONNECTION _ rejected