如何使一个特定的GraphQL查询或突变作为公共API在春季启动安全



如何在春季启动安全性中将特定的GraphQL查询作为公共API?

在REST API中,我们可以将URL指定为公共,如下面的代码

@Bean
public WebSecurityCustomizer webSecurityCustomizer() {
return web -> web.ignoring().requestMatchers(CorsUtils::isPreFlightRequest)     
.antMatchers("/actuator/**", "/graphiql/**", "/voyager/**", "/vendor/**");
}

如何对特定的GraphQLquerymutation、执行相同操作

query {
listEmployee(){
id
}
}

GraphQL对所有查询和突变使用一个端点。这是与REST相比的主要区别之一。

这意味着,如果您希望查询或变异具有与其他查询或变异不同的安全设置,则无法在URL级别控制其安全性,因为它们都具有相同的URL。相反,每个查询和突变都有自己的解析器方法支持。您可以使用@PreAuthorize等在方法级别控制安全性。(更多信息(。

最新更新