gpt4 book ai didi

java - Micronaut 中的多个身份验证提供程序

转载 作者:行者123 更新时间:2023-12-01 16:26:30 25 4
gpt4 key购买 nike

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

假设我有一个实体 A,可以使用 authenticationProviderA 进行记录:它给定一个用户并通过检查A 的数据库表 .

是否可以添加一个实体 B 及其authenticationProviderB,给定用户和通行证将检查B 的数据库表?如果是这样,您如何在 Controller 中定义要使用的 authenticationProvider

最佳答案

查看 io.micronaut.security.authentication.Authenticator 后,我发现 Micronaut 中可以有多个 authenticationProviders

文档说:

An Authenticator operates on several {@link AuthenticationProvider} instances returning the first authenticated {@link AuthenticationResponse}.

据我所知,您只需实现 AuthenticationProvider ,并且 Authenticator 将在内部列表中包含实现(即使它没有注释!) AuthenticationProviders

恕我直言,这不是提供多种身份验证方式的好方法。在问题提供的示例中,A 和 B 的身份验证都需要调用 DB,这意味着根据 AuthenticationProviders 的执行顺序,将执行不需要的 BD 调用。

我认为最好提供一种方法来指示 Controller 或端点必须使用哪个AuthenticationProviders。也许有办法做到这一点,但我只是不知道,所以如果有的话请随时发表评论。

关于java - Micronaut 中的多个身份验证提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62130643/

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