mirror of
https://github.com/sasjs/core.git
synced 2026-01-10 10:50:04 +00:00
fix: adding authentication to server macros. Closes #221
This commit is contained in:
46
all.sas
46
all.sas
@@ -18978,8 +18978,11 @@ data _null_;
|
|||||||
run;
|
run;
|
||||||
|
|
||||||
data _null_;
|
data _null_;
|
||||||
file &fname1;
|
file &fname1 lrecl=1000;
|
||||||
|
infile "&_sasjs_tokenfile" lrecl=1000;
|
||||||
|
input;
|
||||||
put "Content-Type: multipart/form-data; boundary=&boundary";
|
put "Content-Type: multipart/form-data; boundary=&boundary";
|
||||||
|
put "Authorization: Bearer " _infile_;
|
||||||
run;
|
run;
|
||||||
|
|
||||||
%if &mdebug=1 %then %do;
|
%if &mdebug=1 %then %do;
|
||||||
@@ -19039,6 +19042,8 @@ options &optval;
|
|||||||
@param [in] driveloc The full path to the file in SASjs Drive
|
@param [in] driveloc The full path to the file in SASjs Drive
|
||||||
@param [in] mdebug= (0) Set to 1 to enable DEBUG messages
|
@param [in] mdebug= (0) Set to 1 to enable DEBUG messages
|
||||||
|
|
||||||
|
<h4> SAS Macros </h4>
|
||||||
|
@li mf_getuniquefileref.sas
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
@@ -19046,13 +19051,24 @@ options &optval;
|
|||||||
,mdebug=0
|
,mdebug=0
|
||||||
);
|
);
|
||||||
|
|
||||||
proc http method='DELETE'
|
%local headref;
|
||||||
|
%let headref=%mf_getuniquefileref();
|
||||||
|
|
||||||
|
data _null_;
|
||||||
|
file &headref lrecl=1000;
|
||||||
|
infile "&_sasjs_tokenfile" lrecl=1000;
|
||||||
|
input;
|
||||||
|
put "Authorization: Bearer " _infile_;
|
||||||
|
run;
|
||||||
|
|
||||||
|
proc http method='DELETE' headerin=&headref
|
||||||
url="&_sasjs_apiserverurl/SASjsApi/drive/file?_filePath=&driveloc";
|
url="&_sasjs_apiserverurl/SASjsApi/drive/file?_filePath=&driveloc";
|
||||||
%if &mdebug=1 %then %do;
|
%if &mdebug=1 %then %do;
|
||||||
debug level=2;
|
debug level=2;
|
||||||
%end;
|
%end;
|
||||||
run;
|
run;
|
||||||
|
|
||||||
|
filename &headref clear;
|
||||||
|
|
||||||
%mend ms_deletefile;
|
%mend ms_deletefile;
|
||||||
/**
|
/**
|
||||||
@@ -19062,7 +19078,7 @@ run;
|
|||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
%ms_getfile(/some/stored/file.ext, outref=myfile)
|
%ms_getfile(/Public/app/dc/services/public/settings.sas, outref=myfile)
|
||||||
|
|
||||||
@param [in] driveloc The full path to the file in SASjs Drive
|
@param [in] driveloc The full path to the file in SASjs Drive
|
||||||
@param [out] outref= (msgetfil) The fileref to contain the file.
|
@param [out] outref= (msgetfil) The fileref to contain the file.
|
||||||
@@ -19080,13 +19096,21 @@ run;
|
|||||||
);
|
);
|
||||||
|
|
||||||
/* use the recfm in a separate fileref to avoid issues with subsequent reads */
|
/* use the recfm in a separate fileref to avoid issues with subsequent reads */
|
||||||
%local binaryfref floc;
|
%local binaryfref floc headref;
|
||||||
%let binaryfref=%mf_getuniquefileref();
|
%let binaryfref=%mf_getuniquefileref();
|
||||||
|
%let headref=%mf_getuniquefileref();
|
||||||
%let floc=%sysfunc(pathname(work))/%mf_getuniquename().txt;
|
%let floc=%sysfunc(pathname(work))/%mf_getuniquename().txt;
|
||||||
filename &outref "&floc";
|
filename &outref "&floc" lrecl=32767;
|
||||||
filename &binaryfref "&floc" recfm=n;
|
filename &binaryfref "&floc" recfm=n;
|
||||||
|
|
||||||
proc http method='GET' out=&binaryfref
|
data _null_;
|
||||||
|
file &headref lrecl=1000;
|
||||||
|
infile "&_sasjs_tokenfile" lrecl=1000;
|
||||||
|
input;
|
||||||
|
put "Authorization: Bearer " _infile_;
|
||||||
|
run;
|
||||||
|
|
||||||
|
proc http method='GET' out=&binaryfref headerin=&headref
|
||||||
url="&_sasjs_apiserverurl/SASjsApi/drive/file?_filePath=&driveloc";
|
url="&_sasjs_apiserverurl/SASjsApi/drive/file?_filePath=&driveloc";
|
||||||
%if &mdebug=1 %then %do;
|
%if &mdebug=1 %then %do;
|
||||||
debug level=2;
|
debug level=2;
|
||||||
@@ -19094,9 +19118,9 @@ proc http method='GET' out=&binaryfref
|
|||||||
run;
|
run;
|
||||||
|
|
||||||
filename &binaryfref clear;
|
filename &binaryfref clear;
|
||||||
|
filename &headref clear;
|
||||||
|
|
||||||
%mend ms_getfile;
|
%mend ms_getfile;/**
|
||||||
/**
|
|
||||||
@file
|
@file
|
||||||
@brief Executes a SASjs Server Stored Program
|
@brief Executes a SASjs Server Stored Program
|
||||||
@details Runs a Stored Program (using POST method) and extracts the webout and
|
@details Runs a Stored Program (using POST method) and extracts the webout and
|
||||||
@@ -19141,10 +19165,10 @@ filename &binaryfref clear;
|
|||||||
)
|
)
|
||||||
|
|
||||||
data _null_;
|
data _null_;
|
||||||
file &fname1;
|
file &fname1 lrecl=1000;
|
||||||
infile "&_sasjs_tokenfile";
|
infile "&_sasjs_tokenfile" lrecl=1000;
|
||||||
input;
|
input;
|
||||||
put 'Authorization: Bearer' _infile_;
|
put 'Authorization: Bearer ' _infile_;
|
||||||
run;
|
run;
|
||||||
|
|
||||||
filename &outref temp;
|
filename &outref temp;
|
||||||
|
|||||||
3
package-lock.json
generated
3
package-lock.json
generated
@@ -6,9 +6,6 @@
|
|||||||
"": {
|
"": {
|
||||||
"name": "@sasjs/core",
|
"name": "@sasjs/core",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
|
||||||
"@sasjs/core": "^4.18.13"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@sasjs/cli": "3.13.0"
|
"@sasjs/cli": "3.13.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,7 +65,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "server",
|
"name": "server",
|
||||||
"serverUrl": "https://sas.analytium.co.uk:5000",
|
"serverUrl": "https://sas.analytium.co.uk:5006",
|
||||||
"serverType": "SASJS",
|
"serverType": "SASJS",
|
||||||
"httpsAgentOptions": {
|
"httpsAgentOptions": {
|
||||||
"allowInsecureRequests": false
|
"allowInsecureRequests": false
|
||||||
@@ -108,6 +108,16 @@
|
|||||||
"deployServicePack": true
|
"deployServicePack": true
|
||||||
},
|
},
|
||||||
"contextName": "SAS Job Execution compute context"
|
"contextName": "SAS Job Execution compute context"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "4gl",
|
||||||
|
"serverUrl": "https://frs2.4gl.io",
|
||||||
|
"serverType": "SASJS",
|
||||||
|
"httpsAgentOptions": {
|
||||||
|
"rejectUnauthorized": false,
|
||||||
|
"allowInsecureRequests": true
|
||||||
|
},
|
||||||
|
"appLoc": "/Public/app/core"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -61,8 +61,11 @@ data _null_;
|
|||||||
run;
|
run;
|
||||||
|
|
||||||
data _null_;
|
data _null_;
|
||||||
file &fname1;
|
file &fname1 lrecl=1000;
|
||||||
|
infile "&_sasjs_tokenfile" lrecl=1000;
|
||||||
|
input;
|
||||||
put "Content-Type: multipart/form-data; boundary=&boundary";
|
put "Content-Type: multipart/form-data; boundary=&boundary";
|
||||||
|
put "Authorization: Bearer " _infile_;
|
||||||
run;
|
run;
|
||||||
|
|
||||||
%if &mdebug=1 %then %do;
|
%if &mdebug=1 %then %do;
|
||||||
|
|||||||
@@ -17,6 +17,8 @@
|
|||||||
@param [in] driveloc The full path to the file in SASjs Drive
|
@param [in] driveloc The full path to the file in SASjs Drive
|
||||||
@param [in] mdebug= (0) Set to 1 to enable DEBUG messages
|
@param [in] mdebug= (0) Set to 1 to enable DEBUG messages
|
||||||
|
|
||||||
|
<h4> SAS Macros </h4>
|
||||||
|
@li mf_getuniquefileref.sas
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
@@ -24,12 +26,23 @@
|
|||||||
,mdebug=0
|
,mdebug=0
|
||||||
);
|
);
|
||||||
|
|
||||||
proc http method='DELETE'
|
%local headref;
|
||||||
|
%let headref=%mf_getuniquefileref();
|
||||||
|
|
||||||
|
data _null_;
|
||||||
|
file &headref lrecl=1000;
|
||||||
|
infile "&_sasjs_tokenfile" lrecl=1000;
|
||||||
|
input;
|
||||||
|
put "Authorization: Bearer " _infile_;
|
||||||
|
run;
|
||||||
|
|
||||||
|
proc http method='DELETE' headerin=&headref
|
||||||
url="&_sasjs_apiserverurl/SASjsApi/drive/file?_filePath=&driveloc";
|
url="&_sasjs_apiserverurl/SASjsApi/drive/file?_filePath=&driveloc";
|
||||||
%if &mdebug=1 %then %do;
|
%if &mdebug=1 %then %do;
|
||||||
debug level=2;
|
debug level=2;
|
||||||
%end;
|
%end;
|
||||||
run;
|
run;
|
||||||
|
|
||||||
|
filename &headref clear;
|
||||||
|
|
||||||
%mend ms_deletefile;
|
%mend ms_deletefile;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
%ms_getfile(/some/stored/file.ext, outref=myfile)
|
%ms_getfile(/Public/app/dc/services/public/settings.sas, outref=myfile)
|
||||||
|
|
||||||
@param [in] driveloc The full path to the file in SASjs Drive
|
@param [in] driveloc The full path to the file in SASjs Drive
|
||||||
@param [out] outref= (msgetfil) The fileref to contain the file.
|
@param [out] outref= (msgetfil) The fileref to contain the file.
|
||||||
@@ -23,13 +23,21 @@
|
|||||||
);
|
);
|
||||||
|
|
||||||
/* use the recfm in a separate fileref to avoid issues with subsequent reads */
|
/* use the recfm in a separate fileref to avoid issues with subsequent reads */
|
||||||
%local binaryfref floc;
|
%local binaryfref floc headref;
|
||||||
%let binaryfref=%mf_getuniquefileref();
|
%let binaryfref=%mf_getuniquefileref();
|
||||||
|
%let headref=%mf_getuniquefileref();
|
||||||
%let floc=%sysfunc(pathname(work))/%mf_getuniquename().txt;
|
%let floc=%sysfunc(pathname(work))/%mf_getuniquename().txt;
|
||||||
filename &outref "&floc";
|
filename &outref "&floc" lrecl=32767;
|
||||||
filename &binaryfref "&floc" recfm=n;
|
filename &binaryfref "&floc" recfm=n;
|
||||||
|
|
||||||
proc http method='GET' out=&binaryfref
|
data _null_;
|
||||||
|
file &headref lrecl=1000;
|
||||||
|
infile "&_sasjs_tokenfile" lrecl=1000;
|
||||||
|
input;
|
||||||
|
put "Authorization: Bearer " _infile_;
|
||||||
|
run;
|
||||||
|
|
||||||
|
proc http method='GET' out=&binaryfref headerin=&headref
|
||||||
url="&_sasjs_apiserverurl/SASjsApi/drive/file?_filePath=&driveloc";
|
url="&_sasjs_apiserverurl/SASjsApi/drive/file?_filePath=&driveloc";
|
||||||
%if &mdebug=1 %then %do;
|
%if &mdebug=1 %then %do;
|
||||||
debug level=2;
|
debug level=2;
|
||||||
@@ -37,5 +45,6 @@ proc http method='GET' out=&binaryfref
|
|||||||
run;
|
run;
|
||||||
|
|
||||||
filename &binaryfref clear;
|
filename &binaryfref clear;
|
||||||
|
filename &headref clear;
|
||||||
|
|
||||||
%mend ms_getfile;
|
%mend ms_getfile;
|
||||||
@@ -43,10 +43,10 @@
|
|||||||
)
|
)
|
||||||
|
|
||||||
data _null_;
|
data _null_;
|
||||||
file &fname1;
|
file &fname1 lrecl=1000;
|
||||||
infile "&_sasjs_tokenfile";
|
infile "&_sasjs_tokenfile" lrecl=1000;
|
||||||
input;
|
input;
|
||||||
put 'Authorization: Bearer' _infile_;
|
put 'Authorization: Bearer ' _infile_;
|
||||||
run;
|
run;
|
||||||
|
|
||||||
filename &outref temp;
|
filename &outref temp;
|
||||||
|
|||||||
Reference in New Issue
Block a user