Ibm mobilefirst 403禁止错误mobilefirst平台

Ibm mobilefirst 403禁止错误mobilefirst平台,ibm-mobilefirst,rest-client,mobilefirst-adapters,mobilefirst-server,Ibm Mobilefirst,Rest Client,Mobilefirst Adapters,Mobilefirst Server,我创建了一个启用了安全性的MobileFirst适配器。我生成了令牌,当我尝试调用API时,我得到了403个禁止的错误。在本地主机上同样可以正常工作,但在服务器上部署时会出现此错误。我在下面附上了REST客户端的截图 我使用的是MFP7.0.0版本 日志文件: [11/2/15 5:24:57:786 CST]000049b7 com.ibm.ws.webcontainer.util.ApplicationErrorUtils E SRVE0777E:应用程序类“org.apache.wink

我创建了一个启用了安全性的MobileFirst适配器。我生成了令牌,当我尝试调用API时,我得到了403个禁止的错误。在本地主机上同样可以正常工作,但在服务器上部署时会出现此错误。我在下面附上了REST客户端的截图

我使用的是MFP7.0.0版本

日志文件:

[11/2/15 5:24:57:786 CST]000049b7 com.ibm.ws.webcontainer.util.ApplicationErrorUtils E SRVE0777E:应用程序类“org.apache.wink.server.internal.RequestProcessor.HandlerRequest:195”引发的异常 javax.servlet.ServletException:java.lang.NoClassDefFoundError:com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException 位于org.apache.wink.server.internal.RequestProcessor.handleRequest(RequestProcessor.java:195) 位于org.apache.wink.server.internal.servlet.RestServlet.service(RestServlet.java:119) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:668) 位于com.worklight.adapters.rest.jaxrsandbox$2.doFilter(jaxrsandbox.java:377) 位于com.worklight.adapters.rest.FilterChainImpl.doFilter(FilterChainImpl.java:84) 位于com.worklight.adapters.rest.jaxrsandbox.handleRequest(jaxrsandbox.java:382) 位于com.worklight.adapters.rest.restadapterserviceservlet.doService(restadapterserviceservlet.java:69) 位于com.worklight.adapters.rest.restadapterservlet.service(restadapterservlet.java:64) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:668) 位于com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1285) 位于com.ibm.ws.webcontainer.servlet.ServletWrapper.HandlerRequest(ServletWrapper.java:776) 位于com.ibm.ws.webcontainer.servlet.ServletWrapper.HandlerRequest(ServletWrapper.java:473) 位于com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:135) com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:74) 在com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:978) 在com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters上(WebAppFilterManager.java:1100) 位于com.ibm.ws.webcontainer.servlet.CacheServletWrapper.HandlerRequest(CacheServletWrapper.java:81) 位于com.ibm.ws.webcontainer.webcontainer.handleRequest(webcontainer.java:912) 位于com.ibm.ws.webcontainer.osgi.DynamicVirtualHost$2.run(DynamicVirtualHost.java:262) 位于com.ibm.ws.http.dispatcher.internal.channel.HttpDispatcherLink$TaskWrapper.run(HttpDispatcherLink.java:955) 位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1157) 位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:627) 运行(Thread.java:863) 原因:java.lang.NoClassDefFoundError:com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException 位于java.lang.Class.forNameImpl(本机方法)
在java.lang.Class.forName(Class.java:253)

中,我深入研究了这个问题,因为我们需要调用新的java适配器(JAX-RS实现),该适配器通过REST客户端受@OuathSecurity保护

但我需要问你们几个问题,以便给你们更好的答案:

  • 这是您需要的场景吗
  • 您是否使用此文档生成令牌

您正在使用测试令牌端点?

您有代码吗?您在application descriptor.xml中定义了作用域吗?@Idan是的,我在authenticationConfig.xml中定义了作用域。我正在使用MFP 7.0.0。是的,我想通过rest客户端调用java适配器。API受
@OAuthSecurity(scope=“default”)
保护,我在MFP项目(eclipse)的server/conf下的authenticationConfig.xml中定义了领域“default”。我从localhost使用authentication/v1/testtokenurl生成了测试令牌。我使用的是MFP7.0.0版本。在连接到localhost时,在头中添加令牌并在REST客户机中运行之后,我得到了API响应。但是,在专用服务器上部署之后,同样的方法就不起作用了。很遗憾,简单的回答是,适配器(启用了安全性)不起作用用于接收由两部分组成的令牌1)访问令牌2)ID令牌(设备信息的数字签名,如型号、平台、设备ID)当您将从非移动上下文调用时,您将无法获取此信息。分析服务使用此信息记录适配器调用和此设备信息(从ID令牌中提取)-此外,测试令牌仅存在于开发环境中,它的ID令牌包含有关虚拟设备的信息我们按照此链接生成有效的访问令牌以用于REST客户端调用,它成功并通过了安全性,但它不包含ID令牌(设备信息),因此抛出错误代码500(内部服务器错误)与分析服务尝试记录空设备信息相关,我还没有找到任何方法来生成ID令牌,因为它是由clientyou生成的。您可以尝试使用我提到的链接生成有效的访问令牌,并使用test令牌中的ID令牌(测试令牌包含由空格分隔的访问令牌+id令牌),但我不确定它是否能工作,因为文档中的测试令牌仅用于开发环境。