diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-12 06:54:31 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-12 06:54:31 +0000 |
commit | 4220bda4a8dddd8ea40a45a9194133e798123268 (patch) | |
tree | 4045dbb88148291c434d8af6355ff7c5c1eb7953 | |
parent | 3f3e9ebbbdc13e883991c6099bc668a22ce45d5a (diff) |
automatic import of python-fab-oidcopeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-fab-oidc.spec | 315 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 317 insertions, 0 deletions
@@ -0,0 +1 @@ +/fab_oidc-0.0.9.tar.gz diff --git a/python-fab-oidc.spec b/python-fab-oidc.spec new file mode 100644 index 0000000..d6f8871 --- /dev/null +++ b/python-fab-oidc.spec @@ -0,0 +1,315 @@ +%global _empty_manifest_terminate_build 0 +Name: python-fab-oidc +Version: 0.0.9 +Release: 1 +Summary: Flask-AppBuilder SecurityManager for OpenIDConnect +License: MIT +URL: https://github.com/ministryofjustice/fab-oidc/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/a4/19/0ff0bb46a69fcc0773be2d370dee459bf5c880929236e2c6eb23e6dc1966/fab_oidc-0.0.9.tar.gz +BuildArch: noarch + +Requires: python3-Flask-AppBuilder +Requires: python3-Flask-OIDC +Requires: python3-Flask-Admin + +%description +# Flask-AppBuilder SecurityManager for OpenIDConnect + +Wrapper for [flask_oidc] that exposes a `SecurityManager` for use with any Flask-AppBuilder app. + +It will allow your users to login with OpenIDConnect providers such as Auth0, Okta or Google Apps. + +This is roughly inspired by the code in this [stackoverflow](https://stackoverflow.com/a/47787279/44252) answer. (MIT Licenced © [thijsfranck](https://stackoverflow.com/users/8905583/thijsfranck)) + +## Usage + +### Generic + +Just override the default security manager in your Flask Appbuilder app. + +```python +from fab_oidc.security import OIDCSecurityManager + +appbuilder = AppBuilder(app, db.session, security_manager_class=OIDCSecurityManager) +``` + +### [Airflow] +Airflow provides a hook in the `webserver_config.py` file where you can specify a security manager class. +In `webserver_config.py` import the OIDCSecurityManager and set +```python +from fab_oidc.security import AirflowOIDCSecurityManager +... +SECURITY_MANAGER_CLASS = AirflowOIDCSecurityManager +``` + +Airflow now requires that your `SECURITY_MANAGER_CLASS` is a subclass of `AirflowSecurityManager`. +Use the special `AirflowOIDCSecurityManager` that is only defined if you're using this library alongside Airflow. + +### [Superset] +Superset works in a a similar way. Just as in Airflow, +`SECURITY_MANAGER_CLASS` needs to be a subclass of `SupersetSecurityManager` +the config is in a file called `superset_config.py` and the hook is called +`CUSTOM_SECURITY_MANAGER`. There now exists a special +`SupersetOIDCSecurityManager` that is only defined if you are using this +library alongside Superset. + +```python +from fab_oidc.security import SupersetOIDCSecurityManager +... +CUSTOM_SECURITY_MANAGER = SupersetOIDCSecurityManager +``` + + +## Settings +The settings are the same as the [flask_oidc settings][flask_oidc_settings], so look there for a reference. + +if you're happy with [flask_oidc]'s defaults the only thing you'll really need is something like: + +```python +OIDC_CLIENT_SECRETS = '/path/to/client_secret.json' +``` + +see the [flask_oidc manual client registration][flask_oidc_manual_config] docs for how to generate or write one. + +### OIDC Field configuration + +If you like to change the default OIDC field that will be used as a username, +first name and last name you can set the following env var in the shell you run +your process: + +```bash +export USERNAME_OIDC_FIELD='preferred_username' +export FIRST_NAME_OIDC_FIELD='given_name' +export LAST_NAME_OIDC_FIELD='family_name' +``` + +Copyright © 2018 HM Government (Ministry of Justice Digital Services). See LICENSE.txt for further details. + + +[flask_oidc]: http://flask-oidc.readthedocs.io/en/latest/ +[flask_oidc_settings]: http://flask-oidc.readthedocs.io/en/latest/#settings-reference +[flask_oidc_manual_config]: http://flask-oidc.readthedocs.io/en/latest/#manual-client-registration +[Airflow]: https://airflow.apache.org/ + [Superset]: https://superset.incubator.apache.org/ + + + + +%package -n python3-fab-oidc +Summary: Flask-AppBuilder SecurityManager for OpenIDConnect +Provides: python-fab-oidc +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-fab-oidc +# Flask-AppBuilder SecurityManager for OpenIDConnect + +Wrapper for [flask_oidc] that exposes a `SecurityManager` for use with any Flask-AppBuilder app. + +It will allow your users to login with OpenIDConnect providers such as Auth0, Okta or Google Apps. + +This is roughly inspired by the code in this [stackoverflow](https://stackoverflow.com/a/47787279/44252) answer. (MIT Licenced © [thijsfranck](https://stackoverflow.com/users/8905583/thijsfranck)) + +## Usage + +### Generic + +Just override the default security manager in your Flask Appbuilder app. + +```python +from fab_oidc.security import OIDCSecurityManager + +appbuilder = AppBuilder(app, db.session, security_manager_class=OIDCSecurityManager) +``` + +### [Airflow] +Airflow provides a hook in the `webserver_config.py` file where you can specify a security manager class. +In `webserver_config.py` import the OIDCSecurityManager and set +```python +from fab_oidc.security import AirflowOIDCSecurityManager +... +SECURITY_MANAGER_CLASS = AirflowOIDCSecurityManager +``` + +Airflow now requires that your `SECURITY_MANAGER_CLASS` is a subclass of `AirflowSecurityManager`. +Use the special `AirflowOIDCSecurityManager` that is only defined if you're using this library alongside Airflow. + +### [Superset] +Superset works in a a similar way. Just as in Airflow, +`SECURITY_MANAGER_CLASS` needs to be a subclass of `SupersetSecurityManager` +the config is in a file called `superset_config.py` and the hook is called +`CUSTOM_SECURITY_MANAGER`. There now exists a special +`SupersetOIDCSecurityManager` that is only defined if you are using this +library alongside Superset. + +```python +from fab_oidc.security import SupersetOIDCSecurityManager +... +CUSTOM_SECURITY_MANAGER = SupersetOIDCSecurityManager +``` + + +## Settings +The settings are the same as the [flask_oidc settings][flask_oidc_settings], so look there for a reference. + +if you're happy with [flask_oidc]'s defaults the only thing you'll really need is something like: + +```python +OIDC_CLIENT_SECRETS = '/path/to/client_secret.json' +``` + +see the [flask_oidc manual client registration][flask_oidc_manual_config] docs for how to generate or write one. + +### OIDC Field configuration + +If you like to change the default OIDC field that will be used as a username, +first name and last name you can set the following env var in the shell you run +your process: + +```bash +export USERNAME_OIDC_FIELD='preferred_username' +export FIRST_NAME_OIDC_FIELD='given_name' +export LAST_NAME_OIDC_FIELD='family_name' +``` + +Copyright © 2018 HM Government (Ministry of Justice Digital Services). See LICENSE.txt for further details. + + +[flask_oidc]: http://flask-oidc.readthedocs.io/en/latest/ +[flask_oidc_settings]: http://flask-oidc.readthedocs.io/en/latest/#settings-reference +[flask_oidc_manual_config]: http://flask-oidc.readthedocs.io/en/latest/#manual-client-registration +[Airflow]: https://airflow.apache.org/ + [Superset]: https://superset.incubator.apache.org/ + + + + +%package help +Summary: Development documents and examples for fab-oidc +Provides: python3-fab-oidc-doc +%description help +# Flask-AppBuilder SecurityManager for OpenIDConnect + +Wrapper for [flask_oidc] that exposes a `SecurityManager` for use with any Flask-AppBuilder app. + +It will allow your users to login with OpenIDConnect providers such as Auth0, Okta or Google Apps. + +This is roughly inspired by the code in this [stackoverflow](https://stackoverflow.com/a/47787279/44252) answer. (MIT Licenced © [thijsfranck](https://stackoverflow.com/users/8905583/thijsfranck)) + +## Usage + +### Generic + +Just override the default security manager in your Flask Appbuilder app. + +```python +from fab_oidc.security import OIDCSecurityManager + +appbuilder = AppBuilder(app, db.session, security_manager_class=OIDCSecurityManager) +``` + +### [Airflow] +Airflow provides a hook in the `webserver_config.py` file where you can specify a security manager class. +In `webserver_config.py` import the OIDCSecurityManager and set +```python +from fab_oidc.security import AirflowOIDCSecurityManager +... +SECURITY_MANAGER_CLASS = AirflowOIDCSecurityManager +``` + +Airflow now requires that your `SECURITY_MANAGER_CLASS` is a subclass of `AirflowSecurityManager`. +Use the special `AirflowOIDCSecurityManager` that is only defined if you're using this library alongside Airflow. + +### [Superset] +Superset works in a a similar way. Just as in Airflow, +`SECURITY_MANAGER_CLASS` needs to be a subclass of `SupersetSecurityManager` +the config is in a file called `superset_config.py` and the hook is called +`CUSTOM_SECURITY_MANAGER`. There now exists a special +`SupersetOIDCSecurityManager` that is only defined if you are using this +library alongside Superset. + +```python +from fab_oidc.security import SupersetOIDCSecurityManager +... +CUSTOM_SECURITY_MANAGER = SupersetOIDCSecurityManager +``` + + +## Settings +The settings are the same as the [flask_oidc settings][flask_oidc_settings], so look there for a reference. + +if you're happy with [flask_oidc]'s defaults the only thing you'll really need is something like: + +```python +OIDC_CLIENT_SECRETS = '/path/to/client_secret.json' +``` + +see the [flask_oidc manual client registration][flask_oidc_manual_config] docs for how to generate or write one. + +### OIDC Field configuration + +If you like to change the default OIDC field that will be used as a username, +first name and last name you can set the following env var in the shell you run +your process: + +```bash +export USERNAME_OIDC_FIELD='preferred_username' +export FIRST_NAME_OIDC_FIELD='given_name' +export LAST_NAME_OIDC_FIELD='family_name' +``` + +Copyright © 2018 HM Government (Ministry of Justice Digital Services). See LICENSE.txt for further details. + + +[flask_oidc]: http://flask-oidc.readthedocs.io/en/latest/ +[flask_oidc_settings]: http://flask-oidc.readthedocs.io/en/latest/#settings-reference +[flask_oidc_manual_config]: http://flask-oidc.readthedocs.io/en/latest/#manual-client-registration +[Airflow]: https://airflow.apache.org/ + [Superset]: https://superset.incubator.apache.org/ + + + + +%prep +%autosetup -n fab-oidc-0.0.9 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-fab-oidc -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed Apr 12 2023 Python_Bot <Python_Bot@openeuler.org> - 0.0.9-1 +- Package Spec generated @@ -0,0 +1 @@ +0c938353b745b672beb16ccbf2a4ac6f fab_oidc-0.0.9.tar.gz |