如何在Spring Security 5.7中配置ChannelInterceptor并扩展AbstractSecurityWebSocketMessageBrokerConfigurer以进行访问控制?

How to configure ChannelInterceptor and extend AbstractSecurityWebSocketMessageBrokerConfigurer for access control in Spring Security 5.7?

提问人:Tf Mi 提问时间:9/7/2023 最后编辑:M. DeinumTf Mi 更新时间:9/7/2023 访问量:25

问:

我在我的应用程序中使用 Spring Security 5.7 和 WebSocket。我想了解如何正确配置和扩展以控制对 WebSocket 端点的访问。ChannelInterceptorAbstractSecurityWebSocketMessageBrokerConfigurer

在 Spring Security 5.7 中,授权 WebSocket 消息的推荐方法是什么?我应该创建自定义还是扩展?ChannelInterceptorAbstractSecurityWebSocketMessageBrokerConfigurer

这两个选项之间有什么区别,何时应该使用一个选项? 您能否向我指出 Spring Security 参考文档中涵盖此 WebSocket 授权配置的相关部分?一个例子也非常有助于说明关键步骤。

我继承并覆盖了允许访问“/api/*”路径。AbstractSecurityWebSocketMessageBrokerConfigurerconfigureInbound()

  • 我添加了一个 WebSocket 端点“/api/chat/websocket”来处理收到的消息。
  • 这实现了基本的访问控制和消息处理。 我尝试使用 Postman 连接到 WebSocket 端点“/api/chat/websocket”,但仍然收到 403 Forbidden 错误。
  • 使用 Postman 中的原始请求方法“ws://localhost:8081/api/chat/websocket”请求 URL。
  • 尽管配置了对 “/api/*” 路径的访问,但 WebSocket 连接仍然被 Spring Security 阻止。AbstractSecurityWebSocketMessageBrokerConfigurer

允许“/api/*”的先前配置似乎不适用于 WebSocket 端点。需要进一步调查为什么在AbstractSecurityWebSocketMessageBrokerConfigurer

Java Spring Security WebSocket

评论


答: 暂无答案