gpt4 book ai didi

authentication - dropwizard 中不同资源的多个身份验证器

转载 作者:行者123 更新时间:2023-12-04 23:52:02 24 4
gpt4 key购买 nike

假设我有两个资源,/authenticate 和/protected_resource。 Authenticate 验证通过基本 http 身份验证提供的用户/密码,如果成功,则生成一个 jwt token 。/protected_resource 期望像在 oauth 中一样在传入请求 header 中提供 token 。我可以安装两种不同的身份验证器/过滤器,“basic”和“jwt”,并指出基本的用于/authenticate 而 jwt 用于/protected_resource 吗?

最佳答案

是的,你可以。

我还没有专门尝试过这个,但是查看源代码并根据我使用 AuthProviders 的经验,它应该可以工作。

只需确保这些身份验证器返回不同的类即可。

environment.jersey().register(AuthFactory.binder(new BasicAuthFactory<User>(new UserAuthenticator(), "User authentication", User.class)));

environment.jersey().register(AuthFactory.binder(new OAuthFactory<Token>(new JwtAuthenticator(), "Jwt authentication", Token.class)));

然后在资源类中:

@Path("/authenticate")
public String authenticate(@Auth User user){
return jwtToken;
}

@Path("/protected_resource")
public FooDto getFoo(@Auth Token token){
// do stuff
}

关于authentication - dropwizard 中不同资源的多个身份验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30447115/

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