有没有办法拦截 websocket 连接请求

时间:2021-03-05 16:36:06

标签: java spring websocket spring-security-oauth2 stomp

我正在创建一个应用程序,该应用程序连接到我实际上没有太多控制权的服务。该服务有一个我想连接的 websocket,但它被锁定在 OAuth2 后面。我试图解决这个问题的方法是手动查找令牌并将其放在连接请求的 Authorization 标头上。我不想在调用 StompClient 的 connect 方法时创建标头,而是在发出请求时修改请求,使其成为可注入的函数(或者 Spring 可以“自动检测”的东西)。我正在寻找的是相当于 Http 的 ClientHttpRequestInterceptor,但用于连接到 websocket。那存在吗?我需要在客户端而不是服务器端修改请求。考虑到我可以向其中添加 ws_authorization=<token> 参数,并且它可以工作,因此修改 url 而不是标题也是有效的。

另请注意,这是用 Java 编写的,而不是 JavaScript。

这是我们当前使用的 Stomp 客户端:

WebSocketClient client = new StandardWebSocketClient();
WebSocketStompClient = new WebSocketStompClient(client);

我看到有一个 ClientEndpointConfig.Configurator 类可以扩展,但它不能在 StandardWebSocketClient 中注入,而是执行 new StandardWebSocketClientConfigurator(headers)。不过,我很有可能想用那门课做点什么?

0 个答案:

没有答案