gpt4 book ai didi

spring - Spring 中用于 websockets 测试的 MockHttpServletRequestBuilder 相当于什么

转载 作者:行者123 更新时间:2023-12-02 07:24:37 24 4
gpt4 key购买 nike

WebSockets 的 MockHttpServletRequestBuilder 的等效项是什么。即,在我想要测试 Websockets 的情况下,我想测试长时间运行的 websocket 应用程序,并避免在第一个应该进行升级的 http get 调用之后 SecurityContextPersistenceFilter 覆盖 SecurityContex 的情况。对于普通的 REST http 应用程序,到目前为止,这是通过利用 SecurityMockMvcRequestPostProcessors 来完成的。这里的例子using the SecurityMockMvcRequestPostProcessors

但是当我想测试长时间运行的 websocket 应用程序时该怎么办?即我想为 websockets 创建类似 MockHttpServletRequestBuilder 的东西。 Spring 已经有这样的事情了吗?或者有没有办法使用 MockHttpServletRequestBuilder 来实现此目的? IE。目标是创建websocket端点并避免升级后SecurityContex被清除的情况。

我找到了一些替代方案,例如按照描述传递 session here但这对我来说并不是一个真正的替代方案,因为由于 SecurityContex 正在被更改,因此使用方法级安全性的代码不起作用。

最佳答案

看来这可以通过提供测试 socks 配置来完成。例如

    @EnableWebSocketMessageBroker
static class TestWebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {

@Autowired
Environment env;

@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/portfolio").withSockJS();
}

@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
// registry.enableSimpleBroker("/queue/", "/topic/");
registry.enableStompBrokerRelay("/queue/", "/topic/");
registry.setApplicationDestinationPrefixes("/app");
}
}

完整的类(class)可以在这里找到: https://github.com/rstoyanchev/spring-websocket-portfolio/blob/master/src/test/java/org/springframework/samples/portfolio/web/context/ContextPortfolioControllerTests.java

这里还有 Spring 提供的一些其他示例,演示了测试 Web 套接字的 3 种不同方法: https://github.com/rstoyanchev/spring-websocket-portfolio/tree/master/src/test/java/org/springframework/samples/portfolio/web

关于spring - Spring 中用于 websockets 测试的 MockHttpServletRequestBuilder 相当于什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44654588/

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