dremio AuthProvider 简单说明
AuthProvider 是在authenticator 模块中提供的接口定义,目前实现包括了LocalUsernamePasswordAuthProvider以及DremioAccessTokenAuthProvider
LocalUsernamePasswordAuthProvider 是目前社区版使用的,DremioAccessTokenAuthProvider 尽管在oss 代码中但是没用到,LocalUsernamePasswordAuthProvider 实际使用到的地方主要是 rpc 服务中,对于rpc 目前包括了传统的以及flight sql flight sql 处理部分稍有不同后边单独说明下
AuthProvider 实现子类
可以看到包含了基于用户密码的以及accesstoken 的accesstoken 没有
使用
目前LocalUsernamePasswordAuthProvider的使用主要在BasicAuthenticator中BasicAuthenticator 主要是rpc 使用的
- BasicAuthenticator 使用
public class BasicAuthenticator implements Authenticator {
private final Provider<LocalUsernamePasswordAuthProvider> usernamePasswordAuthProviderProvider;
private LocalUsernamePasswordAuthProvider usernamePasswordAuthProvider;
public BasicAuthenticator(
Provider<LocalUsernamePasswordAuthProvider> usernamePasswordAuthProviderProvider) {
this.usernamePasswordAuthProviderProvider = usernamePasswordAuthProviderProvider;
}
@Override
public void start() {
usernamePasswordAuthProvider = usernamePasswordAuthProviderProvider.get();
}
/** Validates username/password. */
@Override
@NotNull
public AuthResult authenticate(AuthRequest request) throws AuthException {
return usernamePasswordAuthProvider.validate(request);
}
}
说明
dremio 社区版的认证处理比较简单,目前AuthProvider 主要是rpc服务使用,web 登陆没有直接使用auth ,而且自己使用的userservice 进行处理的
Authenticator 部分后边单独说明下
参考资料
services/authenticator/src/main/java/com/dremio/authenticator/AuthProvider.java
services/users/src/main/java/com/dremio/service/users/LocalUsernamePasswordAuthProvider.java
services/tokens/src/main/java/com/dremio/service/tokens/DremioAccessTokenAuthProvider.java
services/tokens/src/main/java/com/dremio/service/tokens/TokenManager.java
services/tokens/src/main/java/com/dremio/service/tokens/TokenManagerImpl.java
services/authenticator/src/main/java/com/dremio/authenticator/Authenticator.java
services/users/src/main/java/com/dremio/service/users/BasicAuthenticator.java
sabot/kernel/src/main/java/com/dremio/sabot/rpc/user/UserServer.java
dac/backend/src/main/java/com/dremio/dac/resource/LogInLogOutResource.java
sabot/kernel/src/main/java/com/dremio/sabot/rpc/user/UserRPCServer.java
services/arrow-flight/src/main/java/com/dremio/service/flight/DremioFlightAuthProviderImpl.java
services/arrow-flight/src/main/java/com/dremio/service/flight/auth/DremioFlightServerBasicAuthValidator.java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2023-05-07 qdrant 向量数据库
2022-05-07 localstack 的域名访问机制简单说明
2022-05-07 localstack 试用
2022-05-07 localstack 强大的云服务环境模拟器
2022-05-07 使用glowroot apm分析dremio 调用
2021-05-07 nginx service-mesh ga了
2021-05-07 cubestore driver 添加auth认证