summaryrefslogtreecommitdiff
path: root/python-flask-htpasswd.spec
blob: 90630a2c3b516cdef8d7f9cf6ad7ad3d235eccb0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
%global _empty_manifest_terminate_build 0
Name:		python-flask-htpasswd
Version:	0.5.0
Release:	1
Summary:	Basic authentication support via htpasswd files in flask applications
License:	BSD New
URL:		http://github.com/carsongee/flask-htpasswd
Source0:	https://mirrors.nju.edu.cn/pypi/web/packages/12/23/a48ba432293903a161c674a19c791f84f9b98e6c7310d0190fb92555c655/flask-htpasswd-0.5.0.tar.gz
BuildArch:	noarch

Requires:	python3-Flask
Requires:	python3-passlib
Requires:	python3-pyjwt
Requires:	python3-tox

%description
Flask extension for providing basic digest and token authentication
via apache htpasswd files.  So largely it fits between `Flask-Security
<https://pythonhosted.org/Flask-Security/>`_ which has additional
dependencies and `Flask-BasicAuth
<http://flask-basicauth.readthedocs.org/en/latest/>`_ which only
allows you to have one user (and also puts the plain text password
into the configuration).
Sample usage is to first create an htpasswd file with the `apache tool <http://httpd.apache.org/docs/2.2/programs/htpasswd.html>`_:
  htpasswd -c /path/to/.htpasswd my_username
Additional users can be added, or have their passwords changed, by running:
  htpasswd /path/to/.htpasswd new_user
  htpasswd /path/to/.htpasswd user_I_want_to_change_passwords_for
Then you just need to setup and configure your flask application, with
something like:
  import flask
  from flask_htpasswd import HtPasswdAuth
  app = flask.Flask(__name__)
  app.config['FLASK_HTPASSWD_PATH'] = '/path/to/.htpasswd'
  app.config['FLASK_SECRET'] = 'Hey Hey Kids, secure me!'
  htpasswd = HtPasswdAuth(app)
  @app.route('/')
  @htpasswd.required
  def index(user):
      return 'Hello {user}'.format(user=user)
  app.run(debug=True)
And that view should now prompt for a username and password (and
accept tokens).
If you would like to protect all of your views, that is easy too, just
add a little config. By setting ``app.config['FLASK_AUTH_ALL']=True``
before initializing the extension, an ``@app.before_request`` is added
that will require auth for all pages, and it will add the user as
``flask.g.user``.
One last small feature, is that you can also set the authentication
realm.  The default is 'Login Required', but it can be set with
``app.config['FLASK_AUTH_REALM']`` before initialization.

%package -n python3-flask-htpasswd
Summary:	Basic authentication support via htpasswd files in flask applications
Provides:	python-flask-htpasswd
BuildRequires:	python3-devel
BuildRequires:	python3-setuptools
BuildRequires:	python3-pip
%description -n python3-flask-htpasswd
Flask extension for providing basic digest and token authentication
via apache htpasswd files.  So largely it fits between `Flask-Security
<https://pythonhosted.org/Flask-Security/>`_ which has additional
dependencies and `Flask-BasicAuth
<http://flask-basicauth.readthedocs.org/en/latest/>`_ which only
allows you to have one user (and also puts the plain text password
into the configuration).
Sample usage is to first create an htpasswd file with the `apache tool <http://httpd.apache.org/docs/2.2/programs/htpasswd.html>`_:
  htpasswd -c /path/to/.htpasswd my_username
Additional users can be added, or have their passwords changed, by running:
  htpasswd /path/to/.htpasswd new_user
  htpasswd /path/to/.htpasswd user_I_want_to_change_passwords_for
Then you just need to setup and configure your flask application, with
something like:
  import flask
  from flask_htpasswd import HtPasswdAuth
  app = flask.Flask(__name__)
  app.config['FLASK_HTPASSWD_PATH'] = '/path/to/.htpasswd'
  app.config['FLASK_SECRET'] = 'Hey Hey Kids, secure me!'
  htpasswd = HtPasswdAuth(app)
  @app.route('/')
  @htpasswd.required
  def index(user):
      return 'Hello {user}'.format(user=user)
  app.run(debug=True)
And that view should now prompt for a username and password (and
accept tokens).
If you would like to protect all of your views, that is easy too, just
add a little config. By setting ``app.config['FLASK_AUTH_ALL']=True``
before initializing the extension, an ``@app.before_request`` is added
that will require auth for all pages, and it will add the user as
``flask.g.user``.
One last small feature, is that you can also set the authentication
realm.  The default is 'Login Required', but it can be set with
``app.config['FLASK_AUTH_REALM']`` before initialization.

%package help
Summary:	Development documents and examples for flask-htpasswd
Provides:	python3-flask-htpasswd-doc
%description help
Flask extension for providing basic digest and token authentication
via apache htpasswd files.  So largely it fits between `Flask-Security
<https://pythonhosted.org/Flask-Security/>`_ which has additional
dependencies and `Flask-BasicAuth
<http://flask-basicauth.readthedocs.org/en/latest/>`_ which only
allows you to have one user (and also puts the plain text password
into the configuration).
Sample usage is to first create an htpasswd file with the `apache tool <http://httpd.apache.org/docs/2.2/programs/htpasswd.html>`_:
  htpasswd -c /path/to/.htpasswd my_username
Additional users can be added, or have their passwords changed, by running:
  htpasswd /path/to/.htpasswd new_user
  htpasswd /path/to/.htpasswd user_I_want_to_change_passwords_for
Then you just need to setup and configure your flask application, with
something like:
  import flask
  from flask_htpasswd import HtPasswdAuth
  app = flask.Flask(__name__)
  app.config['FLASK_HTPASSWD_PATH'] = '/path/to/.htpasswd'
  app.config['FLASK_SECRET'] = 'Hey Hey Kids, secure me!'
  htpasswd = HtPasswdAuth(app)
  @app.route('/')
  @htpasswd.required
  def index(user):
      return 'Hello {user}'.format(user=user)
  app.run(debug=True)
And that view should now prompt for a username and password (and
accept tokens).
If you would like to protect all of your views, that is easy too, just
add a little config. By setting ``app.config['FLASK_AUTH_ALL']=True``
before initializing the extension, an ``@app.before_request`` is added
that will require auth for all pages, and it will add the user as
``flask.g.user``.
One last small feature, is that you can also set the authentication
realm.  The default is 'Login Required', but it can be set with
``app.config['FLASK_AUTH_REALM']`` before initialization.

%prep
%autosetup -n flask-htpasswd-0.5.0

%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-flask-htpasswd -f filelist.lst
%dir %{python3_sitelib}/*

%files help -f doclist.lst
%{_docdir}/*

%changelog
* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 0.5.0-1
- Package Spec generated