问题标签 [spring-rsocket]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
88 浏览

spring - Spring RSocket over WebSocket - 从 HTTP 会话访问用户信息

在我的 Web 应用程序中,用户使用用户名/密码组合登录并获取会话 cookie。在发起 WebSocket 连接时,我可以很方便地访问 中的用户信息WebSocketHandler,例如:

两者都重用了来自 WebSocket 握手的 HTTP 会话,我不必通过 WebSocket 本身发送额外的身份验证。STOMP 同样适用:我可以重用 HTTP 会话的信息。

如何使用 RSocket 实现相同的目标?例如,我如何在这样的 MessageMapping 方法中获取有关用户的信息?:

我找到了许多如何使用 RSocket 设置身份验证的资源,但是它们都依赖于在 WebSocket 连接建立后的附加身份验证,但我特别想重用 Web 会话并且不想通过 WebSocket 发送额外的令牌。

0 投票
2 回答
19 浏览

spring - 如何在 RSocketSecurity(Spring) 中公开路径

我有 RSocketSecurity 的配置类 类似的东西

并对其进行授权(仅允许经过身份验证的用户订阅)

我想设置一些可以公开访问的路由,但其中大多数应该是经过授权的。实现这一目标的最佳方法是什么?

0 投票
0 回答
14 浏览

unit-testing - 在不使用真正的 RSocket 的情况下注入 ReactiveSecurityContext(RSocket 应用程序)

如何测试我的反应式应用程序逻辑,注入 ReactiveSecurityContext,而不通过在真实应用程序中设置身份验证的 rsocket 基础设施?

对于我正在进行的测试,我想避免创建 rsocket 客户端的额外复杂性,跳过 Web 服务器和控制器并直接调用服务并在返回的通量上使用 StepVerifier。但是,我不知道如何将 ReactiveSecurityContext 注入 ReactiveSecurityContextHolder。在实际应用中,我们使用 oauth2、JwtReactiveAuthenticationManager 和 @EnableRSocketSecurity,并像这样检索用户名:

然后像这样使用它:

我已经看到了很多常规 MVC,从 @WithMockUser 开始,但对于 ReactiveSecurityContextHolder 很少。我试图做一些蛮力的模拟,但被持有者的静态性质和反应上下文的额外复杂性挫败了。任何帮助将非常感激!

0 投票
0 回答
15 浏览

spring-security - 为什么经过身份验证的 RSocket 连接因 io.netty.util.IllegalReferenceCountException: refCnt: 0 in SpringBoot 3.0.0-M1 而失败

试图获得 SpringBoot 3.0.0-M1 安全集成和 RSocket 的工作示例我遇到了内部 Netty 问题:refCnt:0。

当 Spring 匹配UserDetails“f&f”@MessageMapping 时,框架似乎正确发送初始帧并失败。删除此参数使程序完整而没有此问题。

此配置提供了必要的 bean。

测试用例如下所示:

真正的问题是什么?

0 投票
0 回答
43 浏览

spring-boot - Spring Boot - RSocket over websocket - 服务器响应程序不起作用

我正在使用 Spring Boot 2.6.3。这是一个 Spring webflux 项目,使用 RSocket over Websooket 进行通知。

服务器端:-

构建.gradle,

控制器,

客户端:-

在这里,来自客户,

  1. 客户端能够连接到服务器
  2. “连接映射”方法在服务器端的新连接上被调用,它将状态消息发送到客户端,我能够在客户端看到该消息。
  3. 服务器端的“回调通知”方法能够向客户端发送通知,我能够在客户端看到消息。

但是,在客户端调用 send-notification 并不是在服务器端执行 sendNotification 方法。

this.rSocketRequester.route("send-notification").data("TEST Server Notification").send().subscribe();

在这里,客户端响应者正在工作。但是,服务器响应程序不工作。服务器响应程序是否需要任何特殊配置。

0 投票
0 回答
4 浏览

reactive-programming - 用 Rsocket 替换 WebSocket

我是 RSockets 概念的新手,我希望在浏览器中构建替换用 WebSocket 构建的网络聊天(使用 vanilla JS)并用 Rockets 替换它有什么可以帮助我学习和构建更好、更高效的东西吗?最后我会使用弹簧靴助焊剂吗?