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

 淇蒴_192 发布于 2023-01-31 18:40

我正在试验Spring 4 WebSocket STOMP应用程序.有没有办法在每个用户都有唯一会话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;
    }
}

Rossen Stoya.. 8

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

一,您可以配置DefaultHandshakeHandler该覆盖的子类,determineUser并为每个WebSocketSession分配某种身份.这需要4.0.1顺便提供(目前正在构建快照),将于2014年1月23日星期一发布.

第二,WebSocket会话将HttpServletRequest.getUserPrincipal依赖于握手HTTP请求返回的值.你可以有一个servlet Filter包装HttpServletRequest并决定从该方法返回什么.或者,如果您正在使用具有AnonymousAuthenticationFilter的Spring Security,请覆盖其createAuthentication方法.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有