2014-02-05 1 views
2

Мы установили диспетчер WSO2 Api без автономного сервера идентификации (идентификатор встроен ). Когда я пытаюсь проверить oauth2 пользователя access_token с OAuth2TokenValidationService с завитка командой:WSO2 API-менеджер oAuth2 secret_token проблемы с проверкой валидации

curl --user apivalidatekey:apivalidatekey --header "Content-Type: text/xml" -k -d @soap.xml https://localhost:8243/services/OAuth2TokenValidationService/ 

где soap.xml является:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://org.apache.axis2/xsd" 
xmlns:xsd1="http://dto.oauth2.identity.carbon.wso2.org/xsd"> 
<soapenv:Header/> 
    <soapenv:Body> 
    <xsd:validate> 
    <!--Optional:--> 
    <xsd:validationReqDTO> 
     <!--Optional:--> 
     <xsd1:accessToken>691e72a68e2f0e0c07a4236c14c485</xsd1:accessToken> 
     <!--Optional:--> 
     <xsd1:tokenType>bearer</xsd1:tokenType> 
    </xsd:validationReqDTO> 
    </xsd:validate> 
</soapenv:Body> 
</soapenv:Envelope> 

I`v получил ошибку на API хоста в wso2carbon.log:

TID: [0] [AM] [2014-02-05 14:19:03,945] ERROR {java.lang.Class} - System failure.null {java.lang.Class} 
java.lang.NullPointerException 
at org.wso2.carbon.server.admin.module.handler.AuthorizationHandler.doAuthorization(AuthorizationHandler.java:105) 
at org.wso2.carbon.server.admin.module.handler.AuthorizationHandler.invoke(AuthorizationHandler.java:88) 
at org.apache.axis2.engine.Phase.invokeHandler(Phase.java:340) 
at org.apache.axis2.engine.Phase.invoke(Phase.java:313) 
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:261) 
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:167) 
at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:404) 
at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:184) 
at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) 
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) 

Что проблема, это встроенный IS поддерживает такие веб-службы, так как я могу получить WSDL для него:

wget --no-check-certificate https://localhost:9443/services/OAuth2TokenValidationService?wsdl 

ответ

2

«OAuth2TokenValidationService» - это служба администратора, которая защищена. Поэтому для вызова этой службы необходимо отправить учетные данные привилегированных пользователей в заголовок Basic authentication. Но, похоже, вы отправляете ключ api и секрет, который недействителен. Не могли бы вы попытаться отправить учетные данные пользователей admin по умолчанию (который является «admin» «admin») в базовом заголовке auth и посмотреть.

curl --user admin:admin --header "Content-Type: text/xml" --header "SOAPAction: validate" -k -d @soap.xml https://localhost:9443/services/OAuth2TokenValidationService/

+0

Та же ошибка: 'завитка --user администратора: admin' Мы создали новый пользователь в качестве эксперимента, при использовании администратора: администратор не может. Итак, вы говорите, что мне нужно также отправить ключ api? Где я могу настроить ключ api для службы администратора? –

+0

Нет, вам не нужно отправлять ключи API для проверки токена доступа. Вам нужно использовать ключи API для предоставления токена доступа. Чтобы проверить, вам нужно только передать токен доступа. Но «OAuth2TokenValidationService» - это защищенная служба. Поэтому вам необходимо пройти аутентификацию для доступа к этой службе (обычно вы можете использовать учетные данные, которые вы используете для входа в консоль управления) – Asela

+0

Также .. в вашем запросе на завивание ... Порт сервера недействителен (не 9763). Это должно быть «9443» – Asela

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