2014-09-16 4 views
3

WSO2 API 관리자를 사용 중이고 WSO2 ESB에서 생성 된 API를 추가했으며 TryIt 기능을 사용하려고 할 때 콘솔에서 다음 오류가 발생합니다 로그.WSO2 API 관리자 TryIt 기능 null 키

[2014년 9월 16일 13 : 59 : 26614] ERROR - APIAuthenticationHandler API 인증 실패 org.wso2.carbon.apimgt.gateway.handlers.security.APISecurityException : API에 대한 액세스 실패/하위 버전 : 키가있는 v1.0.0 : null at org.wso2.carbon.apimgt.gateway.handlers.security.oauth.OAuthAuthenticator.authenticate (OAuthAuthenticator.java:157) at org.wso2.carbon.apimgt.gateway.handlers. security.APIAuthenticationHandler.handleRequest (APIAuthenticationHandler.java:92) at org.apache.synapse.rest.API.process (API.java:285) at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI (RESTRequestHandler.java : 83) at org.apache.synapse .rest.RESTRequestHandler.process (RESTRequestHandler.java:64) at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage (Axis2SynapseEnvironment.java:220) at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive (SynapseMessageReceiver.java:83) org.apache.axis2.engine.AxisEngine.receive (AxisEngine.java:180)에서 org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler (ServerWorker.java:344)에서 (ServerWorker.java:168) at org.apache.synapse.transport.passthru.ServerWorker.run (NativeWorkerPool.java:172) at java. util.concurrent.ThreadPoolExecutor.runWorker (알 수없는 소스) at java.util.concurrent.ThreadPoolExecutor $ Worker. java.lang.Thread.run에서 실행 (알 수없는 소스) (알 수없는 소스)

내가 GET 요청을 보내려고하고있어이 매개 변수가이 API에 대한 없습니다 및 권한 부여 필드에 내가

를 입력
Bearer XXXACCESS+TOKEN+GOES+HEREXXXX 

고급 REST 클라이언트 또는 저장소의 REST 클라이언트에서이를 테스트 할 때 작동합니다. 내 포트 오프셋에 맞게 다양한 파일 (권한 부여, 로그인, 토큰, 취소)에서 포트 번호를 변경했으며 api-manager.xml에 API 저장소 주소도 구성했습니다.

+0

TryIt 페이지에서 'Raw'또는 'Form'으로 헤더를 추가 했습니까? – Colinr

+0

사용중인 버전은 무엇입니까? – Dakshika

+0

Dakshika 버전 1.7.0을 사용하고 있습니다. Colinr의 양식이 – user3758298

답변

1

API에 특정 리소스를 추가 할 때 "OPTIONS"동사도 선택하십시오. 그렇지 않으면이 오류가 발생합니다.

enter image description here

또한, 당신의/etc/hosts 직접이 '127.0.0.1'대신에 컴퓨터의 IP 주소에 '로컬 호스트'엔트리 있는지 확인합니다.이 경우, 적절하게 추가하여 자신감에 관련된 섹션을 수정,

{API-M installation DIR}/repository/conf/api-manager.xml 

를 열고하시기 바랍니다 IP 주소 (또는 호스트 이름)이에서

,

<!--Configuration to enable/disable sending CORS headers from the Gateway--> 
    <Enabled>true</Enabled> 

    <!--The value of the Access-Control-Allow-Origin header. Default values are 
     API Store addresses, which is needed for swagger to function.--> 
    <Access-Control-Allow-Origin>https://localhost:9443,http://localhost:9763</Access-Control-Allow-Origin> 

    <!--Configure Access-Control-Allow-Headers--> 
    <Access-Control-Allow-Headers>authorization,Access-Control-Allow-Origin,Content-Type</Access-Control-Allow-Headers> 

</CORSConfiguration> 
이 주소로

(직접 서버 IP 추가),

<!--Configuration to enable/disable sending CORS headers from the Gateway--> 
    <Enabled>true</Enabled> 

    <!--The value of the Access-Control-Allow-Origin header. Default values are 
     API Store addresses, which is needed for swagger to function.--> 
    <Access-Control-Allow-Origin>https://192.168.56.101:9443,http://192.168.56.101:9763</Access-Control-Allow-Origin> 

    <!--Configure Access-Control-Allow-Headers--> 
    <Access-Control-Allow-Headers>authorization,Access-Control-Allow-Origin,Content-Type</Access-Control-Allow-Headers> 

</CORSConfiguration> 

위의 대답은 API 관리자에 포트 오프셋을 추가하지 않은 것으로 가정합니다. 그렇게했다면 위의 구성에 따라 포트 값을 변경해야합니다 (기존 포트 값에 해당 값을 간단하게 추가해야 함).

감사합니다.

-Chathura

+0

위의 모든 것을 시도했지만 여전히 작동하지 않습니다. – user3758298