アクセス トークンでのみアクセスできるように、SOAP メソッドの一部を制限する必要があります。
私の SOAP サービスは Spyne で実行されており、私の OAuth2 プロバイダーは django-oauth2-toolkit から取得されています。
from django.contrib.auth.decorators import login_required
from spyne.service import ServiceBase
from spyne.decorator import srpc, rpc
from oauth2_provider.views.generic import ProtectedResourceView
class SOAPService(ProtectedResourceView, ServiceBase):
@rpc(Unicode, _returns=Unicode)
@login_required()
def HelloWorld(ctx, data):
return "hello"
この関数に SOAP リクエストを送信しようとすると、Spyne のログに次のようなエラー 500 が記録されました。
File "/Library/Python/2.7/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
if HelloWorld_func(request.user):
AttributeError: 'WsgiMethodContext' オブジェクトに属性 'user' がありません
私は SOAP と OAuth2 の両方に不慣れで、行き詰まっています。Spyne サービスで OAuth2 プロバイダーに SOAP アクセス トークンをチェックさせる方法についての手がかりやベスト プラクティスはありますか?