Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add support for jwt authorization (close #186) #255

Merged
merged 21 commits into from
Aug 30, 2018
Merged
Changes from 1 commit
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
1d82191
JWT Auth mode for server
ecthiender Jul 27, 2018
8f9b3c4
implement JWT specific errors
ecthiender Jul 30, 2018
556c4f5
Improve auth mode types
ecthiender Jul 30, 2018
1ba7d1e
Fix an issue parsing x-hasura-* claims from JWT
ecthiender Jul 30, 2018
e1fbf50
add support for RSA JWK; add JWT secret as JSON
ecthiender Jul 31, 2018
ec495d6
support RSA JWKs in PKCS8/PKCS1/X509 format
ecthiender Aug 3, 2018
6c1b6b9
Merge branch 'master' of github.com:hasura/graphql-engine into fix-18…
ecthiender Aug 6, 2018
bc90347
minor refactor and fix help text for jwt secret
ecthiender Aug 6, 2018
4511d30
Merge branch 'master' of github.com:hasura/graphql-engine into fix-18…
ecthiender Aug 7, 2018
8b28a28
Merge branch 'master' of github.com:hasura/graphql-engine into fix-18…
ecthiender Aug 9, 2018
7bf4e0a
code review fix for JWT support
ecthiender Aug 9, 2018
c20a647
Merge branch 'master' of github.com:hasura/graphql-engine into fix-18…
ecthiender Aug 22, 2018
9c6ee83
bug fix in jwt metadata handling
ecthiender Aug 22, 2018
ea77dbf
add support for x-hasura-allowed-roles in JWT mode
ecthiender Aug 24, 2018
6f1f783
Merge branch 'master' of github.com:hasura/graphql-engine into fix-18…
ecthiender Aug 28, 2018
08515ac
minor refactor in jwt auth
ecthiender Aug 28, 2018
1b2ad21
default role, when using allowed roles, should come from the jwt claims
ecthiender Aug 28, 2018
312a645
Merge branch 'master' of github.com:hasura/graphql-engine into fix-18…
ecthiender Aug 29, 2018
d59e3f4
change access key and webhook to newtypes
ecthiender Aug 30, 2018
4f2a977
Merge branch 'master' into fix-186-jwt-auth
0x777 Aug 30, 2018
0d2326b
Merge branch 'master' into fix-186-jwt-auth
shahidhk Aug 30, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
bug fix in jwt metadata handling
  not deleting user role from UserInfo metadata headers, and deleting
  access key
  • Loading branch information
ecthiender committed Aug 22, 2018
commit 9c6ee8373deb01158e52eca941be6032a4d14e7f
12 changes: 6 additions & 6 deletions server/src-lib/Hasura/Server/Auth/JWT.hs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import Data.List (find)
import Data.Time.Clock (getCurrentTime)
import Hasura.Prelude
import Hasura.RQL.Types
import Hasura.Server.Utils (userRoleHeader)
import Hasura.Server.Utils (accessKeyHeader, userRoleHeader)

import qualified Data.Aeson as A
import qualified Data.ByteString.Lazy as BL
Expand Down Expand Up @@ -57,16 +57,16 @@ processJwt key headers = do
claims ^. unregisteredClaims

-- transform the map of text:aeson-value -> text:text
metadataWithRole <- decodeJSON $ A.Object claimsMap
metadata <- decodeJSON $ A.Object claimsMap

-- throw error if role is not in claims
let mRole = Map.lookup userRoleHeader metadataWithRole
let mRole = Map.lookup userRoleHeader metadata
role <- maybe missingRoleClaim return mRole

-- delete the x-hasura-role key from this map
let metadata = Map.delete userRoleHeader metadataWithRole
-- delete the x-hasura-access-key from this map
let finalMetadata = Map.delete accessKeyHeader metadata

return $ UserInfo (RoleName role) metadata
return $ UserInfo (RoleName role) finalMetadata

where
parseAuthzHeader = do
Expand Down