Ich habe einen twisted + flask https-Server eingerichtet, der auch eine zertifikatbasierte Clientauthentifizierung durchführt, indem Sie der Dokumentation auf der Twisted-Site here folgen. So weit, ist es gut.Zugriff auf das x509-Zertifikat des Clients über die twisted web WSGI-App
Zusätzlich zur Authentifizierung des Clients mit einem Zertifikat benötigt der Anwendungscode in der flask-App den Benutzernamen (der im Zertifikat des Clients x509 enthalten ist), um seine Aufgabe zu erfüllen. Ich konnte keine einfache Möglichkeit finden, auf diese Informationen zuzugreifen. Die Informationen (basierend auf der Dokumentation) scheinen sich zum Zeitpunkt der Authentifizierung im Objekt pyopenssl X509Name zu befinden, und ich benötige die Identität auf der Flaschebene jedes Mal, wenn ich eine Anfrage von diesem Client aus bearbeite.
Das Request Objekt Kolben bekommen bekam nicht diese Informationen zu haben (es sei denn, ich lese es falsch), also nehme ich an, dass ich einige Optionen auf der Twisted-Ebene ändern müssen, um sie an Kolben zu senden. Ich muss sie auch irgendwie aus der OpenSSL-Ebene herausholen.
Wie würden Sie das tun?
danke für die Hilfe. Ich bin besorgt, dass diese
data_received
Implementierung davon ausgeht, dass wir nicht eine einzelne Anfrage in mehreredata_received
Aufrufe aufteilen. Ist das eine gültige Annahme? – orm@orm Ja, du hast Recht, ich habe nicht darüber nachgedacht. Ein korrekterer Weg besteht darin, 'HTTPChannel.allHeadersReceived' zu überschreiben. Ich habe mein Codebeispiel aktualisiert. –