0

Я создал адаптер MobileFirst с включенной безопасностью. Я сгенерировал токен, и когда я пытаюсь вызвать API, я получаю 403 Forbidden ошибку. То же самое хорошо работает на локальном хосте, но дает эту ошибку при развертывании на сервере. Я добавил скриншот из REST Client ниже.403 запрещенная ошибка mobilefirst platform

Я использую MFP 7.0.0 версии

403 Error from REST Client

файла журнала:

[11/2/15 5: 24: 57: 786] CST 000049b7 com.ibm.ws .webcontainer.util.ApplicationErrorUtils E SRVE0777E: Исключение, вызванное классом приложения 'org.apache.wink.server.internal.RequestProcessor.handleRequest: 195' javax.servlet.ServletException: java.lang.NoClassDefFoundError: com.sun.org. apache.xerces.internal.impl.xpath.regex.ParseException at org.apache.wink.server.internal.Req uestProcessor.handleRequest (RequestProcessor.java:195) на org.apache.wink.server.internal.servlet.RestServlet.service (RestServlet.java:119) в javax.servlet.http.HttpServlet.service (HttpServlet.java: 668) at com.worklight.adapters.rest.JAXRSSandbox $ 2.doFilter (JAXRSSandbox.java:377) at com.worklight.adapters.rest.FilterChainImpl.doFilter (FilterChainImpl.java:84) at com.worklight.adapters .rest.JAXRSSandbox.handleRequest (JAXRSSandbox.java:382) на com.worklight.adapters.rest.RESTAdaptersServiceServlet.doService (RESTAdaptersServiceServlet.java:69) в com.worklight.adapters.rest.RESTAdaptersServlet.service (RESTAdaptersServlet.java : 64) по адресу javax.servlet.http.HttpServlet.service (HttpServlet.java:668) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service (ServletWrapper.java:1285) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest (ServletWrapper.java:776) at com.ibm.ws. webcontainer.servlet.ServletWrapper.handleRequest (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) at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest (CacheServletWrapper.java:81) at com .ibm.ws.webcontainer.WebContainer.handleRequest (WebContainer.java:912) at com.ibm.ws.webcontainer.osgi.DynamicVirtualHost $ 2.run (DynamicVirtualHost.java:262) at 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) at java.lang.Thread.run (Thread.java:863) Вызвано: java.lang.NoClassDefFoundError: com.sun.org.apache.xerces.internal.impl.xpath.regex. ParseException в java.lang.Class.forNameImpl (собственный метод) по адресу java.lang.Class.forName (класс.java:253)

+0

У вас есть код для нас? –

+0

Вы определили сферы сферы применения в application-descriptor.xml? –

+0

@Idan Да, я определил области сферы действия в authenticationConfig.xml. Я использую MFP 7.0.0. –

ответ

0

Я интенсивно исследовал этот вопрос, так как нам нужно было назвать новый java-адаптер (реализация JAX-RS), который защищен с помощью @OuathSecurity через клиентов REST.

Но мне нужно будет задать вам несколько вопросов, чтобы дать вам лучший ответ:

Или вы используете тестовый маркер конечной точки?

+0

Да, я хочу вызвать java-адаптер через клиент для отдыха. API защищен «@OAuthSecurity (scope =« default »)», и я определил Realm «default» в файле authenticationConfig.xml по серверу/conf в проекте MFP (в eclipse). Я сгенерировал тестовый токен, используя аутентификацию/v1/testtoken url из localhost. Я использую версию MFP 7.0.0. Я получаю ответ API после добавления маркера в заголовке и запуска в клиенте REST при подключении к localhost. Но то же самое не работает после развертывания на выделенном сервере. –

+0

Короткий ответ, что, к сожалению, это не сработает, адаптеры (с включенной безопасностью) построены для приема токена, состоящего из двух частей: 1) Access Token 2) ID токен (цифровая подпись информации об устройстве, например модели, платформы, идентификатора устройства), который вы не сможете получить, поскольку вы будете звонить из не-мобильного контекста. –

+0

. Аналитическая служба использует эту информацию для регистрации вызовов адаптера с этой информацией об устройстве (извлеченной из токена ID). Также тестовый токен существует только в среда разработки, это токен ID содержит информацию о фиктивном устройстве –

Смежные вопросы