Ich habe einen Web-Service-Server mit der Sun Ws-Implementierung geschrieben und einen HTTPS-Server für die Veröffentlichung verwendet (gegenseitige TLS-Authentifizierung).
%Vor%Alles funktioniert gut. Wenn die Implementierung der Serverseite des Web Service von einem Client ausgeführt wird, würde ich gerne wissen, welcher Client den Code ausführt (um Rechte zu verwalten). Wenn ich weiß, dass jeder Client ein eigenes Zertifikat erhält, wie kann ich das Client-Zertifikat für die TLS-Verhandlung vor dem Web Service-Aufruf abrufen? (Ich würde es vorziehen, eine Lösung zu finden, die auf der Analyse des Client-Zertifikats basiert, anstatt jedem Web-Service-Aufruf eine Identifikationsinformation hinzuzufügen.)
Danke für Ihre Hilfe.
In Ihrem Handler erhalten Sie nicht die HttpExchange
-Instanz, sondern die Instanz ihrer Unterklasse HttpsExchange
mit der zusätzlichen Methode:
Zusammenfassung SSLSession getSSLSession ();
Neben vielen anderen Dingen macht eine SSLSession die Peer-Identität sichtbar.
getUserPrincipal()
gibt Ihnen das Zertifikat in httpservletrequest
.
Tags und Links java authentication web-services certificate httpserver