From 7df5dfc51533a52fb0574ef7706e9cadc89cd03c Mon Sep 17 00:00:00 2001 From: "Jose E. Cribeiro Aneiros" Date: Tue, 26 Mar 2024 16:34:40 +0100 Subject: [PATCH 1/2] Upgrades deps --- rebar.config | 4 ++-- rebar.lock | 42 +++++++++++++++++++++++++++--------------- 2 files changed, 29 insertions(+), 17 deletions(-) diff --git a/rebar.config b/rebar.config index 79530ec..32f5f81 100644 --- a/rebar.config +++ b/rebar.config @@ -2,8 +2,8 @@ [debug_info, warnings_as_errors]}. -{deps, [{hackney, "~> 1.9"}, - {jsx, "~> 2.9"}]}. +{deps, [{hackney, "1.20.1"}, + {jsx, "2.11.0"}]}. {shell, [{apps, [augle]}]}. diff --git a/rebar.lock b/rebar.lock index 67e0b53..2c82c4d 100644 --- a/rebar.lock +++ b/rebar.lock @@ -1,20 +1,32 @@ -{"1.1.0", -[{<<"certifi">>,{pkg,<<"certifi">>,<<"2.0.0">>},1}, - {<<"hackney">>,{pkg,<<"hackney">>,<<"1.9.0">>},0}, - {<<"idna">>,{pkg,<<"idna">>,<<"5.1.0">>},1}, - {<<"jsx">>,{pkg,<<"jsx">>,<<"2.8.2">>},0}, +{"1.2.0", +[{<<"certifi">>,{pkg,<<"certifi">>,<<"2.12.0">>},1}, + {<<"hackney">>,{pkg,<<"hackney">>,<<"1.20.1">>},0}, + {<<"idna">>,{pkg,<<"idna">>,<<"6.1.1">>},1}, + {<<"jsx">>,{pkg,<<"jsx">>,<<"2.11.0">>},0}, {<<"metrics">>,{pkg,<<"metrics">>,<<"1.0.1">>},1}, - {<<"mimerl">>,{pkg,<<"mimerl">>,<<"1.0.2">>},1}, - {<<"ssl_verify_fun">>,{pkg,<<"ssl_verify_fun">>,<<"1.1.1">>},1}, - {<<"unicode_util_compat">>,{pkg,<<"unicode_util_compat">>,<<"0.3.1">>},2}]}. + {<<"mimerl">>,{pkg,<<"mimerl">>,<<"1.2.0">>},1}, + {<<"parse_trans">>,{pkg,<<"parse_trans">>,<<"3.4.1">>},1}, + {<<"ssl_verify_fun">>,{pkg,<<"ssl_verify_fun">>,<<"1.1.7">>},1}, + {<<"unicode_util_compat">>,{pkg,<<"unicode_util_compat">>,<<"0.7.0">>},1}]}. [ {pkg_hash,[ - {<<"certifi">>, <<"A0C0E475107135F76B8C1D5BC7EFB33CD3815CB3CF3DEA7AEFDD174DABEAD064">>}, - {<<"hackney">>, <<"51C506AFC0A365868469DCFC79A9D0B94D896EC741CFD5BD338F49A5EC515BFE">>}, - {<<"idna">>, <<"D72B4EFFEB324AD5DA3CAB1767CB16B17939004E789D8C0AD5B70F3CEA20C89A">>}, - {<<"jsx">>, <<"7ACC7D785B5ABE8A6E9ADBDE926A24E481F29956DD8B4DF49E3E4E7BCC92A018">>}, + {<<"certifi">>, <<"2D1CCA2EC95F59643862AF91F001478C9863C2AC9CB6E2F89780BFD8DE987329">>}, + {<<"hackney">>, <<"8D97AEC62DDDDD757D128BFD1DF6C5861093419F8F7A4223823537BAD5D064E2">>}, + {<<"idna">>, <<"8A63070E9F7D0C62EB9D9FCB360A7DE382448200FBBD1B106CC96D3D8099DF8D">>}, + {<<"jsx">>, <<"08154624050333919B4AC1B789667D5F4DB166DC50E190C4D778D1587F102EE0">>}, {<<"metrics">>, <<"25F094DEA2CDA98213CECC3AEFF09E940299D950904393B2A29D191C346A8486">>}, - {<<"mimerl">>, <<"993F9B0E084083405ED8252B99460C4F0563E41729AB42D9074FD5E52439BE88">>}, - {<<"ssl_verify_fun">>, <<"28A4D65B7F59893BC2C7DE786DEC1E1555BD742D336043FE644AE956C3497FBE">>}, - {<<"unicode_util_compat">>, <<"A1F612A7B512638634A603C8F401892AFBF99B8CE93A45041F8AACA99CADB85E">>}]} + {<<"mimerl">>, <<"67E2D3F571088D5CFD3E550C383094B47159F3EEE8FFA08E64106CDF5E981BE3">>}, + {<<"parse_trans">>, <<"6E6AA8167CB44CC8F39441D05193BE6E6F4E7C2946CB2759F015F8C56B76E5FF">>}, + {<<"ssl_verify_fun">>, <<"354C321CF377240C7B8716899E182CE4890C5938111A1296ADD3EC74CF1715DF">>}, + {<<"unicode_util_compat">>, <<"BC84380C9AB48177092F43AC89E4DFA2C6D62B40B8BD132B1059ECC7232F9A78">>}]}, +{pkg_hash_ext,[ + {<<"certifi">>, <<"EE68D85DF22E554040CDB4BE100F33873AC6051387BAF6A8F6CE82272340FF1C">>}, + {<<"hackney">>, <<"FE9094E5F1A2A2C0A7D10918FEE36BFEC0EC2A979994CFF8CFE8058CD9AF38E3">>}, + {<<"idna">>, <<"92376EB7894412ED19AC475E4A86F7B413C1B9FBB5BD16DCCD57934157944CEA">>}, + {<<"jsx">>, <<"EED26A0D04D217F9EECEFFFB89714452556CF90EB38F290A27A4D45B9988F8C0">>}, + {<<"metrics">>, <<"69B09ADDDC4F74A40716AE54D140F93BEB0FB8978D8636EADED0C31B6F099F16">>}, + {<<"mimerl">>, <<"F278585650AA581986264638EBF698F8BB19DF297F66AD91B18910DFC6E19323">>}, + {<<"parse_trans">>, <<"620A406CE75DADA827B82E453C19CF06776BE266F5A67CFF34E1EF2CBB60E49A">>}, + {<<"ssl_verify_fun">>, <<"FE4C190E8F37401D30167C8C405EDA19469F34577987C76DDE613E838BBC67F8">>}, + {<<"unicode_util_compat">>, <<"25EEE6D67DF61960CF6A794239566599B09E17E668D3700247BC498638152521">>}]} ]. From 1d899570c478591ec2c268a641cc5b6913af103c Mon Sep 17 00:00:00 2001 From: "Jose E. Cribeiro Aneiros" Date: Fri, 16 Aug 2024 11:38:31 +0200 Subject: [PATCH 2/2] feat: Adds a configuration to change autentication host --- src/augle_conf.erl | 27 +++++++++++++++++++++++++++ src/augle_jwt.erl | 13 +++++++------ 2 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 src/augle_conf.erl diff --git a/src/augle_conf.erl b/src/augle_conf.erl new file mode 100644 index 0000000..989ca1d --- /dev/null +++ b/src/augle_conf.erl @@ -0,0 +1,27 @@ +%%%------------------------------------------------------------------- +%%% @author Sito +%%% @copyright (C) 2024, Nomasystems +%%% @doc +%%% +%%% @end +%%% Created : 16 Aug 2024 by Sito +%%%------------------------------------------------------------------- +-module(augle_conf). + +%%% EXTERNAL EXPORTS +-export([ + auth_host/0, + auth_path/0 +]). + +-define(AUTH_HOST, <<"https://www.googleapis.com">>). +-define(AUTH_PATH, <<"/oauth2/v4/token">>). + +%%%----------------------------------------------------------------------------- +%%% EXTERNAL EXPORTS +%%%----------------------------------------------------------------------------- +auth_host() -> + application:get_env(augle, auth_host, ?AUTH_HOST). + +auth_path() -> + application:get_env(augle, auth_path, ?AUTH_PATH). \ No newline at end of file diff --git a/src/augle_jwt.erl b/src/augle_jwt.erl index dab746a..d30dc51 100644 --- a/src/augle_jwt.erl +++ b/src/augle_jwt.erl @@ -12,17 +12,15 @@ -include_lib("public_key/include/public_key.hrl"). --define(HOST, "https://www.googleapis.com"). --define(TOKEN_PATH, "/oauth2/v4/token"). - --define(AUD, <<"https://www.googleapis.com/oauth2/v4/token">>). -define(URLENCODED_CONTENT_TYPE, <<"application/x-www-form-urlencoded">>). -define(JWT_HEADER, [{alg, <<"RS256">>}, {typ, <<"JWT">>}]). access_token(Iss, Scopes, EncodedPrivateKey) -> Jwt = jwt(Iss, Scopes, EncodedPrivateKey), Uri = <<"grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion=">>, - case hackney:post(<>, + AuthHost = augle_conf:auth_host(), + AuthPath = augle_conf:auth_path(), + case hackney:post(<>, [{<<"Content-Type">>, ?URLENCODED_CONTENT_TYPE}], <>, []) of {ok, 200, _RespHeaders, Client} -> @@ -55,9 +53,12 @@ asn1_decode(Der) -> Der. jwt_claim_set(Iss, Scopes) -> + AuthHost = augle_conf:auth_host(), + AuthPath = augle_conf:auth_path(), + Aud = <>, [{iss, Iss}, {scope, Scopes}, - {aud, ?AUD}, + {aud, Aud}, {exp, calendar:datetime_to_gregorian_seconds(calendar:universal_time()) - 62167219200 + 3600}, {iat, calendar:datetime_to_gregorian_seconds(calendar:universal_time()) - 62167219200}].