2013-02-05 2 views
4

Google 애플리케이션 엔진 애플리케이션을 개발 중이며 SOAP를 사용하여 웹 서비스에 연결해야합니다. 나는 pysimplesoap (코드가 패치 된 here으로 패치 됨)을 사용하여 xml을 구문 분석하고 클라이언트 측 인증서로 요청을 시작합니다. 로컬 환경의 간단한 단위 테스트에서이 작업을 수행하면 작동하고 웹 서비스에서 적절한 응답을받습니다. I 앱 엔진 내에서 동일한 코드를 실행하면 그러나,이 얻을 : 나는 약간의 독서를했고, 클라이언트 측 인증서가 URL을 가져올 서비스에서 아직 지원되지 않은 것을 발견App Engine에서 클라이언트 측 인증서를 지원합니까?

File "/Users/me/Documents/workspace/blixem/model/communicate/communication_channel.py", line 60, in generate_soap_message_pysimplesoap 
    response = client.SendDocument('LA.XML', 'TESTCASE', 'data') 
    File "/Users/me/Documents/workspace/blixem/lib/pysimplesoap/client.py", line 152, in <lambda> 
    return lambda *args, **kwargs: self.wsdl_call(attr,*args,**kwargs) 
    File "/Users/me/Documents/workspace/blixem/lib/pysimplesoap/client.py", line 320, in wsdl_call 
    response = self.call(method, *params) 
    File "/Users/me/Documents/workspace/blixem/lib/pysimplesoap/client.py", line 215, in call 
    self.xml_response = self.send(method, self.xml_request) 
    File "/Users/me/Documents/workspace/blixem/lib/pysimplesoap/client.py", line 241, in send 
    location,"POST", body=xml, headers=headers) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/httplib2/httplib2/__init__.py", line 1457, in request 
    self.disable_ssl_certificate_validation) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/httplib2/httplib2/__init__.py", line 1143, in __init__ 
    strict, timeout, proxy_info, ca_certs, disable_ssl_certificate_validation) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/httplib2/httplib2/__init__.py", line 1092, in __init__ 
    raise NotSupportedOnThisPlatform() 
NotSupportedOnThisPlatform 

. 아직도 그렇습니까? 그렇다면 해결 방법이 있습니까?

+0

고맙습니다. Ingo, Outbound Sockets Support 기능에 대해 알아 보겠습니다. 너무 나쁜 클라이언트 인증서는 지원되지 않습니다. – user1734726

+0

Ingo, 나는 당신의 의견을 표명하고 싶습니다만, 임은 stackoverflow에 대한 질문을하는 것에 상당히 새로운 것이므로, 당신의 의견에 대해 이렇게 투표 할 수있는 방법을 말해주십시오. (주석 대신 답변을 투표해서는 안됩니다. ?) – user1734726

+0

당신 말이 맞아요. 내가 코멘트를 제거하고 답변으로 추가 :) – Ingo

답변

1

클라이언트 측 인증서는 현재 GAE에서 지원하지 않습니다. HTTPS를 통해 URLFetch 서비스를 사용할 수 있습니다. 하지만 클라이언트 인증서는 사용할 수 없습니다. 현재 trusted tester program에있는 Outbound Sockets Support feature을 시도해야합니다. 찾고있는 기능을 허용 목록에 추가 할 수 있습니다. 나는 a similar question for GAE/J before에게 물었다.

이미 필요한 경우 아웃 바운드 소켓 기능을 사용하거나 EC2에 프록시를 실행하십시오.