Skip to content

Commit 9aced14

Browse files
committed
working tests and schema option on install
1 parent 13268c0 commit 9aced14

File tree

3 files changed

+9
-10
lines changed

3 files changed

+9
-10
lines changed

pgjwt--0.0.1.sql

+7-7
Original file line numberDiff line numberDiff line change
@@ -27,34 +27,34 @@ WITH
2727
WHEN algorithm = 'HS384' THEN 'sha384'
2828
WHEN algorithm = 'HS512' THEN 'sha512'
2929
ELSE '' END) -- hmac throws error
30-
SELECT url_encode(hmac(signables, secret, (select * FROM alg)));
30+
SELECT @extschema@.url_encode(hmac(signables, secret, (select * FROM alg)));
3131
$$;
3232

3333

3434
CREATE OR REPLACE FUNCTION sign(payload json, secret text, algorithm text DEFAULT 'HS256')
3535
RETURNS text LANGUAGE sql AS $$
3636
WITH
3737
header AS (
38-
SELECT url_encode(convert_to('{"alg":"' || algorithm || '","typ":"JWT"}', 'utf8'))
38+
SELECT @extschema@.url_encode(convert_to('{"alg":"' || algorithm || '","typ":"JWT"}', 'utf8'))
3939
),
4040
payload AS (
41-
SELECT url_encode(convert_to(payload::text, 'utf8'))
41+
SELECT @extschema@.url_encode(convert_to(payload::text, 'utf8'))
4242
),
4343
signables AS (
4444
SELECT (SELECT * FROM header) || '.' || (SELECT * FROM payload)
4545
)
4646
SELECT
4747
(SELECT * FROM signables)
4848
|| '.' ||
49-
algorithm_sign((SELECT * FROM signables), secret, algorithm);
49+
@extschema@.algorithm_sign((SELECT * FROM signables), secret, algorithm);
5050
$$;
5151

5252

5353
CREATE OR REPLACE FUNCTION verify(token text, secret text, algorithm text DEFAULT 'HS256')
5454
RETURNS table(header json, payload json, valid boolean) LANGUAGE sql AS $$
5555
SELECT
56-
convert_from(url_decode(r[1]), 'utf8')::json AS header,
57-
convert_from(url_decode(r[2]), 'utf8')::json AS payload,
58-
r[3] = algorithm_sign(r[1] || '.' || r[2], secret, algorithm) AS valid
56+
convert_from(@extschema@.url_decode(r[1]), 'utf8')::json AS header,
57+
convert_from(@extschema@.url_decode(r[2]), 'utf8')::json AS payload,
58+
r[3] = @extschema@.algorithm_sign(r[1] || '.' || r[2], secret, algorithm) AS valid
5959
FROM regexp_split_to_array(token, '\.') r;
6060
$$;

pgjwt.control

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# pgjwt extension
22
comment = 'JSON Web Token API for Postgresql'
33
default_version = '0.0.1'
4-
relocatable = true
4+
relocatable = false
55
requires = pgcrypto
66

test.sql

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
BEGIN;
22
SELECT plan(14);
3-
4-
3+
54
SELECT
65
is(sign('{"sub":"1234567890","name":"John Doe","admin":true}', 'secret'),
76
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ');

0 commit comments

Comments
 (0)