summaryrefslogtreecommitdiff
path: root/python-pyramid-jwt.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-11 23:49:04 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-11 23:49:04 +0000
commitf24a27f7bc4f0503921884937fdd5b768fcc9137 (patch)
tree1290ba00397b378c5daefca98c4da2763eb20c1e /python-pyramid-jwt.spec
parent4e181258252821d24fc2c7190a7fabe1fb46b1e8 (diff)
automatic import of python-pyramid-jwt
Diffstat (limited to 'python-pyramid-jwt.spec')
-rw-r--r--python-pyramid-jwt.spec206
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