%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 `_. This standard (`RFC 7519
`_) is often used to secure backend APIs.
The excellent `PyJWT `_ 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 `_ 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 `_. This standard (`RFC 7519
`_) is often used to secure backend APIs.
The excellent `PyJWT `_ 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 `_ 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 `_. This standard (`RFC 7519
`_) is often used to secure backend APIs.
The excellent `PyJWT `_ 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 `_ 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  - 1.6.1-1
- Package Spec generated