File tree Expand file tree Collapse file tree 3 files changed +21
-13
lines changed
Expand file tree Collapse file tree 3 files changed +21
-13
lines changed Original file line number Diff line number Diff line change 1- var fs = require ( 'fs' ) ;
21var path = require ( 'path' ) ;
32var utils = require ( './utils' ) ;
43var Parser = require ( 'xmldom' ) . DOMParser ;
@@ -10,7 +9,7 @@ var crypto = require('crypto');
109var EncryptXml = require ( './xml/encrypt' ) ;
1110var SignXml = require ( './xml/sign' ) ;
1211
13- var saml11 = fs . readFileSync ( path . join ( __dirname , 'saml11.template' ) ) . toString ( ) ;
12+ var newSaml11Document = utils . factoryForNode ( path . join ( __dirname , 'saml11.template' ) ) ;
1413
1514var NAMESPACE = 'urn:oasis:names:tc:SAML:1.0:assertion' ;
1615
@@ -74,7 +73,7 @@ exports.create = function(options, callback) {
7473function createAssertion ( options , strategies , callback ) {
7574 var doc ;
7675 try {
77- doc = new Parser ( ) . parseFromString ( saml11 . toString ( ) ) ;
76+ doc = newSaml11Document ( ) ;
7877 } catch ( err ) {
7978 return utils . reportError ( err , callback ) ;
8079 }
Original file line number Diff line number Diff line change 1- var fs = require ( 'fs' ) ;
21var path = require ( 'path' ) ;
32var async = require ( 'async' ) ;
4- var Parser = require ( 'xmldom' ) . DOMParser ;
53var moment = require ( 'moment' ) ;
64var xmlNameValidator = require ( 'xml-name-validator' ) ;
75var is_uri = require ( 'valid-url' ) . is_uri ;
@@ -10,14 +8,7 @@ var EncryptXml = require('./xml/encrypt');
108var SignXml = require ( './xml/sign' ) ;
119var utils = require ( './utils' ) ;
1210
13- var newSaml20Document = ( function ( ) {
14- var saml20Template = fs . readFileSync ( path . join ( __dirname , 'saml20.template' ) ) ;
15- var prototypeDoc = new Parser ( ) . parseFromString ( saml20Template . toString ( ) )
16-
17- return function ( ) {
18- return prototypeDoc . cloneNode ( true ) ;
19- } ;
20- } ) ( ) ;
11+ var newSaml20Document = utils . factoryForNode ( path . join ( __dirname , 'saml20.template' ) ) ;
2112
2213var NAMESPACE = 'urn:oasis:names:tc:SAML:2.0:assertion' ;
2314
Original file line number Diff line number Diff line change 1+ var fs = require ( 'fs' ) ;
2+ var Parser = require ( 'xmldom' ) . DOMParser ;
3+
14exports . pemToCert = function ( pem ) {
25 var cert = / - - - - - B E G I N C E R T I F I C A T E - - - - - ( [ ^ - ] * ) - - - - - E N D C E R T I F I C A T E - - - - - / g. exec ( pem . toString ( ) ) ;
36 if ( cert && cert . length > 0 ) {
@@ -57,4 +60,19 @@ exports.removeWhitespace = function(xml) {
5760
5861function getRandomInt ( min , max ) {
5962 return Math . floor ( Math . random ( ) * ( max - min + 1 ) ) + min ;
63+ }
64+
65+ /**
66+ * Returns a function that can be called to create a new Node.
67+ *
68+ * @param {string } pathToTemplate an absolute path to a template file
69+ * @return {function(): Node }
70+ */
71+ exports . factoryForNode = function factoryForNode ( pathToTemplate ) {
72+ var template = fs . readFileSync ( pathToTemplate )
73+ var prototypeDoc = new Parser ( ) . parseFromString ( template . toString ( ) )
74+
75+ return function ( ) {
76+ return prototypeDoc . cloneNode ( true ) ;
77+ } ;
6078} ;
You can’t perform that action at this time.
0 commit comments