Commit Graph

49 Commits

Author SHA1 Message Date
Karl Skewes b57d7f77e1 Use ok naming convention for map presence check 2019-07-16 10:06:29 +12:00
Karl Skewes 289dfce28a logger.go ExcludedPaths changed to slice of paths.
- `logger.go` convert slice of paths to map for quicker lookup
- `options.go` combines csv paths and pingpath into slice
2019-07-16 10:04:09 +12:00
Karl Skewes 08021429ea formatting and extra test
Can probably slim down the `ExcludePath` tests.
2019-07-16 09:43:48 +12:00
Karl Skewes c4f20fff3d Add exclude logging path option
Useful for excluding /ping endpoint to reduce log volume.
This is somewhat more verbose than a simple bool to disable logging of
the `/ping` endpoint.

Perhaps better to add `-silence-ping-logging` bool flag to `options.go` and
pass in the `/ping` endpoint as part of `logger` declaration in `options.go`.

Could be extended into a slice of paths similar to go-gin's `SkipPaths`:
https://github.com/gin-gonic/gin/blob/master/logger.go#L46
2019-07-16 09:43:47 +12:00
Karl Skewes ec97000169 Add silence ping logging flag
Add ability to silence logging of requests to /ping endpoint, reducing
log clutter

Pros:
- Don't have to change all handlers to set/not set silent ping logging
- Don't have to duplicate `loggingHandler` (this could be preferable yet)

Cons:
- Leaking oauth2proxy logic into `package logger`
- Defining default pingPath in two locations

Alternative:
- Add generic exclude path to `logger.go` and pass in `/ping`.
2019-07-16 09:42:24 +12:00
Joel Speed 6366690927
Fix gofmt for changed files 2019-06-15 11:34:00 +02:00
Joel Speed fb9616160e
Move logger to pkg/logger 2019-06-15 11:33:58 +02:00
Joel Speed d1ef14becc
Move cookie to pkg/encryption 2019-06-15 11:33:57 +02:00
Joel Speed 8027cc454e
Move api to pkg/requests 2019-06-08 07:40:43 +01:00
Joel Speed 4721da02f2 Ensure SessionStores can handle recieving cookies for the wrong implementation
(cherry picked from commit 131206cf41)
2019-06-05 00:11:42 -07:00
Joel Speed c1ae0ca807 Make sure the cookie exists before we clear the session in redis
(cherry picked from commit 6d7f0ab57d)
2019-06-05 00:11:42 -07:00
Joel Speed 22199fa417 Fix ticket retrieval with an invalid ticket
(cherry picked from commit 66bbf146ec)
2019-06-05 00:11:42 -07:00
Joel Speed 3155ada287 Ensure sessions are refreshable in redis session store
(cherry picked from commit 48edce3003)
2019-06-05 00:11:42 -07:00
Joel Speed 2e2327af6c Check SaveSession works when an existing session is present
(cherry picked from commit 9dc1a96d81)
2019-06-05 00:11:42 -07:00
Joel Speed 518c1d3e8e Add Redis sentinel compatibility
(cherry picked from commit ff36b61f8c)
2019-06-05 00:11:42 -07:00
Joel Speed 4f5dbace9f Refactor persistent tests with more Context 2019-06-05 00:10:51 -07:00
Joel Speed 7e7bfb5daf Stop miniredis after each test 2019-06-05 00:10:51 -07:00
Joel Speed bc3d75a2ed Run persistent tests with multiple option groups 2019-06-05 00:10:51 -07:00
Joel Speed 42f14a41d9 Clean up persistent SessionStore tests 2019-06-05 00:10:51 -07:00
Joel Speed a7693cc72a Tranfser all cookies in tests 2019-06-05 00:10:51 -07:00
Joel Speed 93df7d9132 Remove spurious comment 2019-06-05 00:10:51 -07:00
Joel Speed a6b8f7bde2 Rename expire -> expiration 2019-06-05 00:10:51 -07:00
Joel Speed 2f61e42c37 More obvious comment on CFB 2019-06-05 00:10:51 -07:00
Joel Speed f435fa68ab Make loadSessionFromString private 2019-06-05 00:10:51 -07:00
Joel Speed 130d03758d Fix comments on Redis options 2019-06-05 00:10:51 -07:00
Joel Speed b255ed56ef Sign cookies in the Redis Session store 2019-06-05 00:10:51 -07:00
Joel Speed 2c566a5f5b Use session CreatedAt for cookie timings 2019-06-05 00:10:51 -07:00
Joel Speed 296d989e58 Simplify redis store options 2019-06-05 00:10:51 -07:00
Brian Van Klaveren 42731f0617 Check cookie error and doc on cookie handling 2019-06-05 00:10:51 -07:00
Brian Van Klaveren b1bd3280db Add support for a redis session store 2019-06-05 00:10:51 -07:00
Brian Van Klaveren e881612ea6 Fix session_state type 2019-06-05 00:10:51 -07:00
Joel Speed 093f9da881
Move cipher creation to options and away from oauth2_proxy.go 2019-05-20 11:26:13 +02:00
Joel Speed 76bd23738f
Simplify cookie creation form *options.CookieOptions 2019-05-20 11:26:12 +02:00
Joel Speed c61f3a1c65
Use SessionStore for session in proxy 2019-05-20 11:26:10 +02:00
Joel Speed 34cbe0497c
Add CreatedAt to SessionState 2019-05-20 11:26:09 +02:00
Joel Speed fbee5eae16
Initialise SessionStore in Options 2019-05-20 11:26:04 +02:00
Joel Speed 1d29a0d094
Drop Session suffix from SessionStore methods 2019-05-18 13:10:12 +02:00
Joel Speed 65302ed34b
Rename RunCookieTests to RunSessionTests 2019-05-18 13:10:09 +02:00
Joel Speed 02e80b7aab
Check all information is encoded when cookie-secret set 2019-05-18 13:10:08 +02:00
Joel Speed 553cf89579
Add tests for saving and loading a session in SessionStore 2019-05-18 13:10:08 +02:00
Joel Speed 1c2ee715b3
Refactor session_store_test.go 2019-05-18 13:10:07 +02:00
Joel Speed b965f25c10
Implement SaveSession in Cookie SessionStore 2019-05-18 13:10:06 +02:00
Joel Speed 15a2cf8b9e
Implement ClearSession for cookie SessionStore 2019-05-18 13:10:05 +02:00
Joel Speed 8b3a3853eb
Implement LoadSession in Cookie SessionStore 2019-05-18 13:10:04 +02:00
Joel Speed 0204054005
Add tests to check cookies set by SessionStores 2019-05-18 13:10:02 +02:00
Joel Speed 6d162a1d78
Define session options and cookie session store types 2019-05-18 13:10:01 +02:00
Joel Speed 530acff38c
Add SessionStore interface 2019-05-18 13:10:00 +02:00
Joel Speed fd6655411b
Move cookie configuration to separate package 2019-05-18 13:09:59 +02:00
Joel Speed 2ab8a7d95d
Move SessionState to its own package 2019-05-18 13:09:56 +02:00