小编gai*_*jin的帖子

仅为特定 URL 添加 Spring Security 过滤器的正确方法是什么?

我正在尝试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)

filter spring-security

10
推荐指数
1
解决办法
1万
查看次数

有人可以向我解释 gRPC StreamObserver.onError 的正确用法是什么吗?

我正在尝试正确处理 gRPC 错误(Java、Spring-boot 应用程序)。

基本上,我也需要将错误详细信息从 gRPC 服务器传输到客户端,但我发现很难理解 的正确用法StreamObserver.onError();

方法文档说:

“从流中接收到终止错误。只能调用一次,如果调用,则必须是最后调用的方法。特别是,如果 onError 的实现引发异常,则不允许进一步调用任何方法。”

“不允许再打电话”是什么意思?在我维护的应用程序中,他们调用其他 gRPC 方法,并且java.lang.IllegalStateException: call already closed根据文档,他们得到了很好的结果。

我想知道 - 我(开发人员)应该在收到错误后终止当前的 java 方法(通常使用 gRPC 调用)吗?例如抛出异常来停止执行。或者预计 gRPC 将终止执行..(类似于从 gRPC 抛出异常)

基本上我如何正确使用onError()以及如果我调用它我应该期待和处理什么?我需要解释一下它的用法和效果。

error-handling grpc-java

6
推荐指数
1
解决办法
2万
查看次数

我应该显式验证 Keycloak 令牌还是由 Keycloak 适配器完成?

有一个 Spring-boot REST API,需要由 Keycloak 保护,该应用程序使用 Keycloak-Spring-Security 适配器(6.0.1)。

对 API 端点的调用会携带从 Keycloak(当前通过邮递员)获取的不记名令牌。

我能够成功执行 REST 端点调用,但其他事情困扰着我 - 我是否应该根据公钥显式验证令牌?

1 - 适配器是否根据公钥执行令牌验证,还是我应该实施它?

2 - 如果适配器正在执行此操作 - 您能否指出这是在哪些类中完成的?

3 - 如果 - 不 - 应如何实施此验证?是否有任何 Keycloak 库可用于验证令牌?

spring-security oauth-2.0 spring-boot bearer-token keycloak

2
推荐指数
1
解决办法
4200
查看次数