gpt4 book ai didi

spring - 如何在 Spring 4 STOMP over WebSocket 配置中回复未经身份验证的用户?

转载 作者:行者123 更新时间:2023-12-01 23:51:00 26 4
gpt4 key购买 nike

我正在尝试 Spring 4 WebSocket STOMP 应用程序。有没有办法在每个用户都有唯一的 session ID 的情况下回复单个未经身份验证的用户?现在我只能广播消息或直接将其发送给经过身份验证的用户。

@Controller
public class ProductController {

@MessageMapping("/products/{id}")
@SendTo("/topic") // This line makes return value to be broadcasted to every connected user.
public String getProduct(@DestinationVariable int id) {
return "Product " + id;
}
}

最佳答案

您可以为传入用户分配匿名身份。有两种方法可以做到这一点。

一,可以配置DefaultHandshakeHandler的子类覆盖 determineUser并为每个 WebSocketSession 分配某种身份。顺便说一句,这需要 4.0.1(当前构建快照可用),该版本将于 2014 年 1 月 23 日星期一发布。

二,WebSocket session 将依赖从 HttpServletRequest.getUserPrincipal 返回的值在握手 HTTP 请求上。您可以让 Servlet Filter 包装 HttpServletRequest 并决定从该方法返回什么。或者,如果您使用具有 AnonymousAuthenticationFilter 的 Spring Security,请覆盖其 createAuthentication方法。

关于spring - 如何在 Spring 4 STOMP over WebSocket 配置中回复未经身份验证的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21312222/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com