代码之家  ›  专栏  ›  技术社区  ›  Sayat Satybald

Flask AppBuilder for Superest中SecurityManager的Decorator

  •  1
  • Sayat Satybald  · 技术社区  · 6 年前

    我正在尝试在superset中添加一个来自OAuth的自定义用户信息检索,它构建在flask appbuilder之上。

    官方文件提供以下信息:

    用SecurityManager OAuth用户信息getter修饰您的方法 装饰师。使您的方法接受与此相同的精确参数 示例,然后返回检索到的用户的字典 信息。

    http://flask-appbuilder.readthedocs.io/en/latest/security.html#authentication-oauth

    The example 在医生的帮助也不多,因为装饰师在评论。

    我在哪里可以把定制装饰放在超集里?我把定制的装饰器放在superset-config.py中,但我没有为自己工作。

    1 回复  |  直到 6 年前
        1
  •  2
  •   dmigo    6 年前

    我使用的方法可以归结为以下几点:

    # For superset version >= 0.25.0
    
    from superset.security import SupersetSecurityManager
    
    
    class CustomSecurityManager(SupersetSecurityManager):
    
         def __init__(self, appbuilder):
             super(CustomSecurityManager, self).__init__(appbuilder)
    
         def whatever_you_want_to_override(self, ...):
             # Your implementation here
    
    
    CUSTOM_SECURITY_MANAGER = CustomSecurityManager
    
    
    # For superset version < 0.25.0
    from flask_appbuilder.security.sqla.manager import SecurityManager
    
    
    class CustomSecurityManager(SecurityManager):
    
         def __init__(self, appbuilder):
             super(CustomSecurityManager, self).__init__(appbuilder)
    
         def whatever_you_want_to_override(self, ...):
             # Your implementation here
    
    
    CUSTOM_SECURITY_MANAGER = CustomSecurityManager