0

我需要限制我的一些 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”对象没有属性“用户”

我是 SOAP 和 OAuth2 的新手,我一直坚持下去。您对如何让 OAuth2 提供者检查 Spyne 服务上的 SOAP 访问令牌有任何线索或最佳实践吗?

4

0 回答 0