cubestore 添加auth 认证

实际上官方支持auth 的认证的,只是模式为None,我们可以自定义自己的一个auth,以下主要说明下关于mysql 协议的,因为特殊性
http 走的是websocket(后期添加)

参考修改的代码

  • auth
 
#[async_trait]
impl SqlAuthService for SqlAuthDefaultImpl {
    async fn authenticate(&self, _user: Option<String>) -> Result<Option<String>, CubeError> {
      let m =  match _user {
            None => {
                println!("{}", "user is null");
                Err(CubeError {
                    message: "error".to_string(),
                    cause: CubeErrorCauseType::User,
                })
            }
            Some(user) => {
                println!("auth user{}", user);
                Ok(None)
            }
        };
        m
    }
}
  • 协议处理
 tokio::spawn(async move {
                if let Err(e) = AsyncMysqlIntermediary::run_on(
                    Backend {
                        sql_service,
                        auth,
                       // 使用自定义环境变量
                        user: env::var("CUBESTORE_USERNAME").ok(),
                    },
                    socket,
                )
                .await
                {
                    error!("Error during processing MySQL connection: {}", e);
                }
            });

运行

export CUBESTORE_LOG_LEVEL=debug
export CUBESTORE_SERVER_NAME=localhost:9999
export CUBESTORE_META_PORT=9999
export CUBESTORE_S3_BUCKET=test
export CUBESTORE_S3_ENDPOINT=http://localhost:9000
export CUBESTORE_S3_REGION=us-east-1
export CUBESTORE_S3_PATH_STYLE=1
export CUBESTORE_USERNAME=dalong
export CUBESTORE_REMOTE_DIR=./cube/data
export CUBESTORE_AWS_ACCESS_KEY_ID=dalongrong
export CUBESTORE_AWS_SECRET_ACCESS_KEY=dalongrong
 ./target/debug/cubestored 

使用

可以使用以下命令测试

mysql -udalong -h127.0.0.1 

说明

因为http 以及websocket 的特殊性,后期调整添加

posted on   荣锋亮  阅读(91)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2020-05-06 stimulusjs 由Ruby on Rails 作者创建的web框架
2020-05-06 adonisjs 类似php laravel 的mvc 框架
2020-05-06 html-query-plan一个不错的sql server查询计划展示web 组件
2017-05-06 Spring boot admin 使用
2017-05-06 Prometheus 简介
2014-05-06 oracle nodejs 访问
2014-05-06 oracle 变量作用域

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示