相关疑难解决方法(0)

如何为 spring 5 websocket 添加安全性

我遵循以下教程:使用 WebSocket 构建交互式 Web 应用程序

一切都按照描述进行,并且应用程序看起来很好。我只有一个很好的控制器:

@Controller
public class GreetingController {    

    @MessageMapping("/hello")
    @SendTo("/topic/greetings")
    public Greeting greeting(HelloMessage message) throws Exception {
        Thread.sleep(1000); // simulated delay
        return new Greeting("Hello, " + HtmlUtils.htmlEscape(message.getName()) + "!");
    }

}
Run Code Online (Sandbox Code Playgroud)

还有一点配置。

现在我想为这个简单的应用程序添加安全性。我花了时间找例子,但找不到。

一般来说,我找到了教程:

预览 Spring Security WebSocket 支持

但看起来这个例子只与 spring 4 相关,而不是 spring 5。而且我不明白我应该在哪里提供凭据等。描述不够详细,无法应用于我的示例。

我发现了另外一个教程: Websocket Authentication and Authorization in Spring Ask

它看起来更清晰,但我不确定它是目前最好的解决方案。

您能建议为我的应用程序配置 spring security 的最简单方法吗?

PS我还发现了不一样但熟悉的问题How to secure websocket application [Spring boot + STOMP],但目前没有答案。

locus2k的更新

现在我有以下配置:

@Configuration
@EnableWebSocketMessageBroker
public …
Run Code Online (Sandbox Code Playgroud)

java spring spring-security websocket spring-boot

7
推荐指数
1
解决办法
7833
查看次数

Cookie CsrfTokenRepository.withHttpOnlyFalse() 做什么以及何时使用它?

我现在正在尝试学习 Spring Security,并且我已经看到许多使用它的不同示例。我知道 CSRF 是什么,并且 Spring Security 默认启用它。我很想知道的是这种定制。

  .csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
  .and()
  .authorizeRequests(request -> {
                request
                    .antMatchers("/login").permitAll()
                    .anyRequest()
                    ....more code
Run Code Online (Sandbox Code Playgroud)

.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())条线做了什么样的定制,什么时候适合使用。如果有人能提供一个简单的解释,我将不胜感激。

java spring csrf spring-security spring-boot

7
推荐指数
1
解决办法
3820
查看次数

标签 统计

java ×2

spring ×2

spring-boot ×2

spring-security ×2

csrf ×1

websocket ×1