mirror of
https://github.com/sasjs/core.git
synced 2026-01-16 04:50:05 +00:00
fix: .sasjslint file and indentation issues
This commit is contained in:
@@ -4,15 +4,17 @@
|
||||
@details When building apps on SAS Viya, an client id and secret is required.
|
||||
This macro will obtain the Consul Token and use that to call the Web Service.
|
||||
|
||||
more info: https://developer.sas.com/reference/auth/#register
|
||||
and: http://proc-x.com/2019/01/authentication-to-sas-viya-a-couple-of-approaches/
|
||||
more info: https://developer.sas.com/reference/auth/#register
|
||||
and:
|
||||
http://proc-x.com/2019/01/authentication-to-sas-viya-a-couple-of-approaches
|
||||
|
||||
The default viyaroot location is /opt/sas/viya/config
|
||||
|
||||
Usage:
|
||||
|
||||
%* compile macros;
|
||||
filename mc url "https://raw.githubusercontent.com/sasjs/core/main/all.sas";
|
||||
filename mc url
|
||||
"https://raw.githubusercontent.com/sasjs/core/main/all.sas";
|
||||
%inc mc;
|
||||
|
||||
%* specific client with just openid scope;
|
||||
@@ -33,7 +35,8 @@
|
||||
@param client_id= The client name. Auto generated if blank.
|
||||
@param client_secret= Client secret Auto generated if client is blank.
|
||||
@param scopes= list of space-seperated unquoted scopes (default is openid)
|
||||
@param grant_type= valid values are "password" or "authorization_code" (unquoted)
|
||||
@param grant_type= valid values are "password" or "authorization_code"
|
||||
(unquoted)
|
||||
@param outds= the dataset to contain the registered client id and secret
|
||||
@param access_token_validity= The duration of validity of the access token
|
||||
in seconds. A value of DEFAULT will omit the entry (and use system default)
|
||||
@@ -78,15 +81,16 @@
|
||||
,refresh_token_validity=DEFAULT
|
||||
,outjson=_null_
|
||||
);
|
||||
%local consul_token fname1 fname2 fname3 libref access_token url;
|
||||
%local consul_token fname1 fname2 fname3 libref access_token url tokloc;
|
||||
|
||||
%if client_name=DEFAULT %then %let client_name=
|
||||
Generated by %mf_getuser() on %sysfunc(datetime(),datetime19.) using SASjs;
|
||||
|
||||
options noquotelenmax;
|
||||
/* first, get consul token needed to get client id / secret */
|
||||
%let tokloc=/etc/SASSecurityCertificateFramework/tokens/consul/default;
|
||||
data _null_;
|
||||
infile "%mf_loc(VIYACONFIG)/etc/SASSecurityCertificateFramework/tokens/consul/default/client.token";
|
||||
infile "%mf_loc(VIYACONFIG)&tokloc/client.token";
|
||||
input token:$64.;
|
||||
call symputx('consul_token',token);
|
||||
run;
|
||||
@@ -97,8 +101,9 @@ run;
|
||||
/* request the client details */
|
||||
%let fname1=%mf_getuniquefileref();
|
||||
proc http method='POST' out=&fname1
|
||||
url="&base_uri/SASLogon/oauth/clients/consul?callback=false%str(&)serviceId=app";
|
||||
headers "X-Consul-Token"="&consul_token";
|
||||
url="&base_uri/SASLogon/oauth/clients/consul?callback=false%str(&)%trim(
|
||||
)serviceId=app";
|
||||
headers "X-Consul-Token"="&consul_token";
|
||||
run;
|
||||
|
||||
%let libref=%mf_getuniquelibref();
|
||||
@@ -111,8 +116,8 @@ data _null_;
|
||||
run;
|
||||
|
||||
/**
|
||||
* register the new client
|
||||
*/
|
||||
* register the new client
|
||||
*/
|
||||
%let fname2=%mf_getuniquefileref();
|
||||
%if x&client_id.x=xx %then %do;
|
||||
%let client_id=client_%sysfunc(ranuni(0),hex16.);
|
||||
@@ -122,7 +127,8 @@ run;
|
||||
%let scopes=%sysfunc(coalescec(&scopes,openid));
|
||||
%let scopes=%mf_getquotedstr(&scopes,QUOTE=D,indlm=|);
|
||||
%let grant_type=%mf_getquotedstr(&grant_type,QUOTE=D,indlm=|);
|
||||
%let required_user_groups=%mf_getquotedstr(&required_user_groups,QUOTE=D,indlm=|);
|
||||
%let required_user_groups=
|
||||
%mf_getquotedstr(&required_user_groups,QUOTE=D,indlm=|);
|
||||
|
||||
data _null_;
|
||||
file &fname2;
|
||||
@@ -139,9 +145,11 @@ data _null_;
|
||||
if reqd_groups = '""' then reqd_groups ='';
|
||||
else reqd_groups=cats(',"required_user_groups":[',reqd_groups,']');
|
||||
autoapprove=trim(symget('autoapprove'));
|
||||
if not missing(autoapprove) then autoapprove=cats(',"autoapprove":',autoapprove);
|
||||
if not missing(autoapprove) then autoapprove=
|
||||
cats(',"autoapprove":',autoapprove);
|
||||
use_session=trim(symget('use_session'));
|
||||
if not missing(use_session) then use_session=cats(',"use_session":',use_session);
|
||||
if not missing(use_session) then use_session=
|
||||
cats(',"use_session":',use_session);
|
||||
|
||||
put '{' clientid ;
|
||||
put clientsecret ;
|
||||
@@ -206,10 +214,12 @@ run;
|
||||
%put GRANT_TYPE=&grant_type;
|
||||
%put;
|
||||
%if %index(%superq(grant_type),authorization_code) %then %do;
|
||||
/* cannot use base_uri here as it includes the protocol which may be incorrect externally */
|
||||
%put NOTE: The developer must also register below and select 'openid' to get the grant code:;
|
||||
/* cannot use base_uri here as it includes the protocol which may be incorrect
|
||||
externally */
|
||||
%put NOTE: Visit the link below and select 'openid' to get the grant code:;
|
||||
%put NOTE- ;
|
||||
%put NOTE- &url/SASLogon/oauth/authorize?client_id=&client_id%str(&)response_type=code;
|
||||
%put NOTE- &url/SASLogon/oauth/authorize?client_id=&client_id%str(&)%trim(
|
||||
)response_type=code;
|
||||
%put NOTE- ;
|
||||
%end;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user