Ich brauche die HttpServletRequest
Eigenschaften für den Zugriff auf die javax.servlet.request.X509Certificate zu erhalten, die die X509Certificate
Array von Zertifikaten für TLS-Anforderungen enthält.Zugriff HttpServletRequest Eigenschaften innerhalb einer WebSocket @ServerEndpoint
Von einer JAX-RS ContainerRequestFilter
ich dies aus dem ContainerRequestContext.getProperty(String property)
Verfahren leicht extrahieren kann, aber ich kann es aus der WebSocket nicht einen Weg finden, um Session
noch die HandshakeRequest
, von dem mir die HttpSession
Instanz zugreifen kann, nicht aber die HttpServletRequest
eins.
Hinweis: Dies ist kein Duplikat von Accessing HttpSession from HttpServletRequest in a Web Socket @ServerEndpoint da ich accesso zum HttpServletRequest
muß (oder gleichwertig die TLS-Zertifikate zu extrahieren), nicht HttpSession
.
Da WebSocket eine Obermenge von HTTP ist, denke ich, es sollte möglich sein und hoffen, dass das Java-Team über einen Weg zum Zugriff auf die Servlet-Eigenschaften gedacht hatte, aber ich konnte wirklich keinen finden. Weiß jemand, ob das überhaupt möglich ist?
Sie @BalusC danken, könnte dies funktionieren. Ich würde lieber nicht 'HttpSession' verwenden, wenn möglich. Ich frage mich, ob WebSocket tatsächlich 'HttpServeltRequest' verwendet und es einfach nicht in seiner API verfügbar macht oder überhaupt nicht verwendet ... –
Es ist implementierungsspezifisch. Das ist genau warum "ohne Hacking" :) – BalusC
Sie haben Recht! Ich bin auf WildFly/Undertow übrigens. Wenn der WebSocket JSR "javax.servlet.http.HttpSession" in der "HandshakeRequest" API offen legt, sehe ich wirklich nicht, warum es 'javax.servlet.http.HttpServletRequest' nicht freigibt ... –