【问题标题】:How can I use Basic Authentication with Spyne in Django?如何在 Django 中使用 Spyne 的基本身份验证?
【发布时间】:2013-03-13 22:46:37
【问题描述】:

如何在 Django 中使用 Spyne 的基本身份验证?我尝试了以下方法,但它不起作用。我可以很好地查看 WSDL 页面文件,但每当我实际尝试将 SayHello 作为 Web 服务调用时,都会收到 403 FORBIDDEN 响应。我相信 403 与 CSRF 相关,但 csrf_exempt 不应该让我解决这个问题吗?顺便说一句,logged_in_or_basicauth 来自这个 sn-p:http://djangosnippets.org/snippets/243/

class CapsWebService(ServiceBase):
    @rpc(String, Integer, _returns=Iterable(String))
    def SayHello(ctx, name, times):
        for i in xrange(times):
            yield 'Hello, %s' % name

caps_web_service = csrf_exempt(DjangoApplication(Application(
    [CapsWebService], 'solutions.sfcs', in_protocol=Soap11(), out_protocol=Soap11(), interface=Wsdl11(),
)))

@logged_in_or_basicauth()
def foo_view(request):
    logger.debug('views.foo_view()')
    return caps_web_service(request)

【问题讨论】:

    标签: django basic-authentication spyne


    【解决方案1】:

    你可以试试

    foo_view = csrf_exempt(foo_view)
    

    在foo_view的定义之下。那么你就不需要 crsf_exempt 了

    caps_web_service = DjangoApplication(Application(
        [CapsWebService], 'solutions.sfcs', in_protocol=Soap11(), out_protocol=Soap11(),         interface=Wsdl11(),
    ))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-15
      • 2017-11-02
      • 2015-11-12
      • 1970-01-01
      • 2015-08-12
      • 2015-02-06
      • 1970-01-01
      • 2011-05-08
      相关资源
      最近更新 更多