Wie bekomme ich Client-Zertifikat in einer Java HttpsServer-Implementierung für einen Webservice?

9

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.

    
user1640562 01.09.2012, 13:57
quelle

2 Antworten

3

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.

    
Serge 22.09.2012 02:20
quelle
-2

getUserPrincipal() gibt Ihnen das Zertifikat in httpservletrequest .

    
user1548353 23.02.2015 08:47
quelle