在Micronaut中的多个认证供应商

问题描述 投票:0回答:1

是否可以定义多个 authenticationProviders 在Micronaut?

假设我有一个 实体A 可以使用 认证供应商A: 给定一个用户和通行证,检查 A的DB表.

是否可以增加一个 实体B 及其 认证供应商B 给定的用户和通行证将检查 B的DB表如果是这样,你如何在你的控制器中定义哪些是 authenticationProvider 您想要使用的?

java micronaut
1个回答
0
投票

在看了一下 io.micronaut.security.authentication.Authenticator 我看到有可能有多个的 authenticationProviders 在Micronaut中。

文档中说。

一个认证器可以在几个 {@link AuthenticationProvider} 实例,返回第一个经过认证的 {@link AuthenticationResponse}.

根据我所看到的,你只需要实施 AuthenticationProviderAuthenticator 将会把这些实现包含在一个内部的 AuthenticationProviders.

IMHO这不是一个很好的提供多种认证方式的方法。在问题中提供的例子中,A和B的认证都需要调用DB,这意味着根据执行顺序的不同,A和B都需要调用DB。AuthenticationProviders 不需要的BD调用将被执行。

我认为最好能提供一种方法来指示哪些是 AuthenticationProviders 必须由控制器或端点使用。也许有办法做到这一点,只是我不知道,如果有,欢迎评论。

© www.soinside.com 2019 - 2024. All rights reserved.