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