Commit 24e3714

mo <mo@mokhan.ca>
2018-10-29 01:31:16
document scim resource types.
1 parent 3265df8
app/controllers/scim/v2/resource_types_controller.rb
@@ -3,6 +3,8 @@
 module Scim
   module V2
     class ResourceTypesController < ::Scim::Controller
+      skip_before_action :authenticate!
+
       def index
         render status: :ok
       end
doc/_includes/get-well-known-oauth-authorization-server.html
@@ -29,7 +29,7 @@ Response:
 Content-Type: application/json; charset=utf-8
 Etag: W/"7f1eee6ebfc3008c58d630548ed1707c"
 Cache-Control: max-age=0, private, must-revalidate
-X-Request-Id: b83dfbca-2456-47af-95a9-438528888e6b
+X-Request-Id: ecce7aae-c9da-4fd4-bd2f-758658bfc3a6
 Transfer-Encoding: chunked
 ```
 ```json
doc/_includes/oauth-dynamic-client-registration.html
@@ -6,7 +6,7 @@ Example curl request:
 ```bash
 $ curl http://localhost:5000/oauth/clients \
   -X POST \
-  -d '{"redirect_uris":["https://corkery.co.uk","https://nienow.biz"],"client_name":"Phil Bergnaum","token_endpoint_auth_method":"client_secret_basic","logo_uri":"https://stracke.biz","jwks_uri":"https://huel.biz"}' \
+  -d '{"redirect_uris":["https://turnerking.name","https://stoltenberg.co.uk"],"client_name":"Kenna Raynor","token_endpoint_auth_method":"client_secret_basic","logo_uri":"https://kub.ca","jwks_uri":"https://kleinbosco.info"}' \
   -H "Accept: application/json" \
   -H "Content-Type: application/json" \
   -H "User-Agent: net/hippie 0.1.9" \
@@ -22,13 +22,13 @@ Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
 ```json
 {
   "redirect_uris": [
-    "https://corkery.co.uk",
-    "https://nienow.biz"
+    "https://turnerking.name",
+    "https://stoltenberg.co.uk"
   ],
-  "client_name": "Phil Bergnaum",
+  "client_name": "Kenna Raynor",
   "token_endpoint_auth_method": "client_secret_basic",
-  "logo_uri": "https://stracke.biz",
-  "jwks_uri": "https://huel.biz"
+  "logo_uri": "https://kub.ca",
+  "jwks_uri": "https://kleinbosco.info"
 }
 ```
 Response:
@@ -38,18 +38,18 @@ Response:
 Cache-Control: no-cache, no-store
 Pragma: no-cache
 Content-Type: application/json; charset=utf-8
-X-Request-Id: 788d0eec-b387-4180-b17e-07fa682d50c3
+X-Request-Id: ee26549e-25d4-4d55-ad8d-d0daf2580edc
 Transfer-Encoding: chunked
 ```
 ```json
 {
-  "client_id": "c5a7768d-e55d-4fa8-8f4f-b6e5dc853554",
-  "client_secret": "n1VFy1YXCy2vjyrFwVktq6df",
-  "client_id_issued_at": 1540776259,
+  "client_id": "0f7d01f2-6581-4f99-a9d6-ffc23322005e",
+  "client_secret": "RZEsEaat1mvBFiAJXno8dnph",
+  "client_id_issued_at": 1540776653,
   "client_secret_expires_at": 0,
   "redirect_uris": [
-    "https://corkery.co.uk",
-    "https://nienow.biz"
+    "https://turnerking.name",
+    "https://stoltenberg.co.uk"
   ],
   "grant_types": [
     "authorization_code",
@@ -58,10 +58,10 @@ Transfer-Encoding: chunked
     "password",
     "urn:ietf:params:oauth:grant-type:saml2-bearer"
   ],
-  "client_name": "Phil Bergnaum",
+  "client_name": "Kenna Raynor",
   "token_endpoint_auth_method": "client_secret_basic",
-  "logo_uri": "https://stracke.biz",
-  "jwks_uri": "https://huel.biz"
+  "logo_uri": "https://kub.ca",
+  "jwks_uri": "https://kleinbosco.info"
 }
 ```
 
doc/_includes/oauth-token-introspection.html
@@ -6,11 +6,11 @@ Example curl request:
 ```bash
 $ curl http://localhost:5000/oauth/tokens/introspect \
   -X POST \
-  -d '{"token":"eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3Nzk4NTksImlhdCI6MTU0MDc3NjI1OSwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3Q6NTAwMC9tZXRhZGF0YSIsIm5iZiI6MTU0MDc3NjI1OSwiYXVkIjoiOWFlMjY1NDQtMmM4NS00ODNmLTgxMDctYzhlMDgzNzkzZDBkIiwianRpIjoiNjYwZjQ4OGYtOGZhZi00NTQ0LTg5OTYtZmNlNWQ5MmZjMjk1Iiwic3ViIjoiMzVkMWY0MDctYzc0Mi00ZTA5LThjMzQtNDI3OWNkMDA4NjMwIiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.spSKnjzdm4b9d4jRk68CSgYlJXk5v2QHuQPYsrFtcQkV6lvWaNoLYz8XGq4hOXTHPkZtG9a3w91ATtNHeJwqKeihmoh2JFNsmap3_p4LNAr8iDzjlQjpOSF-fxs0k5c5fhQAgxz5foWmygETYRNpsgUfG8xIR60wbEvLxFc5M1oZas7Ha5OqcAA1YPy4LL3CICqEsYl8JG17HDi6OflNebyT-nkzUqVjIEdlbPkC2k1MSDQnedVNypx5s93zhe3ZgB_Ixr-_BMKvwuAqzG1aXNRVyHxFS8581LLfESlq2xlYiFC_Nfu2pL6h8-ZzZ6u57We2X0iF2clGRMd-C-xR_A"}' \
+  -d '{"token":"eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3ODAyNTMsImlhdCI6MTU0MDc3NjY1NCwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3Q6NTAwMC9tZXRhZGF0YSIsIm5iZiI6MTU0MDc3NjY1NCwiYXVkIjoiMTNhNDBhYjUtZDY4NC00NjkyLWJiYTItYmRiOGUwZmUwODBjIiwianRpIjoiN2ExNWM1MmYtZjQ4OC00ZjA2LTk1NmQtZWNiYWYyZTNjMmJmIiwic3ViIjoiZDc5ZjhiYjgtMmNiZi00ZjU2LTgxNDgtYjU0M2U3ZGMxNTJmIiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.RaAAFIr5nE78hszmA_taqApJr2c5LyE_DwIUU1Es7ojYAmPABaMY4zOiASD8i2_BnPJ6gVNTtnyen-qvgqWuglh0__dt3_5kb83JqVn_QTl6FEQg96FBD2kst3yZQyxspJlvnDwsvVlQVfeiJx6NblhzEzLESiQEhNbJ0YLz1Eq3mpPmhrNa0JaCIWhKEB7desYl-UHElDv8RhpfZsWG8sXP1e3KlBjolC1AzvbxUY_psFyhyc52VclwEJrjwZ6KUZt7E2TulQMbgs1bp-MifksCpkd_RJIgH4umhIQtWpd-cvsyUmDOsLQJ-liqQWGpX8idiIXXHNxiwMftAG4yJw"}' \
   -H "Accept: application/json" \
   -H "Content-Type: application/json" \
   -H "User-Agent: net/hippie 0.1.9" \
-  -H "Authorization: Basic YTM0MzQ2MDktOGNiMy00MDlmLThhZDgtZWRmYWI0YjAyNGU2Ok1KU2h5ZmRFOFpMNWl0ZzlWdFhROGdXYQ==" \
+  -H "Authorization: Basic ZThkYmQwMjMtYjkzOC00ZDIwLWJlOGUtNDg5YTQ1M2E5MTgxOmQzM0NVNEJLZjdCNE5IeW1UNHRiZjZmUA==" \
   -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
 ```
 Request:
@@ -18,12 +18,12 @@ Request:
 Accept: application/json
 Content-Type: application/json
 User-Agent: net/hippie 0.1.9
-Authorization: Basic YTM0MzQ2MDktOGNiMy00MDlmLThhZDgtZWRmYWI0YjAyNGU2Ok1KU2h5ZmRFOFpMNWl0ZzlWdFhROGdXYQ==
+Authorization: Basic ZThkYmQwMjMtYjkzOC00ZDIwLWJlOGUtNDg5YTQ1M2E5MTgxOmQzM0NVNEJLZjdCNE5IeW1UNHRiZjZmUA==
 Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
 ```
 ```json
 {
-  "token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3Nzk4NTksImlhdCI6MTU0MDc3NjI1OSwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3Q6NTAwMC9tZXRhZGF0YSIsIm5iZiI6MTU0MDc3NjI1OSwiYXVkIjoiOWFlMjY1NDQtMmM4NS00ODNmLTgxMDctYzhlMDgzNzkzZDBkIiwianRpIjoiNjYwZjQ4OGYtOGZhZi00NTQ0LTg5OTYtZmNlNWQ5MmZjMjk1Iiwic3ViIjoiMzVkMWY0MDctYzc0Mi00ZTA5LThjMzQtNDI3OWNkMDA4NjMwIiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.spSKnjzdm4b9d4jRk68CSgYlJXk5v2QHuQPYsrFtcQkV6lvWaNoLYz8XGq4hOXTHPkZtG9a3w91ATtNHeJwqKeihmoh2JFNsmap3_p4LNAr8iDzjlQjpOSF-fxs0k5c5fhQAgxz5foWmygETYRNpsgUfG8xIR60wbEvLxFc5M1oZas7Ha5OqcAA1YPy4LL3CICqEsYl8JG17HDi6OflNebyT-nkzUqVjIEdlbPkC2k1MSDQnedVNypx5s93zhe3ZgB_Ixr-_BMKvwuAqzG1aXNRVyHxFS8581LLfESlq2xlYiFC_Nfu2pL6h8-ZzZ6u57We2X0iF2clGRMd-C-xR_A"
+  "token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3ODAyNTMsImlhdCI6MTU0MDc3NjY1NCwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3Q6NTAwMC9tZXRhZGF0YSIsIm5iZiI6MTU0MDc3NjY1NCwiYXVkIjoiMTNhNDBhYjUtZDY4NC00NjkyLWJiYTItYmRiOGUwZmUwODBjIiwianRpIjoiN2ExNWM1MmYtZjQ4OC00ZjA2LTk1NmQtZWNiYWYyZTNjMmJmIiwic3ViIjoiZDc5ZjhiYjgtMmNiZi00ZjU2LTgxNDgtYjU0M2U3ZGMxNTJmIiwidG9rZW5fdHlwZSI6ImFjY2VzcyJ9.RaAAFIr5nE78hszmA_taqApJr2c5LyE_DwIUU1Es7ojYAmPABaMY4zOiASD8i2_BnPJ6gVNTtnyen-qvgqWuglh0__dt3_5kb83JqVn_QTl6FEQg96FBD2kst3yZQyxspJlvnDwsvVlQVfeiJx6NblhzEzLESiQEhNbJ0YLz1Eq3mpPmhrNa0JaCIWhKEB7desYl-UHElDv8RhpfZsWG8sXP1e3KlBjolC1AzvbxUY_psFyhyc52VclwEJrjwZ6KUZt7E2TulQMbgs1bp-MifksCpkd_RJIgH4umhIQtWpd-cvsyUmDOsLQJ-liqQWGpX8idiIXXHNxiwMftAG4yJw"
 }
 ```
 Response:
@@ -33,7 +33,7 @@ Response:
 Content-Type: application/json; charset=utf-8
 Etag: W/"78b558bd2357fbe7ad52804fb3af1b86"
 Cache-Control: max-age=0, private, must-revalidate
-X-Request-Id: ff063449-f7e4-47a6-96aa-a867bfa3c647
+X-Request-Id: 81493a57-9e3c-4daf-a21e-90c4580fa083
 Transfer-Encoding: chunked
 ```
 ```json
doc/_includes/oauth-tokens-authorization-code.html
@@ -6,11 +6,11 @@ Example curl request:
 ```bash
 $ curl http://localhost:5000/oauth/tokens \
   -X POST \
-  -d '{"grant_type":"authorization_code","code":"VVpRWyxA67piENzSwhv3KzbV"}' \
+  -d '{"grant_type":"authorization_code","code":"hV9ff5yEJD5H9EoMx5RGRYSN"}' \
   -H "Accept: application/json" \
   -H "Content-Type: application/json" \
   -H "User-Agent: net/hippie 0.1.9" \
-  -H "Authorization: Basic NDBmNzJjMDAtNGRjMC00MTcwLWJlNTItMzBjNjZlYzQwMDFjOkxWSm5CQTNHRXZUSjM0V3NwcDg0VGFyeQ==" \
+  -H "Authorization: Basic YTY1YmM0ODktMGVhMS00NjkyLTk5ODItYzNkNGVmNWU4MDVmOjFRMU1ja2lXWmtIZjI0R0FWZEtIekw1Yw==" \
   -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
 ```
 Request:
@@ -18,13 +18,13 @@ Request:
 Accept: application/json
 Content-Type: application/json
 User-Agent: net/hippie 0.1.9
-Authorization: Basic NDBmNzJjMDAtNGRjMC00MTcwLWJlNTItMzBjNjZlYzQwMDFjOkxWSm5CQTNHRXZUSjM0V3NwcDg0VGFyeQ==
+Authorization: Basic YTY1YmM0ODktMGVhMS00NjkyLTk5ODItYzNkNGVmNWU4MDVmOjFRMU1ja2lXWmtIZjI0R0FWZEtIekw1Yw==
 Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
 ```
 ```json
 {
   "grant_type": "authorization_code",
-  "code": "VVpRWyxA67piENzSwhv3KzbV"
+  "code": "hV9ff5yEJD5H9EoMx5RGRYSN"
 }
 ```
 Response:
@@ -34,16 +34,16 @@ Response:
 Cache-Control: private, no-store
 Pragma: no-cache
 Content-Type: application/json; charset=utf-8
-Etag: W/"05a8d3a9e95c919ef68630c28a2a19be"
-X-Request-Id: 3d7976b9-0d66-4b41-ac99-bbfbd3a42eb3
+Etag: W/"e09082d6cdb21e59e3f084be07faed87"
+X-Request-Id: fec54ac3-b663-4565-be5c-619dc4224365
 Transfer-Encoding: chunked
 ```
 ```json
 {
-  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3Nzk4NTgsImlhdCI6MTU0MDc3NjI1OCwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzYyNTgsImF1ZCI6IjQwZjcyYzAwLTRkYzAtNDE3MC1iZTUyLTMwYzY2ZWM0MDAxYyIsImp0aSI6Ijg4Y2EyOGFiLTQ4YmUtNDExMC1hMWNhLTVhMGMzNDdmMjI0YSIsInN1YiI6Ijk0NzQxYTU5LWU3MTAtNDUyMi1hM2FhLTA5ZWRiNTIxZWQ0MSIsInRva2VuX3R5cGUiOiJhY2Nlc3MifQ.lftxE6Xrac8gOCjKwXrdHI_QiigsaWv8VXjgnWW8donGBAb9FLMM0TfJsa287nsGoRub_yQ4ivq7j0-ZqPbDbmfeQ8OVDe_6Fd2qaxGrFdJ9RH_-GcVzUHlyXn5Bya84k2AsGkhPcRHQPOD_0vbWqXtvjzQ-q1PRg5Fg5AE7apgR5J3eQTsPrxpUNeXaIknfvgD5E3x8HVZgmlRwitBE29cza9BJ9LdBJoCAH-pYBlb0seyqk6FJ39g2aksFoBxHOoffJoddb-d4fw_eGL3NspqgqDJxFueZF-czTXuwqh-nfK3k9vlwZBx2OhhWdCVPFApS7NU0kahvmEtYFNi_VA",
+  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3ODAyNTIsImlhdCI6MTU0MDc3NjY1MiwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzY2NTIsImF1ZCI6ImE2NWJjNDg5LTBlYTEtNDY5Mi05OTgyLWMzZDRlZjVlODA1ZiIsImp0aSI6ImQwODUzYTQ1LTRiZjgtNDFkYS1iY2I4LTc2MGY2M2ViOTczNCIsInN1YiI6ImRmMjNhMWM0LTM1MmUtNDliYy04MjVjLTJmYTc3NTVlNWNiMCIsInRva2VuX3R5cGUiOiJhY2Nlc3MifQ.eDik1b7Td3AZMA-I_iATAB1U3Dtt2-DYMItP-D3BRxODQnlkCYjbSbj32A3jCNaybj-aby0xKINwgwFeeNQ55AA-6LT5nU6xbcygLA9269tJUE4DqLdQg40zqoEVuKWPrURvwHcbf_WufYAQKSax9SyJnqqYndAbdGCQlESrA8Qu0Vh-vjNQXYFKvPLoegQTejuUjzDjdc4UmQKWd3xYASQ3i3o3dKmSTV-9BxUmXrVgX1qRPRRRjLkAhTqlzCZ2pX194d-2zmQnH4U-J7yMnHp7ff34qBGenEArTgH73g0wfdzeTO5_DFEXdYaFgZboHyzhI7HaXXn5RwWP0uL4yA",
   "token_type": "Bearer",
   "expires_in": 3600,
-  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA4NjI2NTgsImlhdCI6MTU0MDc3NjI1OCwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzYyNTgsImF1ZCI6IjQwZjcyYzAwLTRkYzAtNDE3MC1iZTUyLTMwYzY2ZWM0MDAxYyIsImp0aSI6IjhkODMyMTk1LTBjYmYtNDk2My05ODkyLTlmOTQ4YzgxZDA2MCIsInN1YiI6Ijk0NzQxYTU5LWU3MTAtNDUyMi1hM2FhLTA5ZWRiNTIxZWQ0MSIsInRva2VuX3R5cGUiOiJyZWZyZXNoIn0.qe5TRkpBkgWF63fuKlr4aDqOcG8r4rpiv0aAlLkloLPGmv3M3NgqSItrbYXFH48ojyLVL7eqfkYA5CUh_qbHrumU3GL4uk9Elf0K9ln7O5YC565SesBNymbnl_q7kCqyTrMGLS9KJ1iCC9A-v8pqMeSdyfRnFdku8-ejtW4vjX0AsLDOxmVK7M01xQFeNvxM6bOBopJp5Dw0jv_1TOv8ifGyPNeG8ziBc3Qs6XOPXmNkfiZnpWOKh4a9N-TWBe7F7SvFulIhEsiPB9Aw0bsPVRrFE_MP6oxhBsTux8apvDERk24oEnSJOH09CSQ7ujwedbt59RmTf-2HvWCaacsmdA"
+  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA4NjMwNTIsImlhdCI6MTU0MDc3NjY1MiwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzY2NTIsImF1ZCI6ImE2NWJjNDg5LTBlYTEtNDY5Mi05OTgyLWMzZDRlZjVlODA1ZiIsImp0aSI6IjNhMmRmZDhiLTdjOGUtNGY1NC05Mzk0LTY0MThkNWU5YjRhNSIsInN1YiI6ImRmMjNhMWM0LTM1MmUtNDliYy04MjVjLTJmYTc3NTVlNWNiMCIsInRva2VuX3R5cGUiOiJyZWZyZXNoIn0.On0-azTdyUTKh-Vx_-pXL4W6uaEg1oXCa6TO4cw1X30PWDIMWcU3GfDVemRnTSnHHf44Hrd5ERb6vhX4-1J8eBmO3Udm0E6OaTpeJH-XL6ZTJMxxXuhDxhnOPBiAEYTNfHkS48Cixk_6AjwmvNdG0JOzRlmwXJ_HmqFoDrd1OeL40i9nB0XMO6RuerbMOx6d5cSdYfBekAofS9QnWjPixSpA2SN8rUiyVZSTl5a7y3hMRx2H877We04x5EgQ9jsOXlMboDXSZPc1ODbeFfJoMaMffZa7-cMIqig97J9xXhXOewdxgfEe8PFnzwu1w2XvPSYHBNtGEu2Sa7YC89WZIg"
 }
 ```
 
doc/_includes/oauth-tokens-client-credentials.html
@@ -10,7 +10,7 @@ $ curl http://localhost:5000/oauth/tokens \
   -H "Accept: application/json" \
   -H "Content-Type: application/json" \
   -H "User-Agent: net/hippie 0.1.9" \
-  -H "Authorization: Basic ZTFmYTVmZTktZWQ4Mi00ZTdhLTk1ZmQtODllYjgxYTFjY2NlOjRnNkcyNWgzM1FWU0JrSmtoQ1ZhWE5ocQ==" \
+  -H "Authorization: Basic NDRhODMwNmItZTdiMS00MWNkLTkzMjktMTU1MmY2YTRhMjhlOmdtaG1xMllreXVETDd6bmtlZnlicUNtUw==" \
   -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
 ```
 Request:
@@ -18,7 +18,7 @@ Request:
 Accept: application/json
 Content-Type: application/json
 User-Agent: net/hippie 0.1.9
-Authorization: Basic ZTFmYTVmZTktZWQ4Mi00ZTdhLTk1ZmQtODllYjgxYTFjY2NlOjRnNkcyNWgzM1FWU0JrSmtoQ1ZhWE5ocQ==
+Authorization: Basic NDRhODMwNmItZTdiMS00MWNkLTkzMjktMTU1MmY2YTRhMjhlOmdtaG1xMllreXVETDd6bmtlZnlicUNtUw==
 Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
 ```
 ```json
@@ -33,13 +33,13 @@ Response:
 Cache-Control: private, no-store
 Pragma: no-cache
 Content-Type: application/json; charset=utf-8
-Etag: W/"858345d8b3596d78b767036d3939a2f0"
-X-Request-Id: e690c1fa-0898-4641-886f-ad76d7a6d014
+Etag: W/"2b68c6818487e11d107ae812ad7d2089"
+X-Request-Id: 2a614b6e-6cd0-45fa-ba7e-ce0d118c7434
 Transfer-Encoding: chunked
 ```
 ```json
 {
-  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3Nzk4NTgsImlhdCI6MTU0MDc3NjI1OCwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzYyNTgsImF1ZCI6ImUxZmE1ZmU5LWVkODItNGU3YS05NWZkLTg5ZWI4MWExY2NjZSIsImp0aSI6ImMwMTVkODk3LTEzZTYtNGVkOS05MWJlLTBkZDczYjA5OGIyOSIsInN1YiI6ImUxZmE1ZmU5LWVkODItNGU3YS05NWZkLTg5ZWI4MWExY2NjZSIsInRva2VuX3R5cGUiOiJhY2Nlc3MifQ.GoyLi2Wa3XSAeOjV3K49xVZTlc8iseXN4Tzi7HtOzNUQ5actG1y3KoDP1AOtdJIVDzcVmP_8Q3EFvFBCik-iMwp9GFxbKCOkS8fvFAFGaEWDE36IEXAYOAHZ5g3mWDZoZ_Ovtf8SbQ_5Z-rf2h3iFCib4GPdwKzQ53xK7Ba_0yjy37K_IID-c2G8ibika6SkEV3ygP2TyuiKbOYSnX4WrvSdsdKnegAdxM-s-B_f75Nh4YYPvyTWK4-7w9p_XWN7WOzgNsN2NnEGZyi4hePl7aBGgsVJb8fJjxIdTTHQXkalrwpB814eyghb1g1yLlfel1Di1Efup1ONooUEloE08Q",
+  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3ODAyNTIsImlhdCI6MTU0MDc3NjY1MiwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzY2NTIsImF1ZCI6IjQ0YTgzMDZiLWU3YjEtNDFjZC05MzI5LTE1NTJmNmE0YTI4ZSIsImp0aSI6Ijk4M2E2MzYyLWZiOTMtNDQ2OC1hMzI3LTJlMzIwNjUwZTMwNyIsInN1YiI6IjQ0YTgzMDZiLWU3YjEtNDFjZC05MzI5LTE1NTJmNmE0YTI4ZSIsInRva2VuX3R5cGUiOiJhY2Nlc3MifQ.a45vQg-7A10nRpm10-7V-IbH5PFhl3OMwOn7nVaWBM5T75UzGWM96ZAlejso8-2wfPNRI_yrx6CEB9tJ-1oKe4uxAquArPmqTZ45LUnFVaCiVWoyT_3emUM7Ej14t5U3L755iR_jhooWfxdaDdTFzTlgHy5wlRg6CBjnHpk7Ng8pv-d7Bfio5BvUmDPhjxDd3VV4F5aIf2l9HRVTU_PJDGYRTqArcsalAqpNPipeMHJzVf_AqN-oOo6M81R0nP4tjSGoqKeZL2JhVytq6acdPNjxce90A2K4a9fSGp-fkGlTuPENUxLJJVonYR5N0oaBHZfC9HNF-qsKAw7ybSjwwg",
   "token_type": "Bearer",
   "expires_in": 3600
 }
doc/_includes/oauth-tokens-password.html
@@ -6,11 +6,11 @@ Example curl request:
 ```bash
 $ curl http://localhost:5000/oauth/tokens \
   -X POST \
-  -d '{"grant_type":"password","username":"venice_franecki@whitecummerata.biz","password":"AiBwefUM0dkjgyU"}' \
+  -d '{"grant_type":"password","username":"nam_weber@skiles.com","password":"lYrrwBRbeYls6FEM"}' \
   -H "Accept: application/json" \
   -H "Content-Type: application/json" \
   -H "User-Agent: net/hippie 0.1.9" \
-  -H "Authorization: Basic NzlkMDg4ZjktMjI0YS00NTIxLThmNTctMGIyZjM1ZTlhNjc3OjZjZmlDYTlqRmpENzNEV3JYanI3U1ZyUA==" \
+  -H "Authorization: Basic ZDMzZWE4ZmMtMTExYy00Y2RjLWIxMzYtMGMzNjBhNzhhZjM0OjZveVo4cDJpSEFiYzRrZUVxRVBFOWprUA==" \
   -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
 ```
 Request:
@@ -18,14 +18,14 @@ Request:
 Accept: application/json
 Content-Type: application/json
 User-Agent: net/hippie 0.1.9
-Authorization: Basic NzlkMDg4ZjktMjI0YS00NTIxLThmNTctMGIyZjM1ZTlhNjc3OjZjZmlDYTlqRmpENzNEV3JYanI3U1ZyUA==
+Authorization: Basic ZDMzZWE4ZmMtMTExYy00Y2RjLWIxMzYtMGMzNjBhNzhhZjM0OjZveVo4cDJpSEFiYzRrZUVxRVBFOWprUA==
 Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
 ```
 ```json
 {
   "grant_type": "password",
-  "username": "venice_franecki@whitecummerata.biz",
-  "password": "AiBwefUM0dkjgyU"
+  "username": "nam_weber@skiles.com",
+  "password": "lYrrwBRbeYls6FEM"
 }
 ```
 Response:
@@ -35,16 +35,16 @@ Response:
 Cache-Control: private, no-store
 Pragma: no-cache
 Content-Type: application/json; charset=utf-8
-Etag: W/"db03dcb8895836db57f6b529ae027f61"
-X-Request-Id: 504d5548-7b74-4c75-9d01-aceef8ede3e9
+Etag: W/"cbc93469ceacc8fdf1c7e4e8f5009a89"
+X-Request-Id: a22b4125-0084-425a-8e2b-741378a16d2c
 Transfer-Encoding: chunked
 ```
 ```json
 {
-  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3Nzk4NTgsImlhdCI6MTU0MDc3NjI1OCwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzYyNTgsImF1ZCI6Ijc5ZDA4OGY5LTIyNGEtNDUyMS04ZjU3LTBiMmYzNWU5YTY3NyIsImp0aSI6IjA4MjkwMGY1LTlhYmMtNDI0Ny05MzhhLWRhNzM2MGZhZWY2NCIsInN1YiI6ImQ4OTk4MWVhLTBmNGItNDY4YS05MDk4LWUwMjI3YzM5YzMzZiIsInRva2VuX3R5cGUiOiJhY2Nlc3MifQ.ffutT86NZVN7CGJTJkSgv9Y9z12Ac7G3VJuqr6XplQqlIDupVSGOkxNW1wEupKRodsMjT_OyZ5JaaeHpy-DkH5pgIyrduc2mtZm88YeJGLtB_H9hfDggf3L8LjVp0JGaXHIazIFopGP4lffr_hS3LfhkGzeHEz0C6nOA4TqmubDelMtrqMC97rmQ3J50se0NWXxNZUtWGEmhoHooFOqgfP0a3ikFMjpr6QJtSMKSUIaCr8bI1wpkWgHyW1iy3JCXzNZJWQ6sN3T75BkAtYT4jaLuXuHneIuOUgTo766ruUQXLnB9Ekh0Zxu8GZH_0Gp-XCPNgNdaCPZJ8gWRgnVWMQ",
+  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3ODAyNTIsImlhdCI6MTU0MDc3NjY1MiwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzY2NTIsImF1ZCI6ImQzM2VhOGZjLTExMWMtNGNkYy1iMTM2LTBjMzYwYTc4YWYzNCIsImp0aSI6Ijc1MWE5MzJhLWM0NzctNGFhNi1hOTFjLWE0MTdlYTY0YmFhYiIsInN1YiI6Ijg2NTg2MGY2LTZiNTMtNDMzNS1hMzZiLTc1MDZjZGJjZjc2MCIsInRva2VuX3R5cGUiOiJhY2Nlc3MifQ.aYybc1gyGWvRFXTCldlJGm2dIFhnWzwbJIJ-_xIRiZsVYIGJHsEUN9h8hu6CQzvj7rmaLg48deTlROlCEQA0NBvBO6ar3TZpTJ-1cN2q1qKlDGce-v_yKoRxygvmpNXCwI7CzwrrJ8RTIUqOLb_-F7cPb1GXSTKWwS4WH293Hr-oMwQLkyFGM5qClSpH3Duj2iYUO9wgehz5Uz4yW_pwFAd-if4B6ZqDz42OHHeFrreB-ErfZcfHBW_QqTmiZmyU1_DbaGL0Att5RyFRugN7_o8WUHfcax8QyUOJJ5ZLRu1EnPhCFXRM57wFTrotsAosnHOuK2JOvSQNWc2tvgaHsQ",
   "token_type": "Bearer",
   "expires_in": 3600,
-  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA4NjI2NTgsImlhdCI6MTU0MDc3NjI1OCwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzYyNTgsImF1ZCI6Ijc5ZDA4OGY5LTIyNGEtNDUyMS04ZjU3LTBiMmYzNWU5YTY3NyIsImp0aSI6ImZlZWZiZTg4LWQ3YmEtNDg0My1iMWRiLTk1MzdlNDVmOTJjNCIsInN1YiI6ImQ4OTk4MWVhLTBmNGItNDY4YS05MDk4LWUwMjI3YzM5YzMzZiIsInRva2VuX3R5cGUiOiJyZWZyZXNoIn0.a7S2z64h1FwtmSNEHIXWFiKQ2Dm0XYP2m1SMGMm8GxXBQXL9lSEecTJUjpQiICjtv4rv8p2PL7hGaImmHGz4e46ZXtUAfButHPCJ8ucOFgE3cADnv9mfgWoPcfkr3_J5knCiRy48lVk5G0Ek-Q0NDdGdPpThW1qZC3UEYyWX8aO36CVBtjYGvhvtmIpYs1l1ocd-sfbyycu4OiqEFk5XQXAdjSLgS7kVRe-3Y04sO-UF7jlbtqJYjkeDKxXPmc7k7WdRaCzQPM4jv-djjy1d26hVRH-MEUA1xt0XDJJ3vwGf_dByjDhfWEW8EGi987-LMnEmjdQrm4TSQQuk0bo_gg"
+  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA4NjMwNTIsImlhdCI6MTU0MDc3NjY1MiwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzY2NTIsImF1ZCI6ImQzM2VhOGZjLTExMWMtNGNkYy1iMTM2LTBjMzYwYTc4YWYzNCIsImp0aSI6ImM4NjdiODFmLWNlY2ItNDI4MC04Mjg3LWUyZWUzODQ0OWJjMSIsInN1YiI6Ijg2NTg2MGY2LTZiNTMtNDMzNS1hMzZiLTc1MDZjZGJjZjc2MCIsInRva2VuX3R5cGUiOiJyZWZyZXNoIn0.cuhoJpiz8kClLpWExODSQNOQyIUoU3cejOQIETIth_Jrqpmc_J03E1EmpVjyXacCoYpqVW2WUnJAlVXQCvjpgQHFCZWmpnMyQ7o0okf7_sbnXEF2ZIBQM4ZYkMlycebmTvIjbs6sdazAnmeg6QC1hy1rFhkf9yVgR2WieR6V9EtFYZN6LQ-6Ku80_cGM3VtsXeUviW2fA266aqkAx-NfJxSa5g3dehdHUSpTALK4ynoqe_qkCMQ2gBBjbuXdl80PTJLFezZYmvNXjYPWXgG4cXompN-pg1JGMYJLTRn_zJdjkHLpMcej835WU_R1qQdK4ZVO3LgB0OZ2kNwvRy0s6g"
 }
 ```
 
doc/_includes/oauth-tokens-pkce.html
@@ -6,11 +6,11 @@ Example curl request:
 ```bash
 $ curl http://localhost:5000/oauth/tokens \
   -X POST \
-  -d '{"grant_type":"authorization_code","code":"v5cZ5oTUNa6FRnzNCzwMV5X7","code_verifier":"eecc80613716ed816754c700a2e9be968379b44c11caf816b8d22bca1789ce8531901cde39e64031b7dc174f571f346011bbbe7eba87eb0856e62307430a94014c525f74460084a8a822a3436a2d2d550fd57a3d94fb7e72f2ad8ee497163e8fa107c460f3b5581f1817828991b6c63846b8fdea5682d510039e7821f46280ca"}' \
+  -d '{"grant_type":"authorization_code","code":"Lq7DEsSVb843Nze1tncAfwTg","code_verifier":"cd80c42f06c46536d655554d2f63ae2e6f03b0527a926e3abecc60ddad3a2f3d6d6afec7a449dfa6a7658b56807d9fa03687238ce860d7d90a00e262f4cb66aa9483aaddf41e53769e453c487f9e179a8f12f325c83c28601b6e37105d007cdfdb265bb50b405c0acef7c0d7bf91656784708dfd18b249a9be21cb3c5aa1d71b"}' \
   -H "Accept: application/json" \
   -H "Content-Type: application/json" \
   -H "User-Agent: net/hippie 0.1.9" \
-  -H "Authorization: Basic YTA5ZGY1ZGYtZmU3ZC00YmI0LWE4NzQtNjQ3MTMzOWUwNDI5OnM0dVpQSFg3R0Z5WFl3aFpnZW9qUGl3UA==" \
+  -H "Authorization: Basic ZGQyODliOGQtNGNlMC00OWJkLWIyM2MtNzliNzZiNDVhYTE0Okp0NXJDU1B6WTJQWWhEeUZWMVh3bVBZdw==" \
   -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
 ```
 Request:
@@ -18,14 +18,14 @@ Request:
 Accept: application/json
 Content-Type: application/json
 User-Agent: net/hippie 0.1.9
-Authorization: Basic YTA5ZGY1ZGYtZmU3ZC00YmI0LWE4NzQtNjQ3MTMzOWUwNDI5OnM0dVpQSFg3R0Z5WFl3aFpnZW9qUGl3UA==
+Authorization: Basic ZGQyODliOGQtNGNlMC00OWJkLWIyM2MtNzliNzZiNDVhYTE0Okp0NXJDU1B6WTJQWWhEeUZWMVh3bVBZdw==
 Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
 ```
 ```json
 {
   "grant_type": "authorization_code",
-  "code": "v5cZ5oTUNa6FRnzNCzwMV5X7",
-  "code_verifier": "eecc80613716ed816754c700a2e9be968379b44c11caf816b8d22bca1789ce8531901cde39e64031b7dc174f571f346011bbbe7eba87eb0856e62307430a94014c525f74460084a8a822a3436a2d2d550fd57a3d94fb7e72f2ad8ee497163e8fa107c460f3b5581f1817828991b6c63846b8fdea5682d510039e7821f46280ca"
+  "code": "Lq7DEsSVb843Nze1tncAfwTg",
+  "code_verifier": "cd80c42f06c46536d655554d2f63ae2e6f03b0527a926e3abecc60ddad3a2f3d6d6afec7a449dfa6a7658b56807d9fa03687238ce860d7d90a00e262f4cb66aa9483aaddf41e53769e453c487f9e179a8f12f325c83c28601b6e37105d007cdfdb265bb50b405c0acef7c0d7bf91656784708dfd18b249a9be21cb3c5aa1d71b"
 }
 ```
 Response:
@@ -35,16 +35,16 @@ Response:
 Cache-Control: private, no-store
 Pragma: no-cache
 Content-Type: application/json; charset=utf-8
-Etag: W/"d8389f7cfdbd8f0ed6841ceb62d58153"
-X-Request-Id: 1a98bdec-a388-4973-9b42-970177fc8139
+Etag: W/"a5601f3778ea5b606e2ab3b58f16329c"
+X-Request-Id: 803b2904-3efa-42bf-aea1-59640a2fded7
 Transfer-Encoding: chunked
 ```
 ```json
 {
-  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3Nzk4NTksImlhdCI6MTU0MDc3NjI1OSwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzYyNTksImF1ZCI6ImEwOWRmNWRmLWZlN2QtNGJiNC1hODc0LTY0NzEzMzllMDQyOSIsImp0aSI6ImRjMWQ4NTkxLThkMTEtNGYwZi05YWNkLTNhMjJjOTY4ZDI3NSIsInN1YiI6ImE5OGRjMGIwLTIwOGMtNGI0YS04MWUxLTdlNWIzNTU5ZjU5MyIsInRva2VuX3R5cGUiOiJhY2Nlc3MifQ.JL91kVPYimjNnJC6aNQuRxUFIC7dFJd3Tuyi_DG9G6FoKyGjD-A4LDmem90ghImV9YyMl1dm5VwWNwbDqB9Bq5VPfrHkdH4jMrLGNEvbd3dIBqgLV5C4IZ8zKZe8ytLJiyq2vLKlEAzEIrz35w1Y9sy3aAPwMBQPM4nAMsv6qTpzijtutE0tUHMATBU3zoneJ1cDGS53jp3sEcuzo7F3jqhTzXUYgRsOuCIOTKAZRPWgnAzrAVaB4JJZBerqv_7tUxA1iv5EZoU3QHiHytZok5lFzJAPErIYG8DBZZHS7HB4tt7ySKehLg2JSlzlsFOIizvsmGnS8hcG6tIsNU-LIQ",
+  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3ODAyNTMsImlhdCI6MTU0MDc3NjY1MywiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzY2NTMsImF1ZCI6ImRkMjg5YjhkLTRjZTAtNDliZC1iMjNjLTc5Yjc2YjQ1YWExNCIsImp0aSI6IjZlZGI2OTA0LWJjMzItNDAyMC04MTRhLTdiNGIzYjJhN2UwNCIsInN1YiI6ImQwOWIxNzhhLTdjZGItNDkwMy1iODFlLTExZTZmMzI1ZjUxNyIsInRva2VuX3R5cGUiOiJhY2Nlc3MifQ.ca4lAXIldU7zPo7WtvBjdukpU3MzC7WY3J2BDMyr7-kaL7_QtGNK7KNPoF-fD0bBFTGarwrar5Z2bDBQBK0oPbPnBG9iOl7uExIP6_iU-zPYD7daP7gdFSZKk_aVP2pj3ccG-zUMgx1Py0y_Pt5LP624D4yE-lwZV0B32EIg2ZSS9WbVIuQ5A8riUO4eN2Vw9fImicLifnsSx8mvyTc_Gwg5FfiLWfb5Zs7OxhM-4fAkk-7q1BBJCiOVoSA6khaaxhlPm-1lBoSeKlhau73e3f7M08_8VniPe7EZouqD5zyfMr7IORHnSchrYXJSZVrInYcDN8bxrQn3kP1M_XOjsw",
   "token_type": "Bearer",
   "expires_in": 3600,
-  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA4NjI2NTksImlhdCI6MTU0MDc3NjI1OSwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzYyNTksImF1ZCI6ImEwOWRmNWRmLWZlN2QtNGJiNC1hODc0LTY0NzEzMzllMDQyOSIsImp0aSI6ImQwMzFhYzNjLTE5YjQtNDNkOS05NzBmLWNjY2MwZDc1NGFiYiIsInN1YiI6ImE5OGRjMGIwLTIwOGMtNGI0YS04MWUxLTdlNWIzNTU5ZjU5MyIsInRva2VuX3R5cGUiOiJyZWZyZXNoIn0.NYeHb6mhGvaDd1ub6pJepNc5DBLSVclPGqnlWg6N5vDMEArT8RtPE_0aiRo1WX7sBComc2WkqdLI2ELYgvHGCKV4t-yi6ul1amxSlmqGu22dEaGo4n7bthIWgvK-i57gay-josgoVvkRON_3bCk0nDA-ZOrw-jKLnDmPoZ_XIH0ehpsQZjZ4IokCkEX9WB9u3bkb2D0_2hHf19ralSVZaAMvIY3poK6k00ahtGKHnmzUCwmo8fJ0ZDlbbb7KU52eD4tnhoBW1XOXPXqUOCqz0XYdtuZm44r8MqTLQaTrTqj_U0cKAQ2q-BklMqpMsrvr5nkF5fo4v3CdM6wqQbMofg"
+  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA4NjMwNTMsImlhdCI6MTU0MDc3NjY1MywiaXNzIjoiaHR0cDovL3Byb29mLnRlc3QvbWV0YWRhdGEiLCJuYmYiOjE1NDA3NzY2NTMsImF1ZCI6ImRkMjg5YjhkLTRjZTAtNDliZC1iMjNjLTc5Yjc2YjQ1YWExNCIsImp0aSI6IjBiNjJkYWZlLWNkNmEtNDIzMS1iNjNjLTg5NGE0MTkyNjM0YSIsInN1YiI6ImQwOWIxNzhhLTdjZGItNDkwMy1iODFlLTExZTZmMzI1ZjUxNyIsInRva2VuX3R5cGUiOiJyZWZyZXNoIn0.PjBhZchI3Mb_EdtjHs1f30f2i_xGYVi-6OHUQK4DvlvtUxLlz4neecKG00hvcoAxOEz5ZaVbbUeffC0NGh0uGs6CXr3p1W-TzPcSc0b1GbttXqXXYalqtjgQD0z5ZzPVVgNjQ04xRXOEUgXO06NjV97rKl419eNmnHwp5WiG8VR7FYEUN6o1vlbRswD38UVuUY0X46MhBKbW1dMfpmeeBmKBZknmUIc30mx1ofPDjsG6ZM9EsEbQaKEtVH0-G-0OeWOj4JBi9xsCJ_ix0L2CvahiyT6AfEep9ySFDNBj0-jykOk8aiGVKPN_aNhI3FX03gsqauT3QUgokisuauv7EA"
 }
 ```
 
doc/_includes/oauth-tokens-refresh-token.html
@@ -6,11 +6,11 @@ Example curl request:
 ```bash
 $ curl http://localhost:5000/oauth/tokens \
   -X POST \
-  -d '{"grant_type":"refresh_token","refresh_token":"eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3Nzk4NTgsImlhdCI6MTU0MDc3NjI1OCwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3Q6NTAwMC9tZXRhZGF0YSIsIm5iZiI6MTU0MDc3NjI1OCwiYXVkIjoiOTlkYjk2MTgtZDVhMS00MjdiLWExNWQtYmY3ZDU4OTA5NzBkIiwianRpIjoiNTU4ZmE3NTctNTJkNS00YjY4LWFjZmYtZTlmNGI2OGU1ZTVlIiwic3ViIjoiNTJmODgwMTYtYThiNi00ZDE4LTgyODItMWE4NjQ2MGU1MGUwIiwidG9rZW5fdHlwZSI6InJlZnJlc2gifQ.V4WgjbKM-qXajkMpUYRqTp_7uwy-npYXARsiMOunRh8Npod6Nv2AxPD5Eg65xdy9sCuY7KgoS4nm7HgGminpotZkNs-F8hKOFlSMArg4Ah6MzdSoLuBFrS1Kb0jvr47XabbG8q_8-lSxqyjVV2PagyMXuYoirYHk8sM3T0-v7axxSV23o24rBd7IABhiu-QqarHs-1fQKrrwmDKpoH7H-EITYH0L4AHmXaEveoTkkFsbFF2t0XT94O_fLDAgX6IzsyasXn3FoCkoeoXqe5bRnk8eDgkfTPkmyAIzfdUexTNVs88_v18wSWCVTSP1d6Ch_Go7ZbRwA6EW729wqSa3yA"}' \
+  -d '{"grant_type":"refresh_token","refresh_token":"eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3ODAyNTMsImlhdCI6MTU0MDc3NjY1MywiaXNzIjoiaHR0cDovL3Byb29mLnRlc3Q6NTAwMC9tZXRhZGF0YSIsIm5iZiI6MTU0MDc3NjY1MywiYXVkIjoiNjA5NWRkYWQtNWE2OS00NWFmLTgzZWMtYmRkODc3ZWUxZGRlIiwianRpIjoiNjU4Y2JkMGYtYTRhYy00YjFhLThjMDEtN2Y0NWNiN2QyZjgzIiwic3ViIjoiNDUwNjE5ZmYtZmM5Ny00ZjY1LWEyODMtZGYyZWY5MGRlMzJjIiwidG9rZW5fdHlwZSI6InJlZnJlc2gifQ.TOnHZuDK56fhXpppv395LpHgfKBRsmc8nYwCVxrcloOEieVDDzPb6Xyc8aRrbUoXoJUig27krRKpSkz0c_8DRiSKgwWU_M0OcFAPMFEe-Bw1hzKJvg7Ww8DoWa-RL6fCnORk67pCYWcI6R1OWrofgz5K-_uS47xGa2Y5KMKPiuD0feh8aJxK8gbLWAYMnQrRK_A6_8dPOdN_C-LFEcuvgy00YTD_5UuV7s_USV_5QwbC_DWMnsg2WDHHCVdVj01jXB5_MsJfm8HHgl0ZmO6f_mnnPDtbZlRXRFmaMlg54pc2EFtsbFbH470YLnHSQUmz3zCPMhAYti00qWDDaGpMxQ"}' \
   -H "Accept: application/json" \
   -H "Content-Type: application/json" \
   -H "User-Agent: net/hippie 0.1.9" \
-  -H "Authorization: Basic OTlkYjk2MTgtZDVhMS00MjdiLWExNWQtYmY3ZDU4OTA5NzBkOmpvZURRRUtSZER2SEhFNHR0VG5Vb0dEVA==" \
+  -H "Authorization: Basic NjA5NWRkYWQtNWE2OS00NWFmLTgzZWMtYmRkODc3ZWUxZGRlOkNFWnpLWG80NHllYkZRYVp5TDFxc3Ryeg==" \
   -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
 ```
 Request:
@@ -18,13 +18,13 @@ Request:
 Accept: application/json
 Content-Type: application/json
 User-Agent: net/hippie 0.1.9
-Authorization: Basic OTlkYjk2MTgtZDVhMS00MjdiLWExNWQtYmY3ZDU4OTA5NzBkOmpvZURRRUtSZER2SEhFNHR0VG5Vb0dEVA==
+Authorization: Basic NjA5NWRkYWQtNWE2OS00NWFmLTgzZWMtYmRkODc3ZWUxZGRlOkNFWnpLWG80NHllYkZRYVp5TDFxc3Ryeg==
 Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
 ```
 ```json
 {
   "grant_type": "refresh_token",
-  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3Nzk4NTgsImlhdCI6MTU0MDc3NjI1OCwiaXNzIjoiaHR0cDovL3Byb29mLnRlc3Q6NTAwMC9tZXRhZGF0YSIsIm5iZiI6MTU0MDc3NjI1OCwiYXVkIjoiOTlkYjk2MTgtZDVhMS00MjdiLWExNWQtYmY3ZDU4OTA5NzBkIiwianRpIjoiNTU4ZmE3NTctNTJkNS00YjY4LWFjZmYtZTlmNGI2OGU1ZTVlIiwic3ViIjoiNTJmODgwMTYtYThiNi00ZDE4LTgyODItMWE4NjQ2MGU1MGUwIiwidG9rZW5fdHlwZSI6InJlZnJlc2gifQ.V4WgjbKM-qXajkMpUYRqTp_7uwy-npYXARsiMOunRh8Npod6Nv2AxPD5Eg65xdy9sCuY7KgoS4nm7HgGminpotZkNs-F8hKOFlSMArg4Ah6MzdSoLuBFrS1Kb0jvr47XabbG8q_8-lSxqyjVV2PagyMXuYoirYHk8sM3T0-v7axxSV23o24rBd7IABhiu-QqarHs-1fQKrrwmDKpoH7H-EITYH0L4AHmXaEveoTkkFsbFF2t0XT94O_fLDAgX6IzsyasXn3FoCkoeoXqe5bRnk8eDgkfTPkmyAIzfdUexTNVs88_v18wSWCVTSP1d6Ch_Go7ZbRwA6EW729wqSa3yA"
+  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJleHAiOjE1NDA3ODAyNTMsImlhdCI6MTU0MDc3NjY1MywiaXNzIjoiaHR0cDovL3Byb29mLnRlc3Q6NTAwMC9tZXRhZGF0YSIsIm5iZiI6MTU0MDc3NjY1MywiYXVkIjoiNjA5NWRkYWQtNWE2OS00NWFmLTgzZWMtYmRkODc3ZWUxZGRlIiwianRpIjoiNjU4Y2JkMGYtYTRhYy00YjFhLThjMDEtN2Y0NWNiN2QyZjgzIiwic3ViIjoiNDUwNjE5ZmYtZmM5Ny00ZjY1LWEyODMtZGYyZWY5MGRlMzJjIiwidG9rZW5fdHlwZSI6InJlZnJlc2gifQ.TOnHZuDK56fhXpppv395LpHgfKBRsmc8nYwCVxrcloOEieVDDzPb6Xyc8aRrbUoXoJUig27krRKpSkz0c_8DRiSKgwWU_M0OcFAPMFEe-Bw1hzKJvg7Ww8DoWa-RL6fCnORk67pCYWcI6R1OWrofgz5K-_uS47xGa2Y5KMKPiuD0feh8aJxK8gbLWAYMnQrRK_A6_8dPOdN_C-LFEcuvgy00YTD_5UuV7s_USV_5QwbC_DWMnsg2WDHHCVdVj01jXB5_MsJfm8HHgl0ZmO6f_mnnPDtbZlRXRFmaMlg54pc2EFtsbFbH470YLnHSQUmz3zCPMhAYti00qWDDaGpMxQ"
 }
 ```
 Response:
@@ -34,7 +34,7 @@ Response:
 Cache-Control: private, no-store
 Pragma: no-cache
 Content-Type: application/json; charset=utf-8
-X-Request-Id: c8b42d34-59a0-440c-ad0b-6cedd450c61b
+X-Request-Id: c65a9e92-41fa-491c-afcc-86fbbed86045
 Transfer-Encoding: chunked
 ```
 ```json
doc/_includes/oauth-tokens-saml-assertion.html
@@ -6,11 +6,11 @@ Example curl request:
 ```bash
 $ curl http://localhost:5000/oauth/tokens \
   -X POST \
-  -d '{"grant_type":"urn:ietf:params:oauth:grant-type:saml2-bearer","assertion":"PEFzc2VydGlvbiB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFzc2VydGlvbiIgSUQ9Il9lZWI5ZGY2OS0xNDlmLTRiZTctYTQxNi1lYjgzZWRmNGNjYjIiIElzc3VlSW5zdGFudD0iMjAxOC0xMC0yOVQwMToyNDoxOFoiIFZlcnNpb249IjIuMCI-PElzc3Vlcj5odHRwOi8vcHJvb2YudGVzdDo1MDAwL21ldGFkYXRhPC9Jc3N1ZXI-PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI-PFNpZ25lZEluZm8-PENhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjcnNhLXNoYTI1NiIvPjxSZWZlcmVuY2UgVVJJPSIjX2VlYjlkZjY5LTE0OWYtNGJlNy1hNDE2LWViODNlZGY0Y2NiMiI-PFRyYW5zZm9ybXM-PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJlIi8-PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwvVHJhbnNmb3Jtcz48RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2Ii8-PERpZ2VzdFZhbHVlPjQ0Z0VCVjdBdkVrQmlVZG9KQ0N3L1p2Y1NxQ3R4Q0tabkc1aCtLNDN4anc9PC9EaWdlc3RWYWx1ZT48L1JlZmVyZW5jZT48L1NpZ25lZEluZm8-PFNpZ25hdHVyZVZhbHVlPlFvV2lPV3NaRmt0T3R0TDFJNU0xSHFKTUxWcUliSDNtSnNpYkliajNxcDhUT3ZKVTZINmFMMHZleit2NjJCcHFxdnhTMkhuODVQYVBrSEpYcHJUS3VGSzM4eVAzQXNqSlFRUk1sSGRmN0ljelJuZFQxU09tOU1BU2lESmtZK2hPS1lYY3krQ1I1UUFvSWYxdEtnQ1ZlcnlZU1pQOTBiRDI4V0l2UHRicjFuTTBYT0p0Y0Z3bzdtMXR5TWN4MjN0dS9aQ3poU0QxNnhsaHdlK2hpYVo0YjZxV29pRk5wZ2paT1lSM2V4RmtCK2NjRlh1LzBueEIwemhQMmdoSXdudlM4TXM3cTNNR2dwZU1LRmhJVFFmK250VzJHVWsvQmgzcTYycUVOTmpqZmJPUG9STmFJQnhqVURWdHJZVysrUXoxY2ZXVS9xN0RvNnVsMWt2YmJJa1cyQT09PC9TaWduYXR1cmVWYWx1ZT48S2V5SW5mbz48WDUwOURhdGE-PFg1MDlDZXJ0aWZpY2F0ZT5NSUlETnpDQ0FoK2dBd0lCQWdJQkFEQU5CZ2txaGtpRzl3MEJBUXNGQURCZk1Rc3dDUVlEVlFRR0V3SkRRVEVMTUFrR0ExVUVDQXdDUVVJeEVEQU9CZ05WQkFjTUIwTmhiR2RoY25reER6QU5CZ05WQkFvTUJsaHRiRXRwZERFUE1BMEdBMVVFQ3d3R1dHMXNTMmwwTVE4d0RRWURWUVFEREFaWWJXeExhWFF3SGhjTk1UZ3hNREk1TURFeU5ERTNXaGNOTVRneE1USTRNREV5TkRFM1dqQmZNUXN3Q1FZRFZRUUdFd0pEUVRFTE1Ba0dBMVVFQ0F3Q1FVSXhFREFPQmdOVkJBY01CME5oYkdkaGNua3hEekFOQmdOVkJBb01CbGh0YkV0cGRERVBNQTBHQTFVRUN3d0dXRzFzUzJsME1ROHdEUVlEVlFRRERBWlliV3hMYVhRd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUURjK211MXZsUkNuNXluTjJ1dDZSVm50S1MySWduckRDM1Z5d0F1M3czSVk3Vmlzbk92Qi9PMGZQL0hsbTNNL3FZU1RnY0Vhc1RkdG5SQW41c2FuVXZCMGlVYnZMQXRUZTR4N0UvbXRnQTJxQUYxd2d1SEQzOFZ1UkZiTk1qbVI2RXVzR0RpQU5DZE56UUljNUt0aFhFbWtGYUdYUGJmTDRiTUtLQjgrNnBRMFQrZUFSTTNxaHlLTnB4K0JIdm5Ia3AvNm41WWhXSjZ4azIzdk9LbUNQREFnS3hUUVFIU0tyallDWE1QNWNaLy9zMDhUZGN0YURBRmFMUG41dlZCd21vUUF3YkRUcEhicnpYNEQ5bS9ZMWdVdlVMOWNNMmk2VDY3ekdJYXBCRmh1WGN2cVRjZFZDUENrK01YR2FBTy9NZTJjRkdHYlVsZHY4dm1LSm9La1dNZEFnTUJBQUV3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUxTQ3hERCtwN2VKUG9wakhVejdVWlZ5T1EzeVYvZ0NwdHlML2FEMjhiWkM0N3NNUHIrZWQ0NDQ1UDJNdC9RdWRkWU5qNGprVFc2aFFpb0p2UlhHVHc5ZEtaa2IvY0RqV2YwdUtyb3JTNDAra1Y5cUpnLzFxMktEeDJtb3FnSGo5TmR4OURKUkM5TjkxZTU2Sjg4RUdwUFlyMzZoVDlINHhCMXpyVGh4ZHZMSEZhQlJBVmJvSFh6YnhhL1E1bnorbElWN2lyS0Y4NEFkK0dzdGRxQ3R3WnpiUXdUcHJMMHlZWGE3VkQ4aWJIZGFDYncxZU9CM0krdXkzdlJ3U0dDWkJ2b2VMYkMzTTRnRnVkQnhkVUVwZU1kZzNCMGwxNUJSUjNTSFlHQUVPY2k5MHAwcEw5U3hlWVhmSkJoSzdoWTNDUXZNNkhhczVSVWJZNXM3cWp6WjRPYz08L1g1MDlDZXJ0aWZpY2F0ZT48L1g1MDlEYXRhPjwvS2V5SW5mbz48L1NpZ25hdHVyZT48U3ViamVjdD48TmFtZUlEIEZvcm1hdD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6MS4xOm5hbWVpZC1mb3JtYXQ6dW5zcGVjaWZpZWQiPnNvbGFuZ2VAamFjb2JpLmNvLnVrPC9OYW1lSUQ-PFN1YmplY3RDb25maXJtYXRpb24gTWV0aG9kPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6Y206YmVhcmVyIj48U3ViamVjdENvbmZpcm1hdGlvbkRhdGEgSW5SZXNwb25zZVRvPSJfNjY0NDFlNjUtMjUxMC00ZjQzLTgwNTMtNjg5ZDBhY2Y0MjRiIiBOb3RPbk9yQWZ0ZXI9IjIwMTgtMTAtMjlUMDE6Mjk6MThaIi8-PC9TdWJqZWN0Q29uZmlybWF0aW9uPjwvU3ViamVjdD48Q29uZGl0aW9ucyBOb3RCZWZvcmU9IjIwMTgtMTAtMjlUMDE6MjQ6MThaIiBOb3RPbk9yQWZ0ZXI9IjIwMTgtMTAtMjlUMDQ6MjQ6MThaIj48QXVkaWVuY2VSZXN0cmljdGlvbj48QXVkaWVuY2U-aHR0cDovL3Byb29mLnRlc3Q6NTAwMC9tZXRhZGF0YTwvQXVkaWVuY2U-PC9BdWRpZW5jZVJlc3RyaWN0aW9uPjwvQ29uZGl0aW9ucz48QXV0aG5TdGF0ZW1lbnQgQXV0aG5JbnN0YW50PSIyMDE4LTEwLTI5VDAxOjI0OjE4WiIgU2Vzc2lvbkluZGV4PSJfZWViOWRmNjktMTQ5Zi00YmU3LWE0MTYtZWI4M2VkZjRjY2IyIj48QXV0aG5Db250ZXh0PjxBdXRobkNvbnRleHRDbGFzc1JlZj51cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YWM6Y2xhc3NlczpQYXNzd29yZDwvQXV0aG5Db250ZXh0Q2xhc3NSZWY-PC9BdXRobkNvbnRleHQ-PC9BdXRoblN0YXRlbWVudD48QXR0cmlidXRlU3RhdGVtZW50PjxBdHRyaWJ1dGUgTmFtZT0iaWQiPjxBdHRyaWJ1dGVWYWx1ZT5lMzRhNGMzNC1jZDFlLTQ2NDctODFhNy02NTQyYWNjNTYzNjE8L0F0dHJpYnV0ZVZhbHVlPjwvQXR0cmlidXRlPjxBdHRyaWJ1dGUgTmFtZT0iZW1haWwiPjxBdHRyaWJ1dGVWYWx1ZT5zb2xhbmdlQGphY29iaS5jby51azwvQXR0cmlidXRlVmFsdWU-PC9BdHRyaWJ1dGU-PEF0dHJpYnV0ZSBOYW1lPSJjcmVhdGVkX2F0Ij48QXR0cmlidXRlVmFsdWU-MjAxOC0xMC0yOSAwMToyNDoxOCBVVEM8L0F0dHJpYnV0ZVZhbHVlPjwvQXR0cmlidXRlPjwvQXR0cmlidXRlU3RhdGVtZW50PjwvQXNzZXJ0aW9uPgo="}' \
+  -d '{"grant_type":"urn:ietf:params:oauth:grant-type:saml2-bearer","assertion":"PEFzc2VydGlvbiB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFzc2VydGlvbiIgSUQ9Il85ODExZDUyMC02ZGUyLTQ5NTMtYjZmNC1iYTFlZjkyYWMxNmQiIElzc3VlSW5zdGFudD0iMjAxOC0xMC0yOVQwMTozMDo1MloiIFZlcnNpb249IjIuMCI-PElzc3Vlcj5odHRwOi8vcHJvb2YudGVzdDo1MDAwL21ldGFkYXRhPC9Jc3N1ZXI-PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI-PFNpZ25lZEluZm8-PENhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjcnNhLXNoYTI1NiIvPjxSZWZlcmVuY2UgVVJJPSIjXzk4MTFkNTIwLTZkZTItNDk1My1iNmY0LWJhMWVmOTJhYzE2ZCI-PFRyYW5zZm9ybXM-PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJlIi8-PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwvVHJhbnNmb3Jtcz48RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2Ii8-PERpZ2VzdFZhbHVlPkRSbVBrb2VOWDBLbElsMXA4ZTRzZzhkektOSG50WWorQmJrYmdFUzdrY2M9PC9EaWdlc3RWYWx1ZT48L1JlZmVyZW5jZT48L1NpZ25lZEluZm8-PFNpZ25hdHVyZVZhbHVlPm4zU1N2MzVkOHBlWkE3NzArN3pzL0ZoR0N1UHZyV2VFOEJEcEtqRFJXQ1ljY3dhSWRVUDQraTBGQWJmTzFJdVVIbmZGbVdCZEI3cHdKNjFES2dOcDZlYTd6VmlhL1YzRkRWc0lkTFk0Yi94Wkd1ZThJQ0JYc2hGR1lqd3JXamtHRmFOWHdmOENHdWo3bmpxem1jNzZVdGJHTVpqdGlPeVpsZUVKMFNUY3BNaEZ0VlA1eGVFVGlQakFZQ0lVT3hHRGRSWUFQZTlaeW5DRXRBTkU1WjNjLzJEdkJJY0tvci9sUUR5QUdicFQyRkoyM1RrN1NlOVBBTUFjNURuaWNnYTBKaElvZklTQTJVK1BFYUtBRE1UTENubGsweFM1ek5OOFdKUGlPWUwyMlJNWFd5RHFjWTVPNGI0Z25NZFgvTDlRQmg4eTdwUXAxQ2YzeVRETm9LZkRxZz09PC9TaWduYXR1cmVWYWx1ZT48S2V5SW5mbz48WDUwOURhdGE-PFg1MDlDZXJ0aWZpY2F0ZT5NSUlETnpDQ0FoK2dBd0lCQWdJQkFEQU5CZ2txaGtpRzl3MEJBUXNGQURCZk1Rc3dDUVlEVlFRR0V3SkRRVEVMTUFrR0ExVUVDQXdDUVVJeEVEQU9CZ05WQkFjTUIwTmhiR2RoY25reER6QU5CZ05WQkFvTUJsaHRiRXRwZERFUE1BMEdBMVVFQ3d3R1dHMXNTMmwwTVE4d0RRWURWUVFEREFaWWJXeExhWFF3SGhjTk1UZ3hNREk1TURFek1EVXhXaGNOTVRneE1USTRNREV6TURVeFdqQmZNUXN3Q1FZRFZRUUdFd0pEUVRFTE1Ba0dBMVVFQ0F3Q1FVSXhFREFPQmdOVkJBY01CME5oYkdkaGNua3hEekFOQmdOVkJBb01CbGh0YkV0cGRERVBNQTBHQTFVRUN3d0dXRzFzUzJsME1ROHdEUVlEVlFRRERBWlliV3hMYVhRd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUREdVVadVBBTlV0OEdZYlA0TWVZZ0VJT3lydVhtUTVxYU80NVlwQ1lMUmcvZkt0ZzY5QlplZ0k5bXMrYlh2WGpTOHRDQzZRdVNyVWZwQ0xKNmN3aGs1ZGxsOG1FaFZJbXFRV1RwT2dMOWFsbDJNVzN3RC9HL0tFdjVNWUNMMndIc3N0SlFCWlgyTFYxTjFhcno2NitLVUFrV0V2dGpCTXpDV2V0SUNveGxiQ0ZBY2NoVDd6QUFBdHBDaGExSlc0Y1U2TGw2SVVFTjVYQWdWNTBpcFlGdEZRZ09OQ1VyMzlhL3p1WEVsRHZBbjJKRGdsaG1SYW9Mazh2TnBlT3ZHTGFVUWRIam5VUWRSNjl3RDFIWG5BSGJIbnVwUXY5WnpmeGlaZndBbmtNYnlqblA0amh2Wk9qcFdWQmM2dkw5dmRDYSs0Z2JMWHVqQ09laDVlSi9vcVQ0SEFnTUJBQUV3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUUzbTBYaW16UXlRODlmYXZMN2dpVHB2dGJ1NTVWMDJldXdOSHFHb095cGJwV3JiNW5Zd3VPRGRlRkZIMEV1RHhCS3lTY2hYUlljRmhSbUQ1N1RHQmZ5T1BOa0xmUTY3R1NGVzM4UlRJdXhOcWxGNWc1OFNLWm83VlZxQnVCVGxlRGFBS2pyYUwvSWVvL29zdW1lNlNBZEo5MHdGcXVobU83QkVqenJXbnN0RERIS3o1RFU5RjRCZVJlRm9GUTlOVXhacUhLQ0V3aXRDcnFGaWNFUERtaW5xYk1XdllwRkx2MkcxNXdUa0U0ekFEMlV0U25Rdzc2eHpHTjZIZWR2QVU2NXdWMUFUWStQZ056eEpBc3BqSWRrckQyUXpleDdOVnFQTWZjWGJ0STR6d0ZubkZtQVlEUExyeCtjejY5T3o1eWw5NHdHN29nVTN0MnFmUEFkS3AzVT08L1g1MDlDZXJ0aWZpY2F0ZT48L1g1MDlEYXRhPjwvS2V5SW5mbz48L1NpZ25hdHVyZT48U3ViamVjdD48TmFtZUlEIEZvcm1hdD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6MS4xOm5hbWVpZC1mb3JtYXQ6dW5zcGVjaWZpZWQiPm1lbHZpbmFAc3dhbmlhd3NraS5iaXo8L05hbWVJRD48U3ViamVjdENvbmZpcm1hdGlvbiBNZXRob2Q9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpjbTpiZWFyZXIiPjxTdWJqZWN0Q29uZmlybWF0aW9uRGF0YSBJblJlc3BvbnNlVG89Il80YzFmMmMzYS01NjViLTRkNWYtOTQzOC1iYjRlNWQwMGY4ZTciIE5vdE9uT3JBZnRlcj0iMjAxOC0xMC0yOVQwMTozNTo1MloiLz48L1N1YmplY3RDb25maXJtYXRpb24-PC9TdWJqZWN0PjxDb25kaXRpb25zIE5vdEJlZm9yZT0iMjAxOC0xMC0yOVQwMTozMDo1MloiIE5vdE9uT3JBZnRlcj0iMjAxOC0xMC0yOVQwNDozMDo1MloiPjxBdWRpZW5jZVJlc3RyaWN0aW9uPjxBdWRpZW5jZT5odHRwOi8vcHJvb2YudGVzdDo1MDAwL21ldGFkYXRhPC9BdWRpZW5jZT48L0F1ZGllbmNlUmVzdHJpY3Rpb24-PC9Db25kaXRpb25zPjxBdXRoblN0YXRlbWVudCBBdXRobkluc3RhbnQ9IjIwMTgtMTAtMjlUMDE6MzA6NTJaIiBTZXNzaW9uSW5kZXg9Il85ODExZDUyMC02ZGUyLTQ5NTMtYjZmNC1iYTFlZjkyYWMxNmQiPjxBdXRobkNvbnRleHQ-PEF1dGhuQ29udGV4dENsYXNzUmVmPnVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDphYzpjbGFzc2VzOlBhc3N3b3JkPC9BdXRobkNvbnRleHRDbGFzc1JlZj48L0F1dGhuQ29udGV4dD48L0F1dGhuU3RhdGVtZW50PjxBdHRyaWJ1dGVTdGF0ZW1lbnQ-PEF0dHJpYnV0ZSBOYW1lPSJpZCI-PEF0dHJpYnV0ZVZhbHVlPmE1NDhiZDcwLWE4YzMtNGEyZi04YWU3LTU1MmU3ZjMyYjRkZDwvQXR0cmlidXRlVmFsdWU-PC9BdHRyaWJ1dGU-PEF0dHJpYnV0ZSBOYW1lPSJlbWFpbCI-PEF0dHJpYnV0ZVZhbHVlPm1lbHZpbmFAc3dhbmlhd3NraS5iaXo8L0F0dHJpYnV0ZVZhbHVlPjwvQXR0cmlidXRlPjxBdHRyaWJ1dGUgTmFtZT0iY3JlYXRlZF9hdCI-PEF0dHJpYnV0ZVZhbHVlPjIwMTgtMTAtMjkgMDE6MzA6NTIgVVRDPC9BdHRyaWJ1dGVWYWx1ZT48L0F0dHJpYnV0ZT48L0F0dHJpYnV0ZVN0YXRlbWVudD48L0Fzc2VydGlvbj4K"}' \
   -H "Accept: application/json" \
   -H "Content-Type: application/json" \
   -H "User-Agent: net/hippie 0.1.9" \
-  -H "Authorization: Basic ZTU2MTlmMmItNDAyYS00ODJkLWFjMjEtYjIxNTA4Y2ZlZDlhOm5kU0Vmb2tGaThSOGVoNzlwcXNmTU1iZw==" \
+  -H "Authorization: Basic OTJkZTE4NmQtZjRmZC00N2E4LWFhNGEtZDliZmIwOGY3M2E0OkJlZms1SzRhaVhMd1Myek1BenBIMmZBYw==" \
   -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
 ```
 Request:
@@ -18,13 +18,13 @@ Request:
 Accept: application/json
 Content-Type: application/json
 User-Agent: net/hippie 0.1.9
-Authorization: Basic ZTU2MTlmMmItNDAyYS00ODJkLWFjMjEtYjIxNTA4Y2ZlZDlhOm5kU0Vmb2tGaThSOGVoNzlwcXNmTU1iZw==
+Authorization: Basic OTJkZTE4NmQtZjRmZC00N2E4LWFhNGEtZDliZmIwOGY3M2E0OkJlZms1SzRhaVhMd1Myek1BenBIMmZBYw==
 Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
 ```
 ```json
 {
   "grant_type": "urn:ietf:params:oauth:grant-type:saml2-bearer",
-  "assertion": "PEFzc2VydGlvbiB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFzc2VydGlvbiIgSUQ9Il9lZWI5ZGY2OS0xNDlmLTRiZTctYTQxNi1lYjgzZWRmNGNjYjIiIElzc3VlSW5zdGFudD0iMjAxOC0xMC0yOVQwMToyNDoxOFoiIFZlcnNpb249IjIuMCI-PElzc3Vlcj5odHRwOi8vcHJvb2YudGVzdDo1MDAwL21ldGFkYXRhPC9Jc3N1ZXI-PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI-PFNpZ25lZEluZm8-PENhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjcnNhLXNoYTI1NiIvPjxSZWZlcmVuY2UgVVJJPSIjX2VlYjlkZjY5LTE0OWYtNGJlNy1hNDE2LWViODNlZGY0Y2NiMiI-PFRyYW5zZm9ybXM-PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJlIi8-PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwvVHJhbnNmb3Jtcz48RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2Ii8-PERpZ2VzdFZhbHVlPjQ0Z0VCVjdBdkVrQmlVZG9KQ0N3L1p2Y1NxQ3R4Q0tabkc1aCtLNDN4anc9PC9EaWdlc3RWYWx1ZT48L1JlZmVyZW5jZT48L1NpZ25lZEluZm8-PFNpZ25hdHVyZVZhbHVlPlFvV2lPV3NaRmt0T3R0TDFJNU0xSHFKTUxWcUliSDNtSnNpYkliajNxcDhUT3ZKVTZINmFMMHZleit2NjJCcHFxdnhTMkhuODVQYVBrSEpYcHJUS3VGSzM4eVAzQXNqSlFRUk1sSGRmN0ljelJuZFQxU09tOU1BU2lESmtZK2hPS1lYY3krQ1I1UUFvSWYxdEtnQ1ZlcnlZU1pQOTBiRDI4V0l2UHRicjFuTTBYT0p0Y0Z3bzdtMXR5TWN4MjN0dS9aQ3poU0QxNnhsaHdlK2hpYVo0YjZxV29pRk5wZ2paT1lSM2V4RmtCK2NjRlh1LzBueEIwemhQMmdoSXdudlM4TXM3cTNNR2dwZU1LRmhJVFFmK250VzJHVWsvQmgzcTYycUVOTmpqZmJPUG9STmFJQnhqVURWdHJZVysrUXoxY2ZXVS9xN0RvNnVsMWt2YmJJa1cyQT09PC9TaWduYXR1cmVWYWx1ZT48S2V5SW5mbz48WDUwOURhdGE-PFg1MDlDZXJ0aWZpY2F0ZT5NSUlETnpDQ0FoK2dBd0lCQWdJQkFEQU5CZ2txaGtpRzl3MEJBUXNGQURCZk1Rc3dDUVlEVlFRR0V3SkRRVEVMTUFrR0ExVUVDQXdDUVVJeEVEQU9CZ05WQkFjTUIwTmhiR2RoY25reER6QU5CZ05WQkFvTUJsaHRiRXRwZERFUE1BMEdBMVVFQ3d3R1dHMXNTMmwwTVE4d0RRWURWUVFEREFaWWJXeExhWFF3SGhjTk1UZ3hNREk1TURFeU5ERTNXaGNOTVRneE1USTRNREV5TkRFM1dqQmZNUXN3Q1FZRFZRUUdFd0pEUVRFTE1Ba0dBMVVFQ0F3Q1FVSXhFREFPQmdOVkJBY01CME5oYkdkaGNua3hEekFOQmdOVkJBb01CbGh0YkV0cGRERVBNQTBHQTFVRUN3d0dXRzFzUzJsME1ROHdEUVlEVlFRRERBWlliV3hMYVhRd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUURjK211MXZsUkNuNXluTjJ1dDZSVm50S1MySWduckRDM1Z5d0F1M3czSVk3Vmlzbk92Qi9PMGZQL0hsbTNNL3FZU1RnY0Vhc1RkdG5SQW41c2FuVXZCMGlVYnZMQXRUZTR4N0UvbXRnQTJxQUYxd2d1SEQzOFZ1UkZiTk1qbVI2RXVzR0RpQU5DZE56UUljNUt0aFhFbWtGYUdYUGJmTDRiTUtLQjgrNnBRMFQrZUFSTTNxaHlLTnB4K0JIdm5Ia3AvNm41WWhXSjZ4azIzdk9LbUNQREFnS3hUUVFIU0tyallDWE1QNWNaLy9zMDhUZGN0YURBRmFMUG41dlZCd21vUUF3YkRUcEhicnpYNEQ5bS9ZMWdVdlVMOWNNMmk2VDY3ekdJYXBCRmh1WGN2cVRjZFZDUENrK01YR2FBTy9NZTJjRkdHYlVsZHY4dm1LSm9La1dNZEFnTUJBQUV3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUxTQ3hERCtwN2VKUG9wakhVejdVWlZ5T1EzeVYvZ0NwdHlML2FEMjhiWkM0N3NNUHIrZWQ0NDQ1UDJNdC9RdWRkWU5qNGprVFc2aFFpb0p2UlhHVHc5ZEtaa2IvY0RqV2YwdUtyb3JTNDAra1Y5cUpnLzFxMktEeDJtb3FnSGo5TmR4OURKUkM5TjkxZTU2Sjg4RUdwUFlyMzZoVDlINHhCMXpyVGh4ZHZMSEZhQlJBVmJvSFh6YnhhL1E1bnorbElWN2lyS0Y4NEFkK0dzdGRxQ3R3WnpiUXdUcHJMMHlZWGE3VkQ4aWJIZGFDYncxZU9CM0krdXkzdlJ3U0dDWkJ2b2VMYkMzTTRnRnVkQnhkVUVwZU1kZzNCMGwxNUJSUjNTSFlHQUVPY2k5MHAwcEw5U3hlWVhmSkJoSzdoWTNDUXZNNkhhczVSVWJZNXM3cWp6WjRPYz08L1g1MDlDZXJ0aWZpY2F0ZT48L1g1MDlEYXRhPjwvS2V5SW5mbz48L1NpZ25hdHVyZT48U3ViamVjdD48TmFtZUlEIEZvcm1hdD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6MS4xOm5hbWVpZC1mb3JtYXQ6dW5zcGVjaWZpZWQiPnNvbGFuZ2VAamFjb2JpLmNvLnVrPC9OYW1lSUQ-PFN1YmplY3RDb25maXJtYXRpb24gTWV0aG9kPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6Y206YmVhcmVyIj48U3ViamVjdENvbmZpcm1hdGlvbkRhdGEgSW5SZXNwb25zZVRvPSJfNjY0NDFlNjUtMjUxMC00ZjQzLTgwNTMtNjg5ZDBhY2Y0MjRiIiBOb3RPbk9yQWZ0ZXI9IjIwMTgtMTAtMjlUMDE6Mjk6MThaIi8-PC9TdWJqZWN0Q29uZmlybWF0aW9uPjwvU3ViamVjdD48Q29uZGl0aW9ucyBOb3RCZWZvcmU9IjIwMTgtMTAtMjlUMDE6MjQ6MThaIiBOb3RPbk9yQWZ0ZXI9IjIwMTgtMTAtMjlUMDQ6MjQ6MThaIj48QXVkaWVuY2VSZXN0cmljdGlvbj48QXVkaWVuY2U-aHR0cDovL3Byb29mLnRlc3Q6NTAwMC9tZXRhZGF0YTwvQXVkaWVuY2U-PC9BdWRpZW5jZVJlc3RyaWN0aW9uPjwvQ29uZGl0aW9ucz48QXV0aG5TdGF0ZW1lbnQgQXV0aG5JbnN0YW50PSIyMDE4LTEwLTI5VDAxOjI0OjE4WiIgU2Vzc2lvbkluZGV4PSJfZWViOWRmNjktMTQ5Zi00YmU3LWE0MTYtZWI4M2VkZjRjY2IyIj48QXV0aG5Db250ZXh0PjxBdXRobkNvbnRleHRDbGFzc1JlZj51cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YWM6Y2xhc3NlczpQYXNzd29yZDwvQXV0aG5Db250ZXh0Q2xhc3NSZWY-PC9BdXRobkNvbnRleHQ-PC9BdXRoblN0YXRlbWVudD48QXR0cmlidXRlU3RhdGVtZW50PjxBdHRyaWJ1dGUgTmFtZT0iaWQiPjxBdHRyaWJ1dGVWYWx1ZT5lMzRhNGMzNC1jZDFlLTQ2NDctODFhNy02NTQyYWNjNTYzNjE8L0F0dHJpYnV0ZVZhbHVlPjwvQXR0cmlidXRlPjxBdHRyaWJ1dGUgTmFtZT0iZW1haWwiPjxBdHRyaWJ1dGVWYWx1ZT5zb2xhbmdlQGphY29iaS5jby51azwvQXR0cmlidXRlVmFsdWU-PC9BdHRyaWJ1dGU-PEF0dHJpYnV0ZSBOYW1lPSJjcmVhdGVkX2F0Ij48QXR0cmlidXRlVmFsdWU-MjAxOC0xMC0yOSAwMToyNDoxOCBVVEM8L0F0dHJpYnV0ZVZhbHVlPjwvQXR0cmlidXRlPjwvQXR0cmlidXRlU3RhdGVtZW50PjwvQXNzZXJ0aW9uPgo="
+  "assertion": "PEFzc2VydGlvbiB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFzc2VydGlvbiIgSUQ9Il85ODExZDUyMC02ZGUyLTQ5NTMtYjZmNC1iYTFlZjkyYWMxNmQiIElzc3VlSW5zdGFudD0iMjAxOC0xMC0yOVQwMTozMDo1MloiIFZlcnNpb249IjIuMCI-PElzc3Vlcj5odHRwOi8vcHJvb2YudGVzdDo1MDAwL21ldGFkYXRhPC9Jc3N1ZXI-PFNpZ25hdHVyZSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI-PFNpZ25lZEluZm8-PENhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjcnNhLXNoYTI1NiIvPjxSZWZlcmVuY2UgVVJJPSIjXzk4MTFkNTIwLTZkZTItNDk1My1iNmY0LWJhMWVmOTJhYzE2ZCI-PFRyYW5zZm9ybXM-PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJlIi8-PFRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwvVHJhbnNmb3Jtcz48RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2Ii8-PERpZ2VzdFZhbHVlPkRSbVBrb2VOWDBLbElsMXA4ZTRzZzhkektOSG50WWorQmJrYmdFUzdrY2M9PC9EaWdlc3RWYWx1ZT48L1JlZmVyZW5jZT48L1NpZ25lZEluZm8-PFNpZ25hdHVyZVZhbHVlPm4zU1N2MzVkOHBlWkE3NzArN3pzL0ZoR0N1UHZyV2VFOEJEcEtqRFJXQ1ljY3dhSWRVUDQraTBGQWJmTzFJdVVIbmZGbVdCZEI3cHdKNjFES2dOcDZlYTd6VmlhL1YzRkRWc0lkTFk0Yi94Wkd1ZThJQ0JYc2hGR1lqd3JXamtHRmFOWHdmOENHdWo3bmpxem1jNzZVdGJHTVpqdGlPeVpsZUVKMFNUY3BNaEZ0VlA1eGVFVGlQakFZQ0lVT3hHRGRSWUFQZTlaeW5DRXRBTkU1WjNjLzJEdkJJY0tvci9sUUR5QUdicFQyRkoyM1RrN1NlOVBBTUFjNURuaWNnYTBKaElvZklTQTJVK1BFYUtBRE1UTENubGsweFM1ek5OOFdKUGlPWUwyMlJNWFd5RHFjWTVPNGI0Z25NZFgvTDlRQmg4eTdwUXAxQ2YzeVRETm9LZkRxZz09PC9TaWduYXR1cmVWYWx1ZT48S2V5SW5mbz48WDUwOURhdGE-PFg1MDlDZXJ0aWZpY2F0ZT5NSUlETnpDQ0FoK2dBd0lCQWdJQkFEQU5CZ2txaGtpRzl3MEJBUXNGQURCZk1Rc3dDUVlEVlFRR0V3SkRRVEVMTUFrR0ExVUVDQXdDUVVJeEVEQU9CZ05WQkFjTUIwTmhiR2RoY25reER6QU5CZ05WQkFvTUJsaHRiRXRwZERFUE1BMEdBMVVFQ3d3R1dHMXNTMmwwTVE4d0RRWURWUVFEREFaWWJXeExhWFF3SGhjTk1UZ3hNREk1TURFek1EVXhXaGNOTVRneE1USTRNREV6TURVeFdqQmZNUXN3Q1FZRFZRUUdFd0pEUVRFTE1Ba0dBMVVFQ0F3Q1FVSXhFREFPQmdOVkJBY01CME5oYkdkaGNua3hEekFOQmdOVkJBb01CbGh0YkV0cGRERVBNQTBHQTFVRUN3d0dXRzFzUzJsME1ROHdEUVlEVlFRRERBWlliV3hMYVhRd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUREdVVadVBBTlV0OEdZYlA0TWVZZ0VJT3lydVhtUTVxYU80NVlwQ1lMUmcvZkt0ZzY5QlplZ0k5bXMrYlh2WGpTOHRDQzZRdVNyVWZwQ0xKNmN3aGs1ZGxsOG1FaFZJbXFRV1RwT2dMOWFsbDJNVzN3RC9HL0tFdjVNWUNMMndIc3N0SlFCWlgyTFYxTjFhcno2NitLVUFrV0V2dGpCTXpDV2V0SUNveGxiQ0ZBY2NoVDd6QUFBdHBDaGExSlc0Y1U2TGw2SVVFTjVYQWdWNTBpcFlGdEZRZ09OQ1VyMzlhL3p1WEVsRHZBbjJKRGdsaG1SYW9Mazh2TnBlT3ZHTGFVUWRIam5VUWRSNjl3RDFIWG5BSGJIbnVwUXY5WnpmeGlaZndBbmtNYnlqblA0amh2Wk9qcFdWQmM2dkw5dmRDYSs0Z2JMWHVqQ09laDVlSi9vcVQ0SEFnTUJBQUV3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUUzbTBYaW16UXlRODlmYXZMN2dpVHB2dGJ1NTVWMDJldXdOSHFHb095cGJwV3JiNW5Zd3VPRGRlRkZIMEV1RHhCS3lTY2hYUlljRmhSbUQ1N1RHQmZ5T1BOa0xmUTY3R1NGVzM4UlRJdXhOcWxGNWc1OFNLWm83VlZxQnVCVGxlRGFBS2pyYUwvSWVvL29zdW1lNlNBZEo5MHdGcXVobU83QkVqenJXbnN0RERIS3o1RFU5RjRCZVJlRm9GUTlOVXhacUhLQ0V3aXRDcnFGaWNFUERtaW5xYk1XdllwRkx2MkcxNXdUa0U0ekFEMlV0U25Rdzc2eHpHTjZIZWR2QVU2NXdWMUFUWStQZ056eEpBc3BqSWRrckQyUXpleDdOVnFQTWZjWGJ0STR6d0ZubkZtQVlEUExyeCtjejY5T3o1eWw5NHdHN29nVTN0MnFmUEFkS3AzVT08L1g1MDlDZXJ0aWZpY2F0ZT48L1g1MDlEYXRhPjwvS2V5SW5mbz48L1NpZ25hdHVyZT48U3ViamVjdD48TmFtZUlEIEZvcm1hdD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6MS4xOm5hbWVpZC1mb3JtYXQ6dW5zcGVjaWZpZWQiPm1lbHZpbmFAc3dhbmlhd3NraS5iaXo8L05hbWVJRD48U3ViamVjdENvbmZpcm1hdGlvbiBNZXRob2Q9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpjbTpiZWFyZXIiPjxTdWJqZWN0Q29uZmlybWF0aW9uRGF0YSBJblJlc3BvbnNlVG89Il80YzFmMmMzYS01NjViLTRkNWYtOTQzOC1iYjRlNWQwMGY4ZTciIE5vdE9uT3JBZnRlcj0iMjAxOC0xMC0yOVQwMTozNTo1MloiLz48L1N1YmplY3RDb25maXJtYXRpb24-PC9TdWJqZWN0PjxDb25kaXRpb25zIE5vdEJlZm9yZT0iMjAxOC0xMC0yOVQwMTozMDo1MloiIE5vdE9uT3JBZnRlcj0iMjAxOC0xMC0yOVQwNDozMDo1MloiPjxBdWRpZW5jZVJlc3RyaWN0aW9uPjxBdWRpZW5jZT5odHRwOi8vcHJvb2YudGVzdDo1MDAwL21ldGFkYXRhPC9BdWRpZW5jZT48L0F1ZGllbmNlUmVzdHJpY3Rpb24-PC9Db25kaXRpb25zPjxBdXRoblN0YXRlbWVudCBBdXRobkluc3RhbnQ9IjIwMTgtMTAtMjlUMDE6MzA6NTJaIiBTZXNzaW9uSW5kZXg9Il85ODExZDUyMC02ZGUyLTQ5NTMtYjZmNC1iYTFlZjkyYWMxNmQiPjxBdXRobkNvbnRleHQ-PEF1dGhuQ29udGV4dENsYXNzUmVmPnVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDphYzpjbGFzc2VzOlBhc3N3b3JkPC9BdXRobkNvbnRleHRDbGFzc1JlZj48L0F1dGhuQ29udGV4dD48L0F1dGhuU3RhdGVtZW50PjxBdHRyaWJ1dGVTdGF0ZW1lbnQ-PEF0dHJpYnV0ZSBOYW1lPSJpZCI-PEF0dHJpYnV0ZVZhbHVlPmE1NDhiZDcwLWE4YzMtNGEyZi04YWU3LTU1MmU3ZjMyYjRkZDwvQXR0cmlidXRlVmFsdWU-PC9BdHRyaWJ1dGU-PEF0dHJpYnV0ZSBOYW1lPSJlbWFpbCI-PEF0dHJpYnV0ZVZhbHVlPm1lbHZpbmFAc3dhbmlhd3NraS5iaXo8L0F0dHJpYnV0ZVZhbHVlPjwvQXR0cmlidXRlPjxBdHRyaWJ1dGUgTmFtZT0iY3JlYXRlZF9hdCI-PEF0dHJpYnV0ZVZhbHVlPjIwMTgtMTAtMjkgMDE6MzA6NTIgVVRDPC9BdHRyaWJ1dGVWYWx1ZT48L0F0dHJpYnV0ZT48L0F0dHJpYnV0ZVN0YXRlbWVudD48L0Fzc2VydGlvbj4K"
 }
 ```
 Response:
@@ -34,7 +34,7 @@ Response:
 Cache-Control: private, no-store
 Pragma: no-cache
 Content-Type: application/json; charset=utf-8
-X-Request-Id: fc75a9b9-9351-4356-96cf-c0519844f830
+X-Request-Id: d603c356-fa02-421a-bd5b-8502d9504897
 Transfer-Encoding: chunked
 ```
 ```json
doc/_includes/scim-resource-type-group.html
@@ -0,0 +1,54 @@
+
+#### GET http://localhost:5000/scim/v2/ResourceTypes/Group
+
+Example curl request:
+
+```bash
+$ curl http://localhost:5000/scim/v2/ResourceTypes/Group \
+  -X GET \
+  -d '' \
+  -H "Accept: application/json" \
+  -H "Content-Type: application/scim+json" \
+  -H "User-Agent: net/hippie 0.1.9" \
+  -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
+```
+Request:
+```text
+Accept: application/json
+Content-Type: application/scim+json
+User-Agent: net/hippie 0.1.9
+Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+```
+```json
+
+```
+Response:
+```text
+200 OK
+
+Content-Type: application/scim+json
+Etag: W/"d0dea12284b4b8c065c626de41ae8b7c"
+Cache-Control: max-age=0, private, must-revalidate
+X-Request-Id: 0638d0b4-9be7-4178-9090-c514ebee373f
+Transfer-Encoding: chunked
+```
+```json
+{
+  "schemas": [
+    "urn:ietf:params:scim:schemas:core:2.0:ResourceType"
+  ],
+  "id": "Group",
+  "meta": {
+    "location": "http://localhost:5000/scim/v2/resource_types/Group",
+    "resourceType": "ResourceType"
+  },
+  "description": "Group",
+  "endpoint": "http://localhost:5000/scim/v2/groups",
+  "name": "Group",
+  "schema": "urn:ietf:params:scim:schemas:core:2.0:Group",
+  "schemaExtensions": [
+
+  ]
+}
+```
+
doc/_includes/scim-resource-type-user.html
@@ -0,0 +1,54 @@
+
+#### GET http://localhost:5000/scim/v2/ResourceTypes/User
+
+Example curl request:
+
+```bash
+$ curl http://localhost:5000/scim/v2/ResourceTypes/User \
+  -X GET \
+  -d '' \
+  -H "Accept: application/json" \
+  -H "Content-Type: application/scim+json" \
+  -H "User-Agent: net/hippie 0.1.9" \
+  -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
+```
+Request:
+```text
+Accept: application/json
+Content-Type: application/scim+json
+User-Agent: net/hippie 0.1.9
+Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+```
+```json
+
+```
+Response:
+```text
+200 OK
+
+Content-Type: application/scim+json
+Etag: W/"de7bd5d9f401078c697e3c7412e52207"
+Cache-Control: max-age=0, private, must-revalidate
+X-Request-Id: bd85e44a-7b33-45a6-a1fd-c245ccf8cb50
+Transfer-Encoding: chunked
+```
+```json
+{
+  "schemas": [
+    "urn:ietf:params:scim:schemas:core:2.0:ResourceType"
+  ],
+  "id": "User",
+  "meta": {
+    "location": "http://localhost:5000/scim/v2/resource_types/User",
+    "resourceType": "ResourceType"
+  },
+  "description": "User Account",
+  "endpoint": "http://localhost:5000/scim/v2/users",
+  "name": "User",
+  "schema": "urn:ietf:params:scim:schemas:core:2.0:User",
+  "schemaExtensions": [
+
+  ]
+}
+```
+
doc/_includes/scim-resource-types.html
@@ -0,0 +1,73 @@
+
+#### GET http://localhost:5000/scim/v2/ResourceTypes
+
+Example curl request:
+
+```bash
+$ curl http://localhost:5000/scim/v2/ResourceTypes \
+  -X GET \
+  -d '' \
+  -H "Accept: application/json" \
+  -H "Content-Type: application/scim+json" \
+  -H "User-Agent: net/hippie 0.1.9" \
+  -H "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
+```
+Request:
+```text
+Accept: application/json
+Content-Type: application/scim+json
+User-Agent: net/hippie 0.1.9
+Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+```
+```json
+
+```
+Response:
+```text
+200 OK
+
+Content-Type: application/scim+json
+Etag: W/"56f19f58fa40ed54afeee2b454e0789d"
+Cache-Control: max-age=0, private, must-revalidate
+X-Request-Id: f415161c-58a4-4852-9bab-778851c72f0d
+Transfer-Encoding: chunked
+```
+```json
+[
+  {
+    "schemas": [
+      "urn:ietf:params:scim:schemas:core:2.0:ResourceType"
+    ],
+    "id": "User",
+    "meta": {
+      "location": "http://localhost:5000/scim/v2/resource_types/User",
+      "resourceType": "ResourceType"
+    },
+    "description": "User Account",
+    "endpoint": "http://localhost:5000/scim/v2/users",
+    "name": "User",
+    "schema": "urn:ietf:params:scim:schemas:core:2.0:User",
+    "schemaExtensions": [
+
+    ]
+  },
+  {
+    "schemas": [
+      "urn:ietf:params:scim:schemas:core:2.0:ResourceType"
+    ],
+    "id": "Group",
+    "meta": {
+      "location": "http://localhost:5000/scim/v2/resource_types/Group",
+      "resourceType": "ResourceType"
+    },
+    "description": "Group",
+    "endpoint": "http://localhost:5000/scim/v2/groups",
+    "name": "Group",
+    "schema": "urn:ietf:params:scim:schemas:core:2.0:Group",
+    "schemaExtensions": [
+
+    ]
+  }
+]
+```
+
doc/_includes/scim-schemas-groups.html
@@ -29,7 +29,7 @@ Response:
 Content-Type: application/scim+json
 Etag: W/"20238e8dae84ccca47f9554b77002d2b"
 Cache-Control: max-age=0, private, must-revalidate
-X-Request-Id: d185e203-8f0f-4078-b0c8-1663e7222411
+X-Request-Id: e982c061-0e4f-4c81-8cbb-baebf394c79f
 Transfer-Encoding: chunked
 ```
 ```json
doc/_includes/scim-schemas-users.html
@@ -29,7 +29,7 @@ Response:
 Content-Type: application/scim+json
 Etag: W/"224ff8cd051e6e139df9048f0ffeb953"
 Cache-Control: max-age=0, private, must-revalidate
-X-Request-Id: 30cf8370-e7b5-4d58-a527-eeec83ef7286
+X-Request-Id: 29eb018f-85a3-4adb-947d-31ef716e1943
 Transfer-Encoding: chunked
 ```
 ```json
doc/_includes/scim-schemas.html
@@ -29,7 +29,7 @@ Response:
 Content-Type: application/scim+json
 Etag: W/"c1a9d3beaf604b0b14d9df02a1b0e8ce"
 Cache-Control: max-age=0, private, must-revalidate
-X-Request-Id: 3ccd4831-5b94-4973-b411-86c14764f683
+X-Request-Id: 44c250c3-f37b-48c9-a100-4178695bdf8f
 Transfer-Encoding: chunked
 ```
 ```json
doc/_includes/scim-service-provider-config.html
@@ -27,9 +27,9 @@ Response:
 200 OK
 
 Content-Type: application/scim+json
-Etag: W/"449da5af9874b5ada395b77ec82d7a6b"
+Etag: W/"3f8a8e539ffd52c026e46a8671fddb4c"
 Cache-Control: max-age=0, private, must-revalidate
-X-Request-Id: d4547989-5b7c-47f8-a57f-9f427dda7c2b
+X-Request-Id: 4821d331-b70e-4bee-a415-8e65f0f4a712
 Transfer-Encoding: chunked
 ```
 ```json
@@ -71,8 +71,8 @@ Transfer-Encoding: chunked
   ],
   "meta": {
     "resourceType": "ServiceProviderConfig",
-    "created": "2018-10-29T01:24:19Z",
-    "lastModified": "2018-10-29T01:24:19Z",
+    "created": "2018-10-29T01:30:54Z",
+    "lastModified": "2018-10-29T01:30:54Z",
     "location": "http://localhost:5000/scim/v2/ServiceProviderConfig",
     "version": 1
   }
doc/_posts/2018-10-28-scim-resource-types.markdown
@@ -0,0 +1,15 @@
+---
+layout: post
+title:  "SCIM - Resource Types"
+date:   2018-10-28 19:28:00 -0600
+permalink: /scim/resource-types.html
+categories: scim
+---
+
+This endpoint adheres to [RFC-7643](https://tools.ietf.org/html/rfc7643#section-6).
+
+{% include scim-resource-types.html %}
+
+{% include scim-resource-type-user.html %}
+
+{% include scim-resource-type-group.html %}
spec/requests/scim/v2/resource_types_spec.rb
@@ -3,13 +3,10 @@
 require 'rails_helper'
 
 RSpec.describe "/scim/v2/ResourceTypes" do
-  let(:user) { create(:user) }
-  let(:token) { create(:access_token, subject: user).to_jwt }
   let(:headers) do
     {
       'Accept' => 'application/scim+json',
       'Content-Type' => 'application/scim+json',
-      'Authorization' => "Bearer #{token}"
     }
   end
 
spec/documentation.rb
@@ -156,4 +156,28 @@ RSpec.describe "documentation" do
       expect(response.code).to eql('200')
     end
   end
+
+  specify do
+    VCR.use_cassette("scim-resource-types") do
+      headers = { 'Content-Type' => Mime[:scim].to_s }
+      response = hippie.get("#{scheme}://#{host}/scim/v2/ResourceTypes", headers: headers)
+      expect(response.code).to eql('200')
+    end
+  end
+
+  specify do
+    VCR.use_cassette("scim-resource-type-user") do
+      headers = { 'Content-Type' => Mime[:scim].to_s }
+      response = hippie.get("#{scheme}://#{host}/scim/v2/ResourceTypes/User", headers: headers)
+      expect(response.code).to eql('200')
+    end
+  end
+
+  specify do
+    VCR.use_cassette("scim-resource-type-group") do
+      headers = { 'Content-Type' => Mime[:scim].to_s }
+      response = hippie.get("#{scheme}://#{host}/scim/v2/ResourceTypes/Group", headers: headers)
+      expect(response.code).to eql('200')
+    end
+  end
 end