diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-04-11 23:49:04 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 23:49:04 +0000 |
| commit | f24a27f7bc4f0503921884937fdd5b768fcc9137 (patch) | |
| tree | 1290ba00397b378c5daefca98c4da2763eb20c1e /python-pyramid-jwt.spec | |
| parent | 4e181258252821d24fc2c7190a7fabe1fb46b1e8 (diff) | |
automatic import of python-pyramid-jwt
Diffstat (limited to 'python-pyramid-jwt.spec')
| -rw-r--r-- | python-pyramid-jwt.spec | 206 |
1 files changed, 206 insertions, 0 deletions
diff --git a/python-pyramid-jwt.spec b/python-pyramid-jwt.spec new file mode 100644 index 0000000..0f155d0 --- /dev/null +++ b/python-pyramid-jwt.spec @@ -0,0 +1,206 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pyramid-jwt +Version: 1.6.1 +Release: 1 +Summary: JWT authentication policy for Pyramid +License: BSD +URL: https://github.com/wichert/pyramid_jwt +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/44/25/ed2fea7add4aa146ffbe45f485c22c5f581c823518d25c78a17e578574e8/pyramid_jwt-1.6.1.tar.gz +BuildArch: noarch + +Requires: python3-pyramid +Requires: python3-PyJWT +Requires: python3-WebTest +Requires: python3-pytest +Requires: python3-pytest-freezegun + +%description +This package implements an authentication policy for Pyramid that using `JSON +Web Tokens <http://jwt.io/>`_. This standard (`RFC 7519 +<https://tools.ietf.org/html/rfc7519>`_) is often used to secure backend APIs. +The excellent `PyJWT <https://pyjwt.readthedocs.org/en/latest/>`_ library is +used for the JWT encoding / decoding logic. +Enabling JWT support in a Pyramid application is very simple: + from pyramid.config import Configurator + from pyramid.authorization import ACLAuthorizationPolicy + def main(): + config = Configurator() + # Pyramid requires an authorization policy to be active. + config.set_authorization_policy(ACLAuthorizationPolicy()) + # Enable JWT authentication. + config.include('pyramid_jwt') + config.set_jwt_authentication_policy('secret') +This will set a JWT authentication policy using the `Authorization` HTTP header +with a `JWT` scheme to retrieve tokens. Using another HTTP header is trivial: + config.set_jwt_authentication_policy('secret', http_header='X-My-Header') +If your application needs to decode tokens which contain an `Audience <http://pyjwt.readthedocs.io/en/latest/usage.html?highlight=decode#audience-claim-aud>`_ claim you can extend this with: + config.set_jwt_authentication_policy('secret', + auth_type='Bearer', + callback=add_role_principals, + audience="example.org") +To make creating valid tokens easier a new ``create_jwt_token`` method is +added to the request. You can use this in your view to create tokens. A simple +authentication view for a REST backend could look something like this: + @view_config('login', request_method='POST', renderer='json') + def login(request): + login = request.POST['login'] + password = request.POST['password'] + user_id = authenticate(login, password) # You will need to implement this. + if user_id: + return { + 'result': 'ok', + 'token': request.create_jwt_token(user_id) + } + else: + return { + 'result': 'error' + } +Unless you are using JWT cookies within cookies (see the next section), the +standard ``remember()`` and ``forget()`` functions from Pyramid are not useful. +Trying to use them while regular (header-based) JWT authentication is enabled +will result in a warning. + +%package -n python3-pyramid-jwt +Summary: JWT authentication policy for Pyramid +Provides: python-pyramid-jwt +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pyramid-jwt +This package implements an authentication policy for Pyramid that using `JSON +Web Tokens <http://jwt.io/>`_. This standard (`RFC 7519 +<https://tools.ietf.org/html/rfc7519>`_) is often used to secure backend APIs. +The excellent `PyJWT <https://pyjwt.readthedocs.org/en/latest/>`_ library is +used for the JWT encoding / decoding logic. +Enabling JWT support in a Pyramid application is very simple: + from pyramid.config import Configurator + from pyramid.authorization import ACLAuthorizationPolicy + def main(): + config = Configurator() + # Pyramid requires an authorization policy to be active. + config.set_authorization_policy(ACLAuthorizationPolicy()) + # Enable JWT authentication. + config.include('pyramid_jwt') + config.set_jwt_authentication_policy('secret') +This will set a JWT authentication policy using the `Authorization` HTTP header +with a `JWT` scheme to retrieve tokens. Using another HTTP header is trivial: + config.set_jwt_authentication_policy('secret', http_header='X-My-Header') +If your application needs to decode tokens which contain an `Audience <http://pyjwt.readthedocs.io/en/latest/usage.html?highlight=decode#audience-claim-aud>`_ claim you can extend this with: + config.set_jwt_authentication_policy('secret', + auth_type='Bearer', + callback=add_role_principals, + audience="example.org") +To make creating valid tokens easier a new ``create_jwt_token`` method is +added to the request. You can use this in your view to create tokens. A simple +authentication view for a REST backend could look something like this: + @view_config('login', request_method='POST', renderer='json') + def login(request): + login = request.POST['login'] + password = request.POST['password'] + user_id = authenticate(login, password) # You will need to implement this. + if user_id: + return { + 'result': 'ok', + 'token': request.create_jwt_token(user_id) + } + else: + return { + 'result': 'error' + } +Unless you are using JWT cookies within cookies (see the next section), the +standard ``remember()`` and ``forget()`` functions from Pyramid are not useful. +Trying to use them while regular (header-based) JWT authentication is enabled +will result in a warning. + +%package help +Summary: Development documents and examples for pyramid-jwt +Provides: python3-pyramid-jwt-doc +%description help +This package implements an authentication policy for Pyramid that using `JSON +Web Tokens <http://jwt.io/>`_. This standard (`RFC 7519 +<https://tools.ietf.org/html/rfc7519>`_) is often used to secure backend APIs. +The excellent `PyJWT <https://pyjwt.readthedocs.org/en/latest/>`_ library is +used for the JWT encoding / decoding logic. +Enabling JWT support in a Pyramid application is very simple: + from pyramid.config import Configurator + from pyramid.authorization import ACLAuthorizationPolicy + def main(): + config = Configurator() + # Pyramid requires an authorization policy to be active. + config.set_authorization_policy(ACLAuthorizationPolicy()) + # Enable JWT authentication. + config.include('pyramid_jwt') + config.set_jwt_authentication_policy('secret') +This will set a JWT authentication policy using the `Authorization` HTTP header +with a `JWT` scheme to retrieve tokens. Using another HTTP header is trivial: + config.set_jwt_authentication_policy('secret', http_header='X-My-Header') +If your application needs to decode tokens which contain an `Audience <http://pyjwt.readthedocs.io/en/latest/usage.html?highlight=decode#audience-claim-aud>`_ claim you can extend this with: + config.set_jwt_authentication_policy('secret', + auth_type='Bearer', + callback=add_role_principals, + audience="example.org") +To make creating valid tokens easier a new ``create_jwt_token`` method is +added to the request. You can use this in your view to create tokens. A simple +authentication view for a REST backend could look something like this: + @view_config('login', request_method='POST', renderer='json') + def login(request): + login = request.POST['login'] + password = request.POST['password'] + user_id = authenticate(login, password) # You will need to implement this. + if user_id: + return { + 'result': 'ok', + 'token': request.create_jwt_token(user_id) + } + else: + return { + 'result': 'error' + } +Unless you are using JWT cookies within cookies (see the next section), the +standard ``remember()`` and ``forget()`` functions from Pyramid are not useful. +Trying to use them while regular (header-based) JWT authentication is enabled +will result in a warning. + +%prep +%autosetup -n pyramid-jwt-1.6.1 + +%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-pyramid-jwt -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 1.6.1-1 +- Package Spec generated |
