如何在 HandshakeInterceptor 中设置委托人
How to set a Principal within a HandshakeInterceptor
我正在使用 Spring 的 WebSockets 的一个非常简单的实现。 WebSocketSession 有方法 getPrincipal(),但我如何从 HandshakeInterceptor 中设置它?
我想放入 Principal 的方法是:
public boolean beforeHandshake(final ServerHttpRequest request, final ServerHttpResponse response, final WebSocketHandler wsHandler,
final Map<String, Object> attributes) throws Exception {
Principal = getPrincipal();
// Now where to set the principal so it is available in WebSocketSession?
}
registry.addEndpoint("/hello")
.setHandshakeHandler(new DefaultHandshakeHandler() {
@Override
protected Principal determineUser(ServerHttpRequest request, WebSocketHandler wsHandler, Map<String, Object> attributes) {
//Here you can set and return principal that is used by websocket session.
}
我正在使用 Spring 的 WebSockets 的一个非常简单的实现。 WebSocketSession 有方法 getPrincipal(),但我如何从 HandshakeInterceptor 中设置它?
我想放入 Principal 的方法是:
public boolean beforeHandshake(final ServerHttpRequest request, final ServerHttpResponse response, final WebSocketHandler wsHandler,
final Map<String, Object> attributes) throws Exception {
Principal = getPrincipal();
// Now where to set the principal so it is available in WebSocketSession?
}
registry.addEndpoint("/hello")
.setHandshakeHandler(new DefaultHandshakeHandler() {
@Override
protected Principal determineUser(ServerHttpRequest request, WebSocketHandler wsHandler, Map<String, Object> attributes) {
//Here you can set and return principal that is used by websocket session.
}