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

posted on 2024-05-07 08:00  荣锋亮  阅读(8)  评论(0编辑  收藏  举报

导航