Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Selektivni HTTP Basic Auth sa Twistd-Klein serverom

  • 0 odgovora
  • 2.839 pregleda
Selektivni HTTP Basic Auth sa Twistd-Klein serverom 17.02.2017. u 15:44 · pre 118 meseci
izmenjeno 1 put, poslednji put reiser 17.02.2017. u 16:05
  1. reiser17.02.2017. u 16:05zapis iz teksta poruke
#1
Imam prosti Twistd-Klein server, sa ukljucenim globalnim HTTP basic authom:

Code:

from klein import Klein
import attr
from zope.interface import implementer
from twisted.cred.portal import IRealm
from twisted.internet.defer import succeed
from twisted.cred.portal import Portal
from twisted.cred.checkers import FilePasswordDB
from twisted.web.resource import IResource
from twisted.web.guard import HTTPAuthSessionWrapper, BasicCredentialFactory


app = Klein()


# health check
@app.route('/health', methods=['GET'])
def health_check(request):
    return ''


# dataset query API
@app.route('/query/<path:expression>', methods=['GET'])
def query(request, expression):
    response = evaluate_expression(expression)
    return response


@implementer(IRealm)
@attr.s
class HTTPAuthRealm(object):
    resource = attr.ib()

    def requestAvatar(self, avatarId, mind, *interfaces):
        return succeed((IResource, self.resource, lambda: None))


def resource():
    realm = HTTPAuthRealm(resource=app.resource())
    portal = Portal(realm, [FilePasswordDB('./configs/server-auth.db')])
    credential_factory = BasicCredentialFactory('Authentication required')
    return HTTPAuthSessionWrapper(portal, [credential_factory])


Jel neko zna kako da iskljucim auth za npr /heath API, a da za ostale auth ostane ukljucen?
Citam dokumente ali mi nikako ne ide u glavu:
https://twistedmatrix.com/documents/14.0.1/core/howto/cred.html
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme