我正在尝试Filter仅将自定义添加到特定的 URL,但是过滤器会应用于每个请求,无论 URL 和方法如何,是否有人知道使用 Spring Security 的最新版本来修复此问题的正确方法,即不使用WebSecurityConfigurerAdapter,因为它将被弃用。它符合:
这里有很多类似的问题,但它们要么对我不起作用,要么使用“旧”方法,例如:
我暴露了许多端点,它们都遵循该模式:/api/**但是我需要为特定端点提供一些身份验证:/api/some/url以及特定方法(GET在本例中),我该如何正确执行此操作?
注意:端点 URL 全部位于/api/*(它们应该称为嵌套吗?)
我的安全配置如下所示:
@EnableWebSecurity
public class SecurityConfig {
private MyFilter myFilter;
public SecurityConfig(MyFilter pif) {
myFilter = pif;
}
/**
* Handling AuthZ & AuthN for most APIs. No AuthZ & AuthN.
*/
@Bean
@Order(Ordered.HIGHEST_PRECEDENCE)
public SecurityFilterChain defaultSecurity(HttpSecurity http) throws Exception { …Run Code Online (Sandbox Code Playgroud) 我正在尝试正确处理 gRPC 错误(Java、Spring-boot 应用程序)。
基本上,我也需要将错误详细信息从 gRPC 服务器传输到客户端,但我发现很难理解 的正确用法StreamObserver.onError();
方法文档说:
“从流中接收到终止错误。只能调用一次,如果调用,则必须是最后调用的方法。特别是,如果 onError 的实现引发异常,则不允许进一步调用任何方法。”
“不允许再打电话”是什么意思?在我维护的应用程序中,他们调用其他 gRPC 方法,并且java.lang.IllegalStateException: call already closed根据文档,他们得到了很好的结果。
我想知道 - 我(开发人员)应该在收到错误后终止当前的 java 方法(通常使用 gRPC 调用)吗?例如抛出异常来停止执行。或者预计 gRPC 将终止执行..(类似于从 gRPC 抛出异常)
基本上我如何正确使用onError()以及如果我调用它我应该期待和处理什么?我需要解释一下它的用法和效果。
有一个 Spring-boot REST API,需要由 Keycloak 保护,该应用程序使用 Keycloak-Spring-Security 适配器(6.0.1)。
对 API 端点的调用会携带从 Keycloak(当前通过邮递员)获取的不记名令牌。
我能够成功执行 REST 端点调用,但其他事情困扰着我 - 我是否应该根据公钥显式验证令牌?
1 - 适配器是否根据公钥执行令牌验证,还是我应该实施它?
2 - 如果适配器正在执行此操作 - 您能否指出这是在哪些类中完成的?
3 - 如果 - 不 - 应如何实施此验证?是否有任何 Keycloak 库可用于验证令牌?