77 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
88 * specific language governing permissions and limitations under the License.
99 */
10- var http = require ( 'http' ) ;
10+ var http = null ; // will use either http or https, depending on "secure" option
1111var Q = require ( 'q' ) ;
1212var debugLogger = require ( './utils' ) . debugLogger ( 'wcm-request' ) ;
1313var currentRequestLevel = 0 ; // Track number of concurrent requests
@@ -18,7 +18,10 @@ var warnParallel = true;
1818var httpGetHelper = function ( options ) {
1919 options . headers . Cookie = authCookie ;
2020 var deferred = Q . defer ( ) , body = '' , doRequest = function ( options ) {
21- debugLogger . trace ( 'httpGetHelper:: options::' + options ) ;
21+ debugLogger . trace ( 'httpGetHelper:: options::' , options ) ;
22+ if ( options . secure ) {
23+ options . rejectUnauthorized = false ;
24+ }
2225 var reqGet = http . request ( options , function ( response ) {
2326 if ( options . headers && options . headers . ContentType && options . headers . ContentType . indexOf ( 'image' ) != - 1 )
2427 response . setEncoding ( 'binary' ) ;
@@ -71,7 +74,10 @@ var httpGetHelper = function(options) {
7174var httpPostHelper = function ( options , postData ) {
7275 options . headers . Cookie = authCookie ;
7376 var deferred = Q . defer ( ) , body = '' , doRequest = function ( options , postData ) {
74- debugLogger . trace ( 'httpPostHelper:: options::' + options + ' postData::' + postData ) ;
77+ debugLogger . trace ( 'httpPostHelper:: options::' , options , ' postData::' + postData ) ;
78+ if ( options . secure ) {
79+ options . rejectUnauthorized = false ;
80+ }
7581 var reqPost = http . request ( options , function ( response ) {
7682 if ( response . statusCode == 404 ) {
7783 var err = getErrorFromResponse ( null , response ) ;
@@ -140,9 +146,12 @@ var getLTPAToken = function(user, pass, options, postData) {
140146 } ;
141147
142148 var deferred = Q . defer ( ) , doRequest = function ( optionspost , options , postData ) {
143- debugLogger . trace ( 'getLTPAToken:: user::' + user + ' pass::' + pass + ' options::' + options + ' postData::' + postData ) ;
149+ debugLogger . trace ( 'getLTPAToken:: user::' + user + ' options::' , options , ' postData::' + postData ) ;
144150 // todo use request instead of node http for cleaner error handling
145151 try {
152+ if ( options . secure ) {
153+ optionspost . rejectUnauthorized = false ;
154+ }
146155 var reqPost = http . request ( optionspost , function ( response ) {
147156 if ( ! response . headers [ "set-cookie" ] ) {
148157 var err = getErrorFromResponse ( "Authentication error" ) ;
@@ -238,7 +247,7 @@ var maxLtpaAge = 1000 * 60 * 30; // 30 minutes
238247
239248var authenticatedRequest = function ( user , pass , options , postData ) {
240249 var deferred = Q . defer ( ) , authenticate = function ( user , pass , options , postData ) {
241- debugLogger . trace ( 'authenticatedRequest:: user::' + user + ' pass::' + pass + ' options::' + options + ' postData::' + postData ) ;
250+ debugLogger . trace ( 'authenticatedRequest:: user::' + user + ' options::' , options , ' postData::' + postData ) ;
242251 // sometimes the content HandlerPath might be part of the uri already if not add
243252 if ( options . path . lastIndexOf ( options . contentHandlerPath , 0 ) != 0 )
244253 options . path = options . contentHandlerPath + options . path ;
@@ -347,6 +356,7 @@ var getJson = function(uri) {
347356 port : globalPort ,
348357 contentHandlerPath : globalContentHandlerPath ,
349358 path : uri ,
359+ secure : globalSecure ,
350360 method : 'GET' ,
351361 headers : {
352362 Accept : "application/json"
@@ -378,6 +388,7 @@ var setJson = function(uri, postData) {
378388 port : globalPort ,
379389 contentHandlerPath : globalContentHandlerPath ,
380390 path : uri ,
391+ secure : globalSecure ,
381392 method : 'Post' ,
382393 headers : {
383394 'Content-Type' : 'application/atom+xml' ,
@@ -412,6 +423,7 @@ var setContent = function(uri, contentType, data) {
412423 contentHandlerPath : globalContentHandlerPath ,
413424 port : globalPort ,
414425 path : uri ,
426+ secure : globalSecure ,
415427 method : 'Put' ,
416428 headers : {
417429 'ContentType' : contentType ,
@@ -445,6 +457,7 @@ var getContent = function(uri, contentType) {
445457 port : globalPort ,
446458 contentHandlerPath : globalContentHandlerPath ,
447459 path : uri + '?mime-type=' + encodeURIComponent ( contentType ) ,
460+ secure : globalSecure ,
448461 method : 'Get' ,
449462 headers : {
450463 'Content-Type' : contentType ,
@@ -474,10 +487,14 @@ var globalPort = null;
474487var globalContentHandlerPath = '/wps/mycontenthandler' ;
475488var globalUser = '' ;
476489var globalPassword = '' ;
490+ var globalSecure = false ;
477491var authCookie = null ;
478492
479- var init = function ( host , port , user , password , contentHandlerPath ) {
480- debugLogger . trace ( 'init:: host::' + host + ' port::' + port + ' user::' + user + ' contentHandlerPath::' + contentHandlerPath ) ;
493+ var init = function ( host , port , user , password , contentHandlerPath , secure ) {
494+ if ( secure == undefined )
495+ secure = false ;
496+ http = secure ? require ( 'https' ) : require ( 'http' ) ;
497+ debugLogger . trace ( 'init:: host::' + host + ' port::' + port + ' user::' + user + ' contentHandlerPath::' + contentHandlerPath + ' secure::' + secure ) ;
481498 var deferred = Q . defer ( ) , initialize = function ( contentHandlerPath ) {
482499 var pathComponents = contentHandlerPath . split ( '/' ) ;
483500 // for vitrula portals the last component is the portal context if
@@ -504,6 +521,7 @@ var init = function(host, port, user, password, contentHandlerPath) {
504521 } ;
505522 globalHost = host ;
506523 globalPort = port ;
524+ globalSecure = secure ;
507525 if ( contentHandlerPath != undefined )
508526 globalContentHandlerPath = contentHandlerPath ;
509527 globalUser = user ;
0 commit comments