Commit Graph

2549 Commits

Author SHA1 Message Date
Min RK
7122ca1c24 add lock to prevent concurrent calls to check_routes 2018-04-05 12:09:06 +02:00
Min RK
1aa6dc6686 use semaphore to limit concurrent requests to the proxy
should limit timeout errors in case of flooding the proxy with requests

default concurrency is 10
2018-03-27 14:30:03 +02:00
Min RK
fdc4385e62 a bit more debug logging in proxy.check_routes
- log (info) that check_routes is starting
- log (debug) when fetching routes
2018-03-27 14:25:49 +02:00
Min RK
98c7fa919f avoid deleting routes for spawners
we previously checked if spawn_pending, but *any* transitional state should exclude them from the check
2018-03-27 10:43:43 +02:00
Min RK
6474a55302 Merge pull request #1749 from minrk/await-fixes
fix await of default authenticate
2018-03-26 13:34:01 +02:00
Min RK
8566d4c5ab fix await of default authenticate 2018-03-23 10:57:47 +01:00
Min RK
7bd4f6490c Merge pull request #1731 from vilhelmen/pam_account_check
Allow checking PAM account stack during PAM auth
2018-03-23 09:19:20 +01:00
Unknown
25373f510d Allow and enable PAM account stack checking
JH can now differentiate between authenticated and authorized users via PAM
This allows JH to respect PAM-accessible user access controls.

This also fixes missing PAMAuthenticator.encoding usages.
2018-03-22 15:53:28 -05:00
Min RK
82cab39e1c Merge pull request #1722 from minrk/login-spawn
Simplify root/login redirect behavior
2018-03-21 13:20:49 +01:00
Min RK
2bded65c7e update singleuser auth test url check
handle `?redirects`
2018-03-21 12:58:59 +01:00
Min RK
a3a0c60804 update redirect tests
now that redirects are not sensitive to state
2018-03-21 11:15:40 +01:00
Min RK
704b172887 update tests to reflect that login no longer implies spawn 2018-03-21 10:51:49 +01:00
Min RK
135717f8cb Merge pull request #1733 from willingc/spawner-comment
Add a spawner_class option to the reference example
2018-03-21 10:38:33 +01:00
Carol Willing
344a3e7b24 Add a spawner_class option to the reference example 2018-03-19 14:23:14 -07:00
Min RK
a0ee237ada Simplify root/login redirect behavior
- ignore spawner state when determining redirect destination
- remove implicit spawn from login handler (rely on redirect to user.url for spawn)
- settings.redirect_to_server determines if login sends users to /user/:name vs /hub/home
- visiting `/hub/` should result in the same destination regardless of login state or spawner state
2018-03-14 15:37:25 +01:00
Min RK
e81eb9a5f8 Merge pull request #1687 from minrk/external-oauth-basic
fix /api/user with oauth tokens
2018-03-13 16:11:28 +01:00
Min RK
98d3b538af Further clarifications in external-oauth example 2018-03-13 10:03:01 +01:00
Min RK
3614a0e368 move get_self test after get_users
to avoid changing expected state
2018-03-13 10:03:01 +01:00
Min RK
0421497b1e remove web.authenticated from /api/user handler
which prevents it from being used with oauth tokens
2018-03-13 10:03:01 +01:00
Min RK
8b3c2fa12f add whoami-oauth-basic example
implements oauth without inheriting from HubOAuthenticated

should be easier to parse for users with alternate oauth implementations
2018-03-13 10:03:01 +01:00
Min RK
a58bea6d93 Merge pull request #1696 from minrk/async-def
async/await syntax
2018-03-12 18:40:34 +01:00
Min RK
c7c41cd761 remove bad yield in test_api 2018-03-12 18:32:00 +01:00
Min RK
b282ec73c7 no_patience doesn't quite work with zero timeout anymore
thanks to asyncio always waiting a finite time on any await
2018-03-12 18:18:47 +01:00
Min RK
dad26be2c6 call it our own maybe_future
our version of gen.maybe_future that's fully tornado- and asyncio-compatible
2018-03-12 18:18:47 +01:00
Min RK
58d602e549 require Python 3.5 for async/await syntax 2018-03-12 18:18:46 +01:00
Min RK
5e14904205 fix a few unawaited calls to coroutines
asyncio is less forgiving about these than tornado
2018-03-12 18:18:46 +01:00
Min RK
97293ab7ce use asyncio.ensure_future to start coroutines immediately
asyncio has different coroutine start mechanics than tornado

tornado starts coroutines immediately,
whereas asyncio doesn't until they are scheduled with either ensure_future or waited upon.
2018-03-12 18:18:46 +01:00
Min RK
b6f634368c add utils.awaitable replacement for gen.maybe_future
gen.maybe_future doesn't accept asyncio coroutines
and asyncio.ensure_future doesn't accept *tornado* coroutines, so do our own thing
2018-03-12 18:18:46 +01:00
Min RK
7b4de150cc add awaitable wrapper
to replace gen.maybe_future
2018-03-12 18:18:46 +01:00
Min RK
7a268c94b0 bulk find/replace async def and await
- `@gen.coroutine def` -> `async def`
- `yield future` -> `await future`

needs some fine tuning, but this is the big one
2018-03-12 18:18:46 +01:00
Carol Willing
7a1fa78632 Merge pull request #1660 from minrk/spawn-form-access
expand admin[-access] support
2018-03-12 07:34:07 -07:00
Min RK
19f02da64d should_spawn=False when current_user is None (not logged in) 2018-03-12 14:23:57 +01:00
Min RK
5bf1aac9cb get the right render form when spawning for another user 2018-03-12 14:23:57 +01:00
Min RK
0ae034083c fix spawn admin tests 2018-03-12 14:23:57 +01:00
Min RK
5010af941b 'start server' on admin page opens spawn form
if spawn form is registered and admin access is enabled

cannot use spawn form on behalf of users without admin_access
2018-03-12 14:23:52 +01:00
Min RK
015df7e060 unify mocking of tornado_settings
ensures that everywhere we access settings, it's the same dict
and not a copy
2018-03-12 14:23:00 +01:00
Min RK
e025d58f6e fix mocks for spawner config 2018-03-12 14:23:00 +01:00
Min RK
b151d333d3 show who you're spawning for if it's not yourself
on the spawn page
2018-03-12 14:23:00 +01:00
Min RK
304c005a85 fix priority of template namespace
allow overrides
2018-03-12 14:23:00 +01:00
Min RK
e2591e8e36 fix user construction in add_user test function
ensures same construction is used as the real app
2018-03-12 14:23:00 +01:00
Min RK
f3c22cb6d0 test spawn-form for other users 2018-03-12 14:23:00 +01:00
Min RK
b2527984bc use find_user in POST /spawn/:user
so we get a 404 for missing users
2018-03-12 14:23:00 +01:00
Min RK
b8d2271191 add /spawn/:user for spawning servers for a specific user
part of admin-access
2018-03-12 14:23:00 +01:00
Min RK
b8978b0235 allow admin-access to launch servers via /user/:name
rather than checking if user.name == name,
check more directly if user should have access to :name's server
2018-03-12 14:23:00 +01:00
Min RK
63ef6419cd add admin_access fixture 2018-03-12 14:23:00 +01:00
Min RK
25dc429455 ensure app.tornado_settings is the real tornado settings in mocking
enables updates to settings during testing
2018-03-12 14:23:00 +01:00
Carol Willing
7550e63fd0 Merge pull request #1700 from minrk/cookie-name
cleanup some cookie names
2018-03-07 08:34:25 -08:00
Carol Willing
0561968fac Merge pull request #1694 from minrk/sigusr
add SIGINFO handler
2018-03-07 08:32:08 -08:00
Min RK
7811bf518b cleanup some cookie names
In part to cleanup a few remnants of early design where jupyterhub was ‘jupyter-hub’ instead of ‘jupyterhub’.
Should also clarify to some degree what the cookies are for.

- hub login cookie is now ‘jupyterhub-hub-login’ instead of ‘jupyter-hub-token’
- user server cookie is now ‘jupyterhub-user-<name>’ instead of ‘user-name’ to keep jupyterhub prefix on all cookies

All cookies at this point:

- jupyterhub-session-id on /
- jupyterhub-hub-login on /hub/ (the main login cookie)
- jupyterhub-services on /services/
- jupyterhub-user-<name> on /user/:name
- jupyterhub-user-<name>-oauth-state on /user/:name during oauth
2018-03-05 10:55:07 +01:00
Min RK
bc7116ad94 Merge pull request #1691 from minrk/async-pam-auth
talk to PAM in a thread
2018-03-02 11:40:18 +01:00