当前位置: 首页 > 知识库问答 >
问题:

Webflux中的Spring Security

祝嘉懿
2023-03-14

我一直在尝试使用我自己的自定义身份验证方法在Web流量中启用Spring Security性。到目前为止还不错,但我无法使用permitall允许某些URL模式

我尝试过创建不同的SecurityWebFilterChain bean,也尝试过使用不同的配置,但似乎没有任何效果。

这是我的SecurityWebFilterChain

@Bean
  public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) {
    return http.csrf()
        .disable()
        .httpBasic()
        .disable()
        .formLogin()
        .disable()
        .logout()
        .disable()
        .authenticationManager(this.authenticationManager())
        .securityContextRepository(this.securityContextRepository())
        .authorizeExchange()
        .pathMatchers("**/signal/health").permitAll()
        .pathMatchers("**/order").permitAll()
        .and()
        .authorizeExchange()
        .anyExchange()
        .authenticated()
        .and()
        .build();
  }

我有一个内部运行状况检查系统,只要我的应用程序启动,它就会运行,所以我希望允许这样做。

此外,我还希望允许另一对或URI,但上面的配置不适用于我。

一切都是为了身份验证。

我到底做错了什么?

共有1个答案

毋炳
2023-03-14

我看到一个错误的<code>和</code>和<code>授权Exchange</code>位于两者之间。尝试使用以下方法:

@Bean
  public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) {
    return http.csrf().disable()
        .httpBasic().disable()
        .formLogin().disable()
        .logout().disable()
        .authenticationManager(this.authenticationManager())
        .securityContextRepository(this.securityContextRepository())
        .authorizeExchange()
        .pathMatchers("**/signal/health","**/order").permitAll()
        .anyExchange()
        .authenticated()
        .and().build();
  }
 类似资料:
  • 我对spring Webflux和整个反应性的想法很陌生。我有一些关于spring Webflux如何基于其反应发布器(Flux/Mono)处理请求的问题。以一个简单的控制器为例: 我理解limitRate()充当下游请求的限制器。我的问题是,这种背压机制仅仅是根据我的参数(planetFlux)的单个请求而起作用的。WebFlux(或reactive programming)是否解决了请求负载过

  • 只有在成功结束时,我才希望保存。但是我不能使用map/flatmap,因为空单声道显然不会发出值。只接受具有相同类型()的。

  • 我不熟悉反应式/网络流量,正在尝试理解网络流量中的背压。我有以下控制器。我们的应用程序接收一个JSON搜索请求,并用流量流进行响应。 背压是应用于流的一个实例还是整个实例?i、 e.如果我有一个流,其中请求通过webflux控制器传入,那么在以前的请求中会减慢速度吗?会对将来的请求施加反向压力吗?或者只会因为基于当前活动请求的放缓而导致活动通量流的放缓而施加背压吗?

  • 我使用创建了一个项目,因为我想使用所有异步和非阻塞功能。我添加了,但如果我不添加Web启动器,它就不起作用。 如果我添加了两个启动器,非阻塞功能会有问题吗?我用加特林进行了一些压力测试,无论是移除还是添加web starter,我都得到了相同的分数。 有什么帮助吗?

  • 我遇到的问题是filter方法永远不会执行,并且上下文也没有设置。我已经确认Webfilter是在启动时加载的。还有什么需要让过滤器工作吗?

  • 我正在玩spring WebFlux。我已经创建了一个项目,该项目将监听mongo封顶的集合,并在数据到达时返回数据流量。 我正在我的repository方法中使用。 我的控制器看起来像这样 一切正常。我通过添加一个对此进行了测试,每当有一个新项目添加到我的capped集合中时,doOnNext中的consumer就会被执行。 现在我想让这个显示在浏览器上。我想用ReactJs(我对前端是全新的)