gpt4 book ai didi

spring-security - 启用安全性后,Spring Cloud Gateway 为所有发布请求返回 403

转载 作者:行者123 更新时间:2023-12-05 08:04:54 27 4
gpt4 key购买 nike

我有以下服务:

Eureka 服务器

认证服务器

  • Spring 网关
  • 这会将登录请求传递给登录服务
  • 所有其他请求将被验证(使用 jwt token 和 key )并传递给其他服务

登录服务

  • 验证登录并颁发 jwt token

下面是我的配置。流程甚至没有到达此代码..

@Configuration
@EnableWebFluxSecurity
@EnableReactiveMethodSecurity
public class SecurityConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(SecurityConfig.class);

@Autowired
private AuthenticationManager authenticationManager;

@Autowired
private SecurityContextRepository securityContextRepository;


@Bean(value="org.springframework.security.config.annotation.web.reactive.WebFluxSecurityConfiguration.WebFilterChainFilter")
public SecurityWebFilterChain springSecurityWebFilterChainFilter(ServerHttpSecurity http) {
LOGGER.info("In the securiry config..................");
return http
.csrf().disable()
.exceptionHandling()
.authenticationEntryPoint((swe, e) -> {
return Mono.fromRunnable(() -> {
swe.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
});
}).accessDeniedHandler((swe, e) -> {
return Mono.fromRunnable(() -> {
swe.getResponse().setStatusCode(HttpStatus.FORBIDDEN);
});
})
.and()
.authenticationManager(authenticationManager)
.securityContextRepository(securityContextRepository)
.authorizeExchange()
.pathMatchers(HttpMethod.OPTIONS).permitAll()
.pathMatchers("/login-service/api/login").permitAll()
.anyExchange().authenticated()
.and().build();
}
}

我总是得到 403An expected CSRF token cannot be found 这个错误,即使我已经禁用了 csrf。任何人都可以帮助解决这里可能出现的问题吗?

最佳答案

您是否尝试过添加您的角色:

.authorizeExchange()
.pathMatchers("/login-service/api/login").hasAuthority("ROLE_ADMIN")
.anyExchange().authenticated()
.and().build();

关于spring-security - 启用安全性后,Spring Cloud Gateway 为所有发布请求返回 403,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66927175/

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