[auth] Use a second authtkt policy for 'rememberme'
The former solution was buggy because the expire time of the auth cookie, if
set through 'remember', was lost on the first cookie reissuing.
The new approach, make possible thanks to multiauth, use two different cookies.
One for session bounded authentication (no 'rememberme'), and one for long
lasting authentication (w 'rememberme').
The choice between the two of them is done by adding a 'persistent' argument
to the top-level 'security.remember' call. Passing this argument will inhibate
a policy or the other.
The two policies are (a little) configurable through the
'cubicweb.auth.authtkt.[session|persistent].*' variables.
Related to #4985962
.. _profiling:
Profiling
=========
Profiling of requests by the pyramid debug toolbar can be a little restrictive
when a specific url needs thin profiling that includes the whole pyramid
dispatch.
Pyramid CubicWeb provides facilities to profile requests as a
:func:`wsgi middleware <pyramid_cubicweb.profile.wsgi_profile>`, and a few
views that facilitate profiling of basic features.
The views and the wsgi middleware are activated when the 'profile' option is
given. This can be done on the command line
(:option:`cubicweb-ctl pyramid --profile`) or in the :ref:`pyramid_settings`.
Views
-----
The following routes and corresponding views are provided when profiling is on:
- ``/_profile/ping``: Reply 'ping' without doing anything else. See also
:func:`pyramid_cubicweb.profile.ping`.
- ``/_profile/cnx``: Reply 'ping' after getting a cnx. See also
:func:`pyramid_cubicweb.profile.cnx`.
Typical Usage
-------------
Let's say we want to measure the cost of having a ``cnx``.
- Start the application with profile enabled:
.. code-block:: console
$ cubicweb-ctl pyramid --no-daemon --profile --profile-dump-every 100
- Use 'ab' or any other http benchmark tool to throw a lot of requests:
.. code-block:: console
$ ab -c 1 -n 100 http://localhost:8080/_profile/cnx
- Analyse the results. I personnaly fancy SnakeViz_:
.. code-block:: console
$ snakeviz program.prof
.. _SnakeViz: http://jiffyclub.github.io/snakeviz/