{"_id":"http-cas-client","_rev":"13-f3279b77f4c68d023370f69bbc3e3fa9","name":"http-cas-client","dist-tags":{"latest":"0.4.3"},"versions":{"0.0.1":{"name":"http-cas-client","version":"0.0.1","description":"```js\r const casHandler = cas({\r \torigin: 'http://localhost:9000',\r \tprefix: '/cas',\r \tslo: {\r \t\tenabled: true,\r \t\tpath: '/'\r \t},\r \tignore: ['/*.ico'],\r \tredirect: false\r });","main":"index.js","directories":{"test":"test"},"dependencies":{"axios":"^0.18.0","cookie":"^0.3.1","debug":"^4.1.1","lodash":"^4.17.11","micromatch":"^3.1.10","node-rsa":"^1.0.2","qs":"^6.6.0","raw-body":"^2.3.3","xml2js":"^0.4.19"},"devDependencies":{"koa":"^2.6.2","koa-bodyparser":"^4.2.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/lemonce/cas-client.git"},"keywords":[],"author":"","license":"ISC","bugs":{"url":"https://github.com/lemonce/cas-client/issues"},"homepage":"https://github.com/lemonce/cas-client#readme","gitHead":"944c9ff57d64f8c1d265aacf7968dee14a34aec9","_id":"http-cas-client@0.0.1","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"lichaozhy","email":"lichao@or-change.cn"},"dist":{"integrity":"sha512-QEQCJ6DXO/RHG4bw6EujZ+AEWWtRgOahtx6VVCcLLASISpBY8F9oxVOrJamvC3JR6xFvXDHa3VQ5J0wfJOjUTg==","shasum":"88a538b1818e0de702ccd83b27d3c3ddecf60632","tarball":"https://registry.npmjs.org/http-cas-client/-/http-cas-client-0.0.1.tgz","fileCount":6,"unpackedSize":9081,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcLkLiCRA9TVsSAnZWagAAgHEP/1o8FFR66r56wt8XLybA\nlYQ1ypFGKQLWrdHGs1ikXmBSpNS4D/A5wbLeou9Vla8kXjZkkKkRrdvsGz2V\nSx5bjkoUe7Zc/rO9IOaKE2uMEpYWYW9WwlikNRqhOh12XF/tRIdpIOpF+tvI\nCCf4Vp8DfVQ6ElhMmc0n4gWd3wNIa++OnK/4fqSQ9YvlhES/1c2BwekIDvDv\nYsjdinshzQ7BraqYT7MW2cTS7hxImcGyq85X46azL0QHSkie1LJYlCxn8lQV\nU3tBFFylTi7fKC/Yk9k5oKRKCWgCWKdZU2qijUfGXCT+Z+FzciuJr/NUtnD+\nXc0CMy+2Fci2iH8ZOPgZ3m5blIRBpYdM3xAiIOokQwT+Z18ITnZOeoGMzmQ9\nDf+30AD5vDiPPNUrQrCelp8RNrSjfOcHdDoHO2oAxtKiFVklKqv7XIqkIlBw\nKaKm5a4zQbpOW5qzTUJzza2m/TKkPOFdZc/SvD65/qTncyPx49Q9uykwmPe4\nh0yLGT/nIB/PKte7e62n/bIeGeGzMrbMj7pn2PT8ptKvgbPWqhREssi+o/lU\n/wC+xpzgM8ATcFau6B42iZ6WHUkVVFN6ezz2TapnLEmk6BxoWPDcLaGKBbe3\nlrXZXa1tBPvzkwESljq64XK53pE0085uh4ThE1F7IAw6EPa7WDUm/T4j6QZG\nxwue\r\n=wxQM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICunl1XZe2NBrwi+uq5q3Hmg0qXqLeIsdE1KUspAlr9XAiBUhlh2cEXmR6sxfb5N/xcM0o1l3eI1n0o7tWiEKSUZ1Q=="}]},"maintainers":[{"name":"lichaozhy","email":"lichao@or-change.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/http-cas-client_0.0.1_1546535650010_0.7598829036283272"},"_hasShrinkwrap":false},"0.0.2":{"name":"http-cas-client","version":"0.0.2","description":"```js\r const casHandler = cas({\r \tcas: 3,\r \torigin: 'http://localhost:9000',\r \tprefix: '/cas',\r \tslo: {\r \t\tenabled: true,\r \t\tpath: '/'\r \t},\r \tignore: ['/*.ico'],\r \tredirect: false\r });","main":"index.js","directories":{"test":"test"},"dependencies":{"axios":"^0.18.0","cookie":"^0.3.1","debug":"^4.1.1","lodash":"^4.17.11","micromatch":"^3.1.10","node-rsa":"^1.0.2","qs":"^6.6.0","raw-body":"^2.3.3","xml2js":"^0.4.19"},"devDependencies":{"koa":"^2.6.2","koa-bodyparser":"^4.2.1"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/lemonce/cas-client.git"},"keywords":[],"author":"","license":"ISC","bugs":{"url":"https://github.com/lemonce/cas-client/issues"},"homepage":"https://github.com/lemonce/cas-client#readme","gitHead":"aa5ffdb474526fab0e65d7401950e1aa1bce557c","_id":"http-cas-client@0.0.2","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"lichaozhy","email":"lichao@or-change.cn"},"dist":{"integrity":"sha512-81ZJOXX7Jf8VTRWjK2pSDzWNaQZdCRXuUe/8J0HUXntrXpHa/8kW892QNDzDVy9hXA1UyzGbzfg23u1kwMdj8g==","shasum":"abd19aea61e4006e4e203847deb3368021f36c0d","tarball":"https://registry.npmjs.org/http-cas-client/-/http-cas-client-0.0.2.tgz","fileCount":6,"unpackedSize":8988,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcLmbqCRA9TVsSAnZWagAAkD0P/io/ckS05ZMVU/UiVNMS\nJMGEa2A+dWXROPBIpGdJVf/oJTyjvmXPjEWD1GXf0+Ls/EzYtICaBwxuRi0j\n14F6hAX26AefqfZc/xc97Fyk9RaXtomGV3IenV+qkMgzm2uahXTiUlB5pXQs\n3gLEW+9h21P2lxFA8ueZwIU+1kiWMHYIgcUCDLwrc4muslYY3HenosXlG2ho\nyKKuKTt7JB0cmCDqblXg+pVnpKnSudWkm0uRCAhA3da7s2Crw+0Rs69j85Ss\n0VUETFxYWEaqxuhIkoNCxcNLWFiOdtiSBB04SeT3VnTN6ynt7zDX4QVF+OK3\nk94Afjtuid/OM/R42hoQ7wUTjVolDQ4rh+ETm3dZ1B/KJUkpK3zLtxInuEv6\n6iT34fEhlfJRuSe3Fg79u/yueC5KkW3D1xaicj3KAf/LPLQF7tTj18HO9FR7\nNQQk92jSY42mrbhvYBpeMLEiUkiFHGPL2ABPI/ewa2Kuum81O0OSlMokFthp\nIVQ98TAPk6vOIkqAUAvIGg49xsMw+TrQBz/T0WYCDDyVF2XfDesYTGCXFQk4\nS/yuc9J0ZXIYl1vJa8AwLPUYJKn1jyqKf5uVWRUQ7hm0EOHDBZNTMJinT6AD\nCceMoknGRCw2Isq6KAJ1M5Er+FDUl9G9/f+WMkMtsffNdqQUG5lA0zs6OJHm\nfV1+\r\n=rpWX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICq5CRkb6MqI+Xqc/P+BkmqYzXyKiVb4jZYLYWmy7jUAAiEAwpf4KLZDn7n52zWpcf8goOYJBZyvWLKCT4nxO4VguGs="}]},"maintainers":[{"name":"lichaozhy","email":"lichao@or-change.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/http-cas-client_0.0.2_1546544874306_0.8873711334102117"},"_hasShrinkwrap":false},"0.1.0":{"name":"http-cas-client","version":"0.1.0","description":"A complete implement of CAS Client middleware for Node.js, support CAS 1.0, 2.0+, 3.0+ protocol.","main":"index.js","directories":{"test":"test"},"dependencies":{"cookie":"^0.3.1","debug":"^4.1.1","micromatch":"^3.1.10","node-rsa":"^1.0.2","qs":"^6.6.0","xml2js":"^0.4.19"},"devDependencies":{"koa":"^2.6.2","mocha":"^5.2.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/lemonce/cas-client.git"},"keywords":["cas","node","client","apereo","CAS3","CAS2","cas-client","koa","http","express"],"author":{"name":"ChaosLee"},"license":"MIT","bugs":{"url":"https://github.com/lemonce/cas-client/issues"},"homepage":"https://github.com/lemonce/cas-client#readme","gitHead":"3a412a19323cc6a3cda1015c16db0180fef5e058","_id":"http-cas-client@0.1.0","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"lichaozhy","email":"lichao@or-change.cn"},"dist":{"integrity":"sha512-yikPhiSV4AZfvRrwtYXBwulwa2ad3zlMElFf77HpZauDXXwtmyinWGNtXT8AEjfZ8d1mpG7GUXQ5/vq1ZydmgQ==","shasum":"75e9842a70e7dbf605f21141bc130f3fd3a9841a","tarball":"https://registry.npmjs.org/http-cas-client/-/http-cas-client-0.1.0.tgz","fileCount":8,"unpackedSize":20810,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcL6WdCRA9TVsSAnZWagAAPZYP/1GHhOfjNv16LPzbYQpU\nkwGksslyTOoZJlaAyBdbHkutXdq1jRtyWO6+j7rDI6/2cBHEmJvgTZESJxRW\niI0QfYhqO2yDAdrYWBl1pRu4SuAYV9ejb5nSbnKsaojukpctT5cvP10xHNLC\n+dnfIH7wpB7KUI313VlWyaL/9agvcZPuI2vcA/Hvdaq23mzMFmMG50Zkl/rr\nJUpL/5YGjgLqqfph78A8g/IESeoWcUOplJ+4Ys3MXKFeEixinpinfPQmsfVg\ndOJyOrp+AyPUaOdYxsXXNhORVN2i5TCOjk4PxYAURsc3qUILG+9VEiSnKIx+\nziOEvNXGpxlgr2TPwXP4PXXXslEVYmLX79v63I+DUFzFgd6jMWD5du8NIiXH\nr4Hja7En2krmgsY4c7XI7p4KrTeOpJfJg+yksmAHRHTVQ4j959pVWW0uZy1c\niw2uXoZikdHDBWrqnEEK0Q0ro+n9cdBYGZzBYDX9XqZHLPVOwnsfs1slMjsR\nhatYNuZcVUMKtOm8icVVZ6Fe0/Vkt9LZN5ViHA0HTSbLqV0xERF33FmplOi4\n2notWldM6C9QIY164wvRIZ3u5bwXxxotfTfigCbBCn2I1+gAmSy6oI1bciZh\nSDGwJWJCtelRX2DVLWWaMQtVg7EbKKdkbcEMdn8/LQE9qg26yJFpy+YFdPYc\nLyLG\r\n=EOyB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChBN69hXZ/JYDUS4p60gq288tx7z/pRr4XSCQcaq/jVwIgGJFYlO6o7UJhZ+lVVop0rgAYAtsxe9MVL/jvk08ELvs="}]},"maintainers":[{"name":"lichaozhy","email":"lichao@or-change.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/http-cas-client_0.1.0_1546626461241_0.8388272630210738"},"_hasShrinkwrap":false},"0.2.0":{"name":"http-cas-client","version":"0.2.0","description":"A complete implement of CAS Client middleware for Node.js, support CAS 1.0, 2.0+, 3.0+ protocol.","main":"index.js","directories":{"test":"test"},"dependencies":{"axios":"^0.18.0","cookie":"^0.3.1","debug":"^4.1.1","micromatch":"^3.1.10","qs":"^6.6.0","xml2js":"^0.4.19"},"devDependencies":{"koa":"^2.6.2","koa-session":"^5.10.1","mocha":"^5.2.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/lemonce/cas-client.git"},"keywords":["cas","node","client","apereo","CAS3","CAS2","cas-client","koa","http","express"],"author":{"name":"ChaosLee"},"license":"MIT","bugs":{"url":"https://github.com/lemonce/cas-client/issues"},"homepage":"https://github.com/lemonce/cas-client#readme","gitHead":"3f322ca217e473c088c2b222a520cbb695a44cba","_id":"http-cas-client@0.2.0","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"lichaozhy","email":"lichao@or-change.cn"},"dist":{"integrity":"sha512-CYlUoyZwyQrqyRijzPS2xaHeK6ikD9ddCfdUjpNRKPnemgQIjKoFRKE4waBpMKqP3C3eHZ6kUSGQqHeE0DZNTw==","shasum":"45e4971abd0a762b7b5409c73fd937294f15374a","tarball":"https://registry.npmjs.org/http-cas-client/-/http-cas-client-0.2.0.tgz","fileCount":13,"unpackedSize":27515,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcMhjnCRA9TVsSAnZWagAAYzkP/RbGDkCr/raIEUuUzUy+\nMWc3ibrGJ5YHgImprHiFkJDmrr87Ca4mWcGmmuYBzNIqCLaslb8qmyNJ+oe3\nc+5ydcDkvBz48QiqRdtGPwGF5BdBJ5rXzY2+9HyY2fKZBeYPdBk+7ycxA0pv\n4XksXpASyxvjeFLKL5EE3107OcwVEdwzeK5Q951TYpRMUG1GxMsaQZ6PRPGt\nkpGGt9IqZdib75laIkrm5ylLEcGGeBQlGf7Hy8zKO4oVazqhdPFv2GpWZKK8\n44wl7k+hx60rRkv+UY8L0P+48qBt+1OD4ghTWWu3PcKXxvbo8i7Tuae+b2EI\nRwPoeW69yUDUUlncOPf6md9hnPmIOzSZC3xnfUsqc8/0/aCcQeIDO3uigHQR\npY8DGAPk3xxTrUixZTU+5alnkE19CgMCsdoCNmjWGXm4Fdxez4vAQMLoXRWf\nZgb4qIqhgxJFDHdRaHPuiFacgxRjlJW9SYA6tCa57bCGFMJus+7EPkfv41O0\nE/trkKmi+w391yAD7opJjr1dPy5RFWD9bmNF3wbL3CRZfykS0j13xVw3HxRt\nRZo/kGIQoGbHm3iUmB0ETX9PoCgp4USbel6AyX0sWEEsop61aHw7LJosZ1oy\nfn3uJ11i9B/FJ7ySMtnb7tyyvklkVm7emsWXIMlu8qQD7Ot7bGcGmgfWN1sE\nwe5a\r\n=Wr2o\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEXDcR47PXE/TkXTEf9Pnwsf7lmUOdPBCXV4f6iax9ILAiA8exZ3Wm8uJ1AD2fk7WYyUR3ith5xf8pPy6heu1hMYPA=="}]},"maintainers":[{"name":"lichaozhy","email":"lichao@or-change.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/http-cas-client_0.2.0_1546787046741_0.6048495824220212"},"_hasShrinkwrap":false},"0.2.1":{"name":"http-cas-client","version":"0.2.1","description":"A complete implement of CAS Client middleware for Node.js, support CAS 1.0, 2.0+, 3.0+ protocol.","main":"index.js","directories":{"test":"test"},"dependencies":{"axios":"^0.18.0","cookie":"^0.3.1","debug":"^4.1.1","micromatch":"^3.1.10","qs":"^6.6.0","xml2js":"^0.4.19"},"devDependencies":{"koa":"^2.6.2","koa-session":"^5.10.1","mocha":"^5.2.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/lemonce/cas-client.git"},"keywords":["cas","node","client","apereo","CAS3","CAS2","cas-client","koa","http","express"],"author":{"name":"ChaosLee"},"license":"MIT","bugs":{"url":"https://github.com/lemonce/cas-client/issues"},"homepage":"https://github.com/lemonce/cas-client#readme","gitHead":"259a5047ed3ba4958897f56e1ff0a3997bc50679","_id":"http-cas-client@0.2.1","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"lichaozhy","email":"lichao@or-change.cn"},"dist":{"integrity":"sha512-FcNHx8kqx96ZokjHAjcnVxosovmzXcn86kbAqJapYmxSIKlVbN5FTaqGAAWOc+eEWUy0Ke5Rm3ssnnH0Uu9BLQ==","shasum":"e5a90e31c923e03aa4667af8ef7cdf1463dc6a0c","tarball":"https://registry.npmjs.org/http-cas-client/-/http-cas-client-0.2.1.tgz","fileCount":13,"unpackedSize":28486,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcM3kVCRA9TVsSAnZWagAA0zQP/1XAZ4qqiShhsZ79cOxe\nyZHx0haiJFE7dU3Noq3L0oUD/vKz7DSj6QMU90BaS20WwLcMDTqWyDp0F/M1\nGiD3muFrTZHllaOvt3QEEtWg1tPzJtfrM6/nbZlF1Hc2UedhRY9paQ4+rXpF\n8qx33vDQFt58dNky+0rt2qryVJBy/UL+dEIs0T3NGpGHglCquSAJwxqs63wD\nRAGmY/0R5KZJr/GMaYpHTuXLHdltG+bm0SpK3zjrpTjpmeNqtUk2pjTmqQ0n\nn2xzyjax2Mgw+7j7peTF8dLio8A5GrtcEoUGmswl5u00ankkW9wMGaPMfrbq\nKjUwVSpR+mUVI3how4a7VGIdpGG7qAYRKV7A8Dfmnwzen08K5/5svLoKA7cz\n+FTpVENo5nJMm41aEuQ4+u/7dmNYzQG84mp4OuoszZypGbTmrtxaPUvo1NNv\nTxywsk8p0XCwjNPvQitMxYcFoRC/AL7Gz21+T2Fq8I36dtXlyO4TWxAVO2mA\nRQSu+xRR1YdxowzjKpdRX6oNTYCDbDJGbNJW81eRQkdYraOnfhQmqd6czmm+\nrZpkrngQLj/BVyDIGpTzMJjseQzZyj+lbdjF75mRR1i3PEY4/VeUfSu+4Em2\nHlpitLyNuA5JnH4ccOM2ZPmdsz5atCN8vlcrSflzp93iRJupBiMaOryLdqqh\nXhGC\r\n=HYkh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCf2eoRxDBZVWN8oDPJLHQkD9KRbe/3c0e2Xhka12SqZAIgDEqbeIKmrBOaMpK4g9PZ/qDGW1b9++4hwM20PDIqJf0="}]},"maintainers":[{"name":"lichaozhy","email":"lichao@or-change.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/http-cas-client_0.2.1_1546877204980_0.18295277795416354"},"_hasShrinkwrap":false},"0.2.2":{"name":"http-cas-client","version":"0.2.2","description":"A complete implement of CAS Client middleware for Node.js, support CAS 1.0, 2.0+, 3.0+ protocol.","main":"index.js","directories":{"test":"test"},"dependencies":{"axios":"^0.18.0","cookie":"^0.3.1","debug":"^4.1.1","micromatch":"^3.1.10","qs":"^6.6.0","xml2js":"^0.4.19"},"devDependencies":{"koa":"^2.6.2","koa-bodyparser":"^4.2.1","koa-session":"^5.10.1","mocha":"^5.2.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/lemonce/cas-client.git"},"keywords":["cas","node","client","apereo","CAS3","CAS2","cas-client","koa","http","express"],"author":{"name":"ChaosLee"},"license":"MIT","bugs":{"url":"https://github.com/lemonce/cas-client/issues"},"homepage":"https://github.com/lemonce/cas-client#readme","gitHead":"72a1bb85946a55e5135fe884d4892d4a8b844574","_id":"http-cas-client@0.2.2","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"lichaozhy","email":"lichao@or-change.cn"},"dist":{"integrity":"sha512-UTqNZMujAOrdgD0Yuu+E7nxWzCycT0jqjgJvP0CPBO1wxfOb8K+0g/XPy7ux05U1s40t0kEd0sAF0rwzlUTRVw==","shasum":"8b6eb565876ddc9c2dcfe47a58bf6d2f2cd82896","tarball":"https://registry.npmjs.org/http-cas-client/-/http-cas-client-0.2.2.tgz","fileCount":13,"unpackedSize":29210,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcM5haCRA9TVsSAnZWagAA77UQAIsI5061tqy0svnHX7jm\nbiaP12gbaQF9RYoC3jLEIrs+ZPwMwT9Ppfk9JK04WfwWbn78ip9KITwNXeAn\nXs/LxWf+uOGivu5zqajouQdwrZJ6J52Z5BWo4o1uFTfo9urRe3nbQyVwT4Z6\n7iHQk3YjDSvYRNCiYIxBrBNwy5lrwZ0oqoYKkQP3Sp1hxSItV9UzDkNHTGg9\nWbz9XiIPOV7gVj2Z6L87SkX5c3PtA1YFqu6hWnO4DmPHcAItGXHVqt6Qic/T\nb5VbR6kW/MPBJPmXXxwqmkJ5ydr09UU+cUx1koeqIOymOdOInu7tq7K6ZQY9\nQxw6xGfzBAQl6GgsiYoiTWqif+KTOtvIVV/5XK2eDkPhGfVT83yWHIwqQ23b\ntrPsF+arlvcrf8h/BZlIjYi0SGy1x1XAxETNKj7gn4adAJTqp6p/2Rlrkip8\nM9ShS9ZTppW1cnJTdRc/IRHhNZBusTA/50aiqvECO9CJWiztMIqUzDXDEAAM\nhlIM570rduWbJxCdggIymUQB4fCEPiuq1pQdDg213f790H2ObXCGhzF+MRhW\nI3AwGTXokVSRkodvYY0NAWdF12aFAVrinEDybzMcJrcNh9UfRlF+G1nvqKUg\nn+xOY3AWlhTbjPYXgz6Iuy8o0lQDjGluP9NRv7zg+RLgROIuG5xhsxJht7hN\nFzLH\r\n=iVJW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCW4+ZBVGXlVhl98xklFgIRvV2VnUrsTMO7oG/Nvfk4dAIgVRbST63KRnNjbPuUlEZE1tEaAnPPxCvfhCo3wAf6aF4="}]},"maintainers":[{"name":"lichaozhy","email":"lichao@or-change.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/http-cas-client_0.2.2_1546885209558_0.7422683040112292"},"_hasShrinkwrap":false},"0.2.3":{"name":"http-cas-client","version":"0.2.3","description":"A complete implement of CAS Client middleware for Node.js, support CAS 1.0, 2.0+, 3.0+ protocol.","main":"index.js","directories":{"test":"test"},"dependencies":{"axios":"^0.18.0","cookie":"^0.3.1","debug":"^4.1.1","micromatch":"^3.1.10","qs":"^6.6.0","xml2js":"^0.4.19"},"devDependencies":{"koa":"^2.6.2","koa-bodyparser":"^4.2.1","koa-session":"^5.10.1","mocha":"^5.2.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/lemonce/cas-client.git"},"keywords":["cas","node","client","apereo","CAS3","CAS2","cas-client","koa","http","express"],"author":{"name":"ChaosLee"},"license":"MIT","bugs":{"url":"https://github.com/lemonce/cas-client/issues"},"homepage":"https://github.com/lemonce/cas-client#readme","gitHead":"6a88c1e4326f0f1b9af086364dbd50f5aa708d5d","_id":"http-cas-client@0.2.3","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"lichaozhy","email":"lichao@or-change.cn"},"dist":{"integrity":"sha512-rw1WPI1E3QbYR3dZ8F/SSNEclu0+CPC+q+8R61Jp/Y+gh/Ot4Tk9OCLud3Y+QjVVgPZma4D5r/bHF09o0IQgjA==","shasum":"5e7001a8e5eb2f255bf1891f6d86f8bbe63786df","tarball":"https://registry.npmjs.org/http-cas-client/-/http-cas-client-0.2.3.tgz","fileCount":13,"unpackedSize":29203,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcM55BCRA9TVsSAnZWagAAh7kP/jLCBQJ9BH9nFoU3m5dH\nhem0khG1oZaTsZs6b6SZZPgXKsgmhnebF4iGHjEV2/4W2s45IL2vb7soYbC5\n+6+4PsD4aYqhioQo1Rwl1jJLcR3iCH7EpcaUa/6ZzVA3eyXAhUSgfBAAI+8P\nyNytxaLfVJ72AoudWstq3UhdFHaTLkXmhLEbuTJHrUfL8cE8glMJkJWaKkKk\nEK0YgRdIgi1iMGCPGwB2+hR2boMNK+V+hOKkwGiryMQhJh9ByYVtmq4o+HcR\n8rVG1bqsac6m8GVLxauQ5AiJ/G0PBMHr+HgKBfcbHftjZXTZs5VJo8iXSLSu\na8aCwJKrk18M5L0g1aEdQyWXDt1WAmqZRa2wsOXwnqqk3RaTLbdXlWtLsMH+\n4KOTvy85iIDVciWOGr4xwYVIYEEOX9NoVW++e9g7kGuqFYc2f/+T0IBXRS6t\n85jk8YRJsIdo08kZp2ZZ2yCNXdNrqKxeqyPtz14RxQM1Geq6rmDeWMbd1Kqk\niPcTHmIFYXg+fstUsP3QeC7XMa6PX8iIaJkrIiUoLov5d07s5JAUNZsj7A+v\nj0F5XfkzFD2NhgSmQGlZjRYWBx8Qlh3FLuoWrYtNqi+uhhoxQLRLd4C3mNkJ\n5/cHOgoM1IUkc40M4wTI07vwW4F1xaMzyXTpEu7aZvFAuHCkoljSxAOS3jXK\nVZV/\r\n=4tr3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGjkWkyf4gyMhBrRTxBb83aY8me0OGnIdblKSUXFMCGsAiEAsiB7gjJIGDKfOwuRP+5UXsu6/b0eUxU7rFF7w1etjWw="}]},"maintainers":[{"name":"lichaozhy","email":"lichao@or-change.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/http-cas-client_0.2.3_1546886720822_0.8224509602225516"},"_hasShrinkwrap":false},"0.3.0":{"name":"http-cas-client","version":"0.3.0","description":"A complete implement of CAS Client middleware for Node.js, support CAS 1.0, 2.0+, 3.0+ protocol.","main":"index.js","directories":{"test":"test"},"typings":"index.d.ts","dependencies":{"axios":"^0.18.0","cookie":"^0.3.1","debug":"^4.1.1","micromatch":"^3.1.10","qs":"^6.6.0","xml2js":"^0.4.19"},"devDependencies":{"body-parser":"^1.18.3","express":"^4.16.4","express-session":"^1.15.6","koa":"^2.6.2","koa-bodyparser":"^4.2.1","koa-session":"^5.10.1","mocha":"^5.2.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/lemonce/cas-client.git"},"keywords":["cas","node","client","apereo","CAS3","CAS2","cas-client","koa","http","express"],"author":{"name":"ChaosLee"},"license":"MIT","bugs":{"url":"https://github.com/lemonce/cas-client/issues"},"homepage":"https://github.com/lemonce/cas-client#readme","gitHead":"d9ac88455ca570f30a65f48df099ba23cc030e6e","_id":"http-cas-client@0.3.0","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"lichaozhy","email":"lichao@or-change.cn"},"dist":{"integrity":"sha512-GftK5OkqfoQYMllB4llnRmX3tye6B8RNV1zKwaNN4hmoxogFzt2/dk6fVJmW7J5cqO9UhRW56NnCzRgRJPjheA==","shasum":"1030a160a1894487f19938ba7287c793524d87cf","tarball":"https://registry.npmjs.org/http-cas-client/-/http-cas-client-0.3.0.tgz","fileCount":13,"unpackedSize":30905,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcNO4nCRA9TVsSAnZWagAABywP/A6eWd30vEtbXaFfR9aP\no8FBpRlerVku8bvGYB3lwXgGxYylQ+Yg0EuBSDgqafPdDMjSqccTzgcI7G1t\n3RNW3yNdOH7reIUyWFfowmu6Jepb+QnO+t4xWGhPnkWQ75mtrAlvb/q5IFTw\nrepvSK6wDVzsy/ninTp73/vxhaOSBucJXz7CuKwnAF9BobolacKtVNGTVocs\nkmhVN6tCSQvBWnS2ceUTByZ0DqeWWbb+OEv1xx5l7z2NGXuIohzVTz1GRFNJ\nVG42f1Yt1OZNBVcQxIRsuXiBpu8gA+fARkIxPHVXqoxJoSRgL78afDM5G8eb\nB7iP5tqGzA142qanrdvFV45NmZxisEp1hEkxYG8c1yeOhyUnLRoS57y1kK18\n9Bwxt1xb66SA56F2v+dGGHbNQSZhTY6t177n1j3kcL5zUVvnFOOvN6rTGad4\n3v07TM7l3dka/SDC0nlwzfuW9Ss7EGKrKwHNtHB0RnJPOh3BhX6odJ/zg+dM\nxmMgf1DzHvUR8bzgJQtbS/4x288Cat52ySUM5sc75jXPmA0KlIeRH/Frm36p\nC8f9qyzeFeVux3LLyf8Li8xD8YctpM3DZN3JLV935vaNUF2i4y5KaieYt3Y0\nNfyOxDH/DEL+/4lLbLoUsWGF4+vItUDBs0ry0+EVrPbBbG1wiFtWmLeTlZvt\nasW1\r\n=Zq8Y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtjvHgFp3epgqQ83kzt8+orKgzMAR4p4UKUslHobyccgIgSETgq4dy3MTknm+R81Ocu/e/ih0pyU3jdfdHLt/FA3A="}]},"maintainers":[{"name":"lichaozhy","email":"lichao@or-change.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/http-cas-client_0.3.0_1546972711127_0.6747799598571298"},"_hasShrinkwrap":false},"0.4.0":{"name":"http-cas-client","version":"0.4.0","description":"A complete implement of CAS Client middleware for Node.js, support CAS 1.0, 2.0+, 3.0+ protocol.","main":"index.js","directories":{"test":"test"},"typings":"index.d.ts","dependencies":{"axios":"^0.18.0","cookie":"^0.3.1","debug":"^4.1.1","qs":"^6.6.0","xml2js":"^0.4.19"},"devDependencies":{"body-parser":"^1.18.3","express":"^4.16.4","express-session":"^1.15.6","koa":"^2.6.2","koa-bodyparser":"^4.2.1","koa-session":"^5.10.1","mocha":"^5.2.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/lemonce/cas-client.git"},"keywords":["cas","node","client","apereo","CAS3","CAS2","cas-client","koa","http","express"],"author":{"name":"ChaosLee"},"license":"MIT","bugs":{"url":"https://github.com/lemonce/cas-client/issues"},"homepage":"https://github.com/lemonce/cas-client#readme","gitHead":"d5202879e5ecb4f00b2d6fac33fc13f59b07de6e","_id":"http-cas-client@0.4.0","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"lichaozhy","email":"lichao@or-change.cn"},"dist":{"integrity":"sha512-nNYAod+8yEnetFihRt3H6WpwVxxpG5BxN+x4ffjgfR2r4Dwm1S3NRsl+vaiWYRgT4ChrcahUvdN4aMVxXa6z/g==","shasum":"664ceba6973960f1bd3bcbfdfa493650f55d1bfc","tarball":"https://registry.npmjs.org/http-cas-client/-/http-cas-client-0.4.0.tgz","fileCount":17,"unpackedSize":29576,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcNyK0CRA9TVsSAnZWagAAFgMQAJoi8ekwgAGUSh9QfV2p\n49quejBteRdjOy2JMcLziqcDi0wKEy5ShhVKAGsP/j59yqz9LTTuGI6FTizd\n3Uz8MEL/wbzI9aHGl3+IMjakluDCas68Gd9wg3MYrJ6+NmRDeBMXE3IFbDR4\nWjmD3eA6crhX2+5AL1tyS4wk9wCTXfs+gnPu2E1kwGCpQXxPIWYFT1MzdId7\nC61hX5o+kDAmwFZvMFsVDAp1BEOmSDD4zJNJ1zbsx205DmhKRT4hWHGexK/X\nXkAsRO0jqIrgJr4LLYvZjK876ITeNdtKmXHPN9kcpB4ez6pRHE8il/ECQ/ur\nf3avBvxcFlanAFXpmXuXYfNnNnl0YF1AK9LSwSQJxQcZaHBNq5bRQy2VJ6AS\ncf1mx4I6BinzxNvo7lHNPw+CqI4x9/BinA7tTZ5Rd6JcJKuhyn6h+gV13mUg\nEKq5bskxYgYCYAu4xQIMUENKv9CY7QY6JpRS66L/b/Al42XN09oyARe4FNmO\nMRyTSNXT4nO6jEkigvEVx0OolTs+NmmEsezo4jUpj8e4IRsFrHpUEu6XiYvY\nmPmjehoSLoQeUpF01TEyt3qBX1ohMUBq1FXJuhnaAokcOxChKkvPqMZtqQ/N\nB+3DBmPu/hxJ/BEJQ+NZkAdFgNTd9RFLUAx21f/SuCcqE4aVq2IxGSx6cv+8\nU+lm\r\n=7e2F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEOL3PNx1pSBZgcdsL2c3AySwASWmqaLoQ+DngZUgBYsAiALo9tZLGJGpGXwQVXVsLGoAMwzBWc2c/3FLqBGlBXCVQ=="}]},"maintainers":[{"name":"lichaozhy","email":"lichao@or-change.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/http-cas-client_0.4.0_1547117236284_0.3909835743117771"},"_hasShrinkwrap":false},"0.4.1":{"name":"http-cas-client","version":"0.4.1","description":"A complete implement of CAS Client middleware for Node.js, support CAS 1.0, 2.0+, 3.0+ protocol.","main":"index.js","directories":{"test":"test"},"typings":"index.d.ts","dependencies":{"axios":"^0.18.0","cookie":"^0.3.1","debug":"^4.1.1","qs":"^6.6.0","xml2js":"^0.4.19"},"devDependencies":{"body-parser":"^1.18.3","express":"^4.16.4","express-session":"^1.15.6","koa":"^2.6.2","koa-bodyparser":"^4.2.1","koa-session":"^5.10.1","mocha":"^5.2.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/lemonce/cas-client.git"},"keywords":["cas","node","client","apereo","CAS3","CAS2","cas-client","koa","http","express"],"author":{"name":"ChaosLee"},"license":"MIT","bugs":{"url":"https://github.com/lemonce/cas-client/issues"},"homepage":"https://github.com/lemonce/cas-client#readme","gitHead":"d9065f15c1bb76031d04f564ed580cbde842e60d","_id":"http-cas-client@0.4.1","_npmVersion":"6.5.0","_nodeVersion":"10.10.0","_npmUser":{"name":"lichaozhy","email":"lichao@or-change.cn"},"dist":{"integrity":"sha512-LBJPqHIuqNPveaWRRlx13QG+OMoQtABOZQo3mpKNOeQjRv0zoe/hwWe8DuBQzhDu9Tym4KY0gbcpvBIL6PyaKA==","shasum":"e89b840004969e98bbda7eb94e58e35fa6ca1541","tarball":"https://registry.npmjs.org/http-cas-client/-/http-cas-client-0.4.1.tgz","fileCount":18,"unpackedSize":35554,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcN1toCRA9TVsSAnZWagAAN8sP/ixDLa3FNbJydDh+/Hn9\nwz3ZRbTCY4KgSY0ggqWWH7Xie2pdH8ZKk0n0t6hD6LsgFBvVw7K0TdZ0FJqY\n4Pz5tRY/TADR5RMKEhB8GOQg9pRhexdGLaPWlJxYzfKHCBoYVdG7edFy3fd4\n4bw9drBASOOFvja0Q2UqEMdOoio7r2oLalG3fCq4WxvXK03dus6offe2c/F7\nGsRtO1IzRphOxDiYP0LCESnhGZwuetu2pjwHFt0Vt4NVchavvu+MQcqFd8rH\nP4YpOv2Xq5AH1pS5lqeOHrsYjH09WBzwZYQN1pAuOarIR+CgzekwBjM3PRUC\nSym6NhrHFCMWFg0FiRtmXazhCgA6jVq1xjJ1KKD9S26CFU4aWgG3I7oSmFcg\nw/2qcNO2bVlNarWYY0QrvrikdVnUQA2MT2H3amwIOEeL+z7d+dagssi407cz\nRiRIvRN3cexYAgC1fJo5nUOArnD1RhAZUIQHzltlozSaGOw4CsCKHPAyWUAK\nKllIp7j6Oj/9NVicyLAOuWn+mArQMY/G9eLD3HhFyQlSuYNJrqxSSkSbU1TD\nBQbo9tqcUXvRYIUyiJs5PmA3Hv3e4viCF59tUHoLmvaOb470eo7SYWV7Ihcb\nBomc95SnbfNaooLB8rcz5h7X9p3JDqtHEIeF4OFwLw4/sJGrMcY7b/hU/x2I\n7n4f\r\n=b8KX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGuxdzmhG9646A/38ctdE/S6a+aRmA3+fPPWGP5wGa7wIhAPf4lvgXuIC40GwBXc/CTWcbx9AKOKDDKkvOXdhY909R"}]},"maintainers":[{"name":"lichaozhy","email":"lichao@or-change.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/http-cas-client_0.4.1_1547131751500_0.42689977864767203"},"_hasShrinkwrap":false},"0.4.2":{"name":"http-cas-client","version":"0.4.2","description":"A complete implement of CAS Client middleware for Node.js, support CAS 1.0, 2.0+, 3.0+ protocol.","main":"index.js","directories":{"test":"test"},"typings":"index.d.ts","dependencies":{"axios":"^0.21.1","cookie":"^0.3.1","debug":"^4.3.1","lru-cache":"^5.1.1","qs":"^6.9.4","xml2js":"^0.4.23"},"devDependencies":{"body-parser":"^1.19.0","express":"^4.17.1","express-session":"^1.17.1","koa":"^2.13.1","koa-bodyparser":"^4.3.0","koa-session":"^5.13.1","mocha":"^8.2.1"},"scripts":{"test":"mocha test"},"repository":{"type":"git","url":"git+https://github.com/lemonce/cas-client.git"},"keywords":["cas","node","client","apereo","CAS3","CAS2","cas-client","koa","http","express"],"author":{"name":"ChaosLee"},"license":"MIT","bugs":{"url":"https://github.com/lemonce/cas-client/issues"},"homepage":"https://github.com/lemonce/cas-client#readme","gitHead":"5fda8d64932eb8357cfe76842d5fab762b333c6e","_id":"http-cas-client@0.4.2","_nodeVersion":"14.15.3","_npmVersion":"6.14.8","dist":{"integrity":"sha512-A3anTNmNzZTqDKMuWjqFaYoYjsbqB8jSlRxFZQfTPs/3WA5QGRze3nUzhldirXYRRVxekuoh2FjvQzySqLZaPw==","shasum":"6a80a291853bdfde9e60b32012566b5b912b8422","tarball":"https://registry.npmjs.org/http-cas-client/-/http-cas-client-0.4.2.tgz","fileCount":13,"unpackedSize":38491,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9VC7CRA9TVsSAnZWagAAz0YQAJz3LOPdVBcjnCHPOSE0\n6UpF5Snp18w58QBOXSkm1cBnKIRwTYt03EoNa3T2neeXcv7e8sMvWAwxpDt3\n8mc+OHcr/E7xGnNRE7CbiIlPXnPsGuNMhXVSd1xvR89YwvtKhq3mdohGP+o9\nnVAvAaC5ygthcxBKihUZFS7+7se0GHKQUcrskZhwbCTsq7lcpfyueLVu33N/\nDDGU690h2bQfxAwrrcBljf0ZqXO5T19rjbHFa1JOyFZv56Gj1MBhyV9rqD0N\nO9BjvyoMFKbDoPZrDCNEEuyTFmi9de5OAMah0/wjyFvRaL8n2c192+ZFqvjP\n/1cySH2t3sxdocFy33O1dQzrYsFNZFa40La8/3CnncUHwaNakg5vrC/JDHCt\nhWZkJ7jvq6ccqShI8C6B6qNTMhzMpzKAPY2vAQ84uS/3g/+usWSxSh4+DobL\nW/KW2u+yk6KVoMWTXp3f/gzBTtsZwJPvHWorKU2APjGcpTeZv72d+uJQDaNj\nwcyGi6nQ7SxIXLz2gTZrUrXzgHkxUvZZ6WrRhaRAmb+eRa31Nv+Xz6xHM+gt\nX1/hP4lvP4FfigI/oANmtjoxN3IDmXFG9vdjI3n9CK1FNkLph9PxE63R4uhi\nJnzI2aZoQgxsYUT8fRCP68Lml1QEjNqWP8f96ez7avQ3tyA8nyEUesT93jsb\n13IX\r\n=9sUr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDS2UXyuG8UXcBa510Gcwmz1hRjrXt2DfbXGa1fXn7yrAiEA+eAy467brekSAervRy88XGCHz4LpJBAepHp3jU4cgWs="}]},"_npmUser":{"name":"lichaozhy","email":"lichao@or-change.cn"},"maintainers":[{"name":"lichaozhy","email":"lichao@or-change.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/http-cas-client_0.4.2_1609912507079_0.9590784501210008"},"_hasShrinkwrap":false},"0.4.3":{"name":"http-cas-client","version":"0.4.3","description":"A complete implement of CAS Client middleware for Node.js, support CAS 1.0, 2.0+, 3.0+ protocol.","main":"index.js","directories":{"test":"test"},"typings":"index.d.ts","dependencies":{"axios":"^0.21.1","cookie":"^0.3.1","debug":"^4.3.1","lru-cache":"^5.1.1","qs":"^6.9.4","xml2js":"^0.4.23"},"devDependencies":{"body-parser":"^1.19.0","express":"^4.17.1","express-session":"^1.17.1","koa":"^2.13.1","koa-bodyparser":"^4.3.0","koa-session":"^5.13.1","mocha":"^8.2.1"},"scripts":{"test":"mocha test"},"repository":{"type":"git","url":"git+https://github.com/lemonce/cas-client.git"},"keywords":["cas","node","client","apereo","CAS3","CAS2","cas-client","koa","http","express"],"author":{"name":"ChaosLee"},"license":"MIT","bugs":{"url":"https://github.com/lemonce/cas-client/issues"},"homepage":"https://github.com/lemonce/cas-client#readme","gitHead":"0b63657d63cda52227f57898836fcbe839cfe04d","_id":"http-cas-client@0.4.3","_nodeVersion":"14.17.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-gVfX7tpAtAJKICVZ2g4/Eby0CCBWtu6GuV1DFrPsEAgxjoqrz1pJTsXZeearC9DBUeDwlpUjELbyWdgBf2dR4g==","shasum":"57a9b875b2e3f95ccf794cd6923132f6c5f8c37d","tarball":"https://registry.npmjs.org/http-cas-client/-/http-cas-client-0.4.3.tgz","fileCount":13,"unpackedSize":38661,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2ts0CRA9TVsSAnZWagAATgwP/1VOzHn1XObymHYfDc2J\nznE//YPmxu5GFe2yg3K/E308Cydyc8SkkIHS3q3c4TAOXYqHGlSZqKQtgB6y\nrjIN+pFLW5hIyDmfo2mOhSbbvrXNoEY0necgjjzWdU9lvGOPS0vLdZ1ohNKa\nDDaCa0L7NNu6uXLoQ/HLWOejaemO4mYRAS5luXF2azrKe5XmOviFmsC7bYDV\nCQm9ykMu28oooYVsy1j31qrpjNmzfhRHwoZELTEfifVojJ01lMmfNnC+n5zz\neaxogVLdSWCJl3eaXLRFuxuTDxqoRIDkqZmwauICJTOVwBWxgGwT9Vnwg/qf\nS23p6x6MVYCwJCG8BXN3ZRqzG/TYJVnUZjuNrQfuOgUoEcLO9EnefkzweOM/\n2DYQ6nYPIIvK3T7t5YOG/2lBHOfGSZIySbetiMv2m9TbOeEx/wbUIr7rebvJ\nhQ+cC+HX1xZnqRN2suk5MxhFg1DxiKOQYro6Muswv3KPZYGQdzLM0acaNunx\nhmjKHu2Jg82iOy2gJ1E912AipvNYKG2Z7jIk18CB7OWNefbNY2gEAqBUdsce\n+F6AQOqRMcp2xcVK+iirN/Cw0SB5ZC8UMLM+YvvT+Ru1x+qy4Y0+7+JpimKe\nZ7jh+3+qj0ucAyko/aDzJYVAFwdI0kyMZN156NnCyeSQU0ltWmED+D26SR8a\njc2a\r\n=Ijua\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWUmGu8LO1YxZw8M39v2OPm9/2Mb7B57VkwNNtRcK7XgIgcLMXX6Eo9osJMZufI9G4LZh5IeAE0nRccAUHVa/yV6M="}]},"_npmUser":{"name":"lichaozhy","email":"lichao@or-change.cn"},"maintainers":[{"name":"lichaozhy","email":"lichao@or-change.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/http-cas-client_0.4.3_1634878725009_0.3193750895343872"},"_hasShrinkwrap":false}},"time":{"created":"2019-01-03T17:14:10.010Z","0.0.1":"2019-01-03T17:14:10.114Z","modified":"2022-05-05T07:53:56.111Z","0.0.2":"2019-01-03T19:47:54.423Z","0.1.0":"2019-01-04T18:27:41.375Z","0.2.0":"2019-01-06T15:04:06.860Z","0.2.1":"2019-01-07T16:06:45.118Z","0.2.2":"2019-01-07T18:20:09.782Z","0.2.3":"2019-01-07T18:45:21.028Z","0.3.0":"2019-01-08T18:38:31.360Z","0.4.0":"2019-01-10T10:47:16.434Z","0.4.1":"2019-01-10T14:49:11.666Z","0.4.2":"2021-01-06T05:55:07.265Z","0.4.3":"2021-10-22T04:58:45.163Z"},"maintainers":[{"name":"lichaozhy","email":"lichao@or-change.cn"}],"description":"A complete implement of CAS Client middleware for Node.js, support CAS 1.0, 2.0+, 3.0+ protocol.","homepage":"https://github.com/lemonce/cas-client#readme","keywords":["cas","node","client","apereo","CAS3","CAS2","cas-client","koa","http","express"],"repository":{"type":"git","url":"git+https://github.com/lemonce/cas-client.git"},"bugs":{"url":"https://github.com/lemonce/cas-client/issues"},"license":"MIT","readme":"# http-cas-client\r\n[![Build Status](https://img.shields.io/travis/lemonce/cas-client.svg?style=flat-square)](https://www.npmjs.com/package/http-cas-client)\r\n[![NPM Downloads](https://img.shields.io/npm/dm/http-cas-client.svg?style=flat-square)](https://www.npmjs.com/package/http-cas-client)\r\n[![NPM Version](https://img.shields.io/npm/v/http-cas-client.svg?style=flat-square)](https://www.npmjs.com/package/http-cas-client)\r\n\r\nA complete implement of CAS Client middleware for Node.js, support CAS 1.0, 2.0+, 3.0+ protocol.\r\n\r\nCAS(Central Authentication Service) is a single-sign-on / single-sign-off protocol for the web.\r\n\r\nWe suppose you are already familiar with the CAS protocol, if not, please read this [document](https://apereo.github.io/cas/6.0.x/protocol/CAS-Protocol.html) before you use this.\r\n\r\n## Installation\r\n\r\n```base\r\n$ npm install http-cas-client\r\n```\r\n\r\n## Feature\r\n\r\n* Singing Sign On (SSO)\r\n* CAS Proxy with axios api for POST, PUT, DELETE...\r\n* CAS Proxy - proxiex chain checking\r\n* Single Logout (SLO)\r\n* Renew & gateway\r\n* Native http module supported\r\n* No-session mode supported\r\n* Easy to wrap for all popular backend framework integration\r\n* Cluster friendly //TODO\r\n* Principal adapter for application debugging //TODO\r\n* SMAL1.1 //TODO\r\n* Restlet integration supported //TODO\r\n* Conditional skip CAS authentication //TODO\r\n* PT cache //TODO\r\n\r\n## Getting Started\r\n\r\n### CAS Client Handler for Native\r\n\r\nBasic usage with default options for creating a cas client handler and use it in nodejs native http server. For example,\r\n```js\r\nconst http = require('http');\r\nconst httpCasClient = require('http-cas-client');\r\n\r\n// A CAS server deployed at url http://localhost:8080.\r\n// Default prefix is '/'.\r\nconst handler = httpCasClient({\r\n\tcasServerUrlPrefix: 'http://localhost:9000/cas',\r\n\tserverName: 'http://127.0.0.1'\r\n});\r\n\r\nhttp.createServer(async (req, res) => {\r\n\tif(!await handler(req, res)) {\r\n\t\treturn res.end();\r\n\t}\r\n\r\n\tconst { principal, ticket } = req;\r\n\tconsole.log(principal, ticket);\r\n\t// { user: 'test', attributes: { ... } }\r\n\r\n\t// your statements...\r\n\tres.end('hello world');\r\n}).listen(80);\r\n```\r\n### Koa2 Wrap\r\nIt can also use with popular backend framework like Koa2. For example,\r\n```js\r\nconst koaCasClient = require('http-cas-client/wrap/koa2');\r\nconst Koa = require('koa');\r\nconst bodyparser = require('koa-bodyparser');\r\n\r\nconst casServerUrlPrefix = 'http://localhost:9000/cas';\r\n\r\nconst app = new Koa();\r\n\r\n// NOTICE: If you put bodyparser after cas client, bodyparser will not receive req.socket data.\r\n// A native body parser is used in handler.\r\n// Sometimes you need to make some adjustments for your especial case.\r\napp.use(bodyparser());\r\n\r\n// NOTICE: Put the middleware include casClientHandler before your specific api code.\r\n// For example, put it before routes.\r\napp.use(koaCasClient({\r\n\tcasServerUrlPrefix: 'http://localhost:9000/cas',\r\n\tserverName: 'http://127.0.0.1'\r\n})).use(ctx => {\r\n\tconst { principal, ticket } = ctx;\r\n\r\n\t// your statements...\r\n\tctx.body = `<a href=\"${casServerUrlPrefix}/logout\">SLO</a><pre>`\r\n\tctx.body += JSON.stringify(principal, null, 2);\r\n\tctx.body += '</pre>'\r\n}).listen(80);\r\n```\r\nUnder the traditional pattern, cas client NEED to use with session, especially those 'Spring mvc' project in servlet.\r\n\r\nSo there is also a way to implement with all nodejs backend frameworks. For example in Koa2,\r\n```js\r\nconst koaSessionCasClient = require('http-cas-client/wrap/koa2-session');\r\nconst session = require('koa-session');\r\nconst Koa = require('koa');\r\nconst casServerUrlPrefix = 'http://localhost:9000/cas';\r\n\r\nconst app = new Koa();\r\nconst sessionMiddleware = session(app);\r\napp.keys = ['koa-app'];\r\n\r\napp.use(session(app)).use(koaSessionCasClient({\r\n\tcasServerUrlPrefix: 'http://localhost:9000/cas',\r\n\tserverName: 'http://127.0.0.1'\r\n})).use(ctx => {\r\n\tconst { principal } = ctx;\r\n\r\n\t// your statements...\r\n\tctx.body = `<a href=\"${casServerUrlPrefix}/logout\">SLO</a><pre>`\r\n\tctx.body += JSON.stringify(principal, null, 2);\r\n\tctx.body += '</pre>'\r\n}).listen(80);\r\n```\r\n### CAS Proxy (Use ServiceTicket instance)\r\n```js\r\nconst koaSessionCasClient = require('http-cas-client/wrap/koa2-session');\r\nconst koaCasClient = require('http-cas-client/wrap/koa2');\r\nconst Koa = require('koa');\r\nconst session = require('koa-session');\r\n\r\nconst casServerUrlPrefix = 'http://localhost:9000/cas';\r\n\r\nconst app = new Koa();\r\napp.keys = ['koa-app'];\r\napp.use(session(app)).use(koaSessionCasClient({\r\n\tcasServerUrlPrefix: 'http://localhost:9000/cas',\r\n\tserverName: 'http://127.0.0.1:2000',\r\n\tclient: {\r\n\t\tproxy: {\r\n\t\t\tcallbackUrl: 'http://127.0.0.1:2000/callback',\r\n\t\t\treceptorUrl: '/callback'\r\n\t\t}\r\n\t}\r\n})).use((ctx, next) => {\r\n\t// If req.url matches /app, skip into next middleware.\r\n\tif (ctx.request.path === '/app') {\r\n\t\treturn next();\r\n\t}\r\n\r\n\tconst { principal } = ctx;\r\n\r\n\t// This is the 1st cas client.\r\n\t// your statements...\r\n\tctx.body = `<p>This is proxy</p>`;\r\n\tctx.body = `<a href=\"${casServerUrlPrefix}/logout\">SLO</a><pre>`\r\n\tctx.body += JSON.stringify(principal, null, 2);\r\n\tctx.body += '</pre>'\r\n}).use(async ctx => {\r\n\tconst { ticket } = ctx;\r\n\r\n\t// Proxy request some data from 2rd cas client 'http://127.0.0.1:3000'.\r\n\tconst response = await ticket.request('http://127.0.0.1:3000/').then(axios => {\r\n\t\treturn axios.post('/test');\r\n\t});\r\n\r\n\t// Proxy send the data from 2rd.\r\n\tctx.body = response.data;\r\n}).listen(2000);\r\n\r\nconst app2 = new Koa();\r\napp2.use(koaCasClient({\r\n\tcasServerUrlPrefix: 'http://localhost:9000/cas',\r\n\tserverName: 'http://127.0.0.1:3000',\r\n\tclient: {\r\n\t\tproxy: {\r\n\t\t\tacceptAny: true,\r\n\t\t\tcallbackUrl: 'http://127.0.0.1:3000/proxyCallback',\r\n\t\t\treceptorUrl: '/proxyCallback'\r\n\t\t}\r\n\t}\r\n})).use(async ctx => {\r\n\t//This is the 2nd cas client.\r\n\tconst { principal, ticket } = ctx;\r\n\r\n\t// Proxy request some data from 3rd cas client 'http://127.0.0.1:4000/'.\r\n\tconst response = await ticket.request('http://127.0.0.1:4000/').then(axios => {\r\n\t\treturn axios.post('/test');\r\n\t});\r\n\r\n\t// your statements...\r\n\tctx.body = `<p>This is App</p>`;\r\n\tctx.body += `<a href=\"${casServerUrlPrefix}/logout\">SLO</a><pre>`;\r\n\tctx.body += JSON.stringify(principal, null, 2);\r\n\tctx.body += '</pre>';\r\n\r\n\t// Combine data from the 3rd.\r\n\tctx.body += response.data;\r\n}).listen(3000);\r\n\r\nconst app3 = new Koa();\r\napp3.use(koaCasClient({\r\n\tcasServerUrlPrefix: 'http://localhost:9000/cas',\r\n\tserverName: 'http://127.0.0.1:4000',\r\n\tclient: {\r\n\t\tproxy: {\r\n\t\t\tacceptAny: true,\r\n\t\t}\r\n\t}\r\n})).use(async ctx => {\r\n\t// This is the 3rd cas client.\r\n\t// your statements...\r\n\tctx.body = 'from the proxy proxy app.'\r\n}).listen(4000);\r\n```\r\n### Custom Wrap\r\n//TODO But you can review 'http-cas-client/wrap/koa2.js'. Maybe you can understand how to do.\r\n\r\nAt least I think that's easy. Good luck.\r\n\r\n## API Referrence\r\n### Options\r\nThe origin of CAS Server is essential. The simplest form is like,\r\n```js\r\nconst httpCasClient = require('http-cas-client');\r\nconst handler = httpCasClient({\r\n\tcasServerUrlPrefix: 'http://localhost:9000/cas',\r\n\tserverName: 'http://127.0.0.1',\r\n});\r\n```\r\n#### Full Default Options\r\n```js\r\n// Other items are optional.\r\nconst defaultOptions = {\r\n\tcas: 3, // CAS protocol version 1, 2, 3\r\n\r\n\tclient: {\r\n\t\tservice: null,\r\n\t\tslo: true, // Use SLO?\r\n\t\trenew: false, // CAS renew.\r\n\t\tgateway: false, // CAS gateway\r\n\t\tuseSession: false,\r\n\t\tmethod: 'GET',\r\n\t\t// The resource path rules let cas client ignore.\r\n\t\tignore: [/\\.(ico|css|js|jpe?g|svg|png)/],\r\n\t\tproxy: {\r\n\t\t\tacceptAny: false,\r\n\t\t\tallowedChains: () => true,\r\n\t\t\tcallbackUrl: null,\r\n\t\t\treceptorUrl: null\r\n\t\t}\r\n\t},\r\n\r\n\tserver: {\r\n\t\tloginUrl: null,\r\n\r\n\t\t// CAS Server URIs. Normally no change is required.\r\n\t\t// Useful when use a nonstandard cas server or url re-writed.\r\n\t\tpath: {\r\n\t\t\tlogin: '/login',\r\n\t\t\tlogout: '/logout',\r\n\t\t\tvalidate: '/validate',\r\n\t\t\tserviceValidate: '/serviceValidate',\r\n\t\t\tproxyValidate: '/proxyValidate',\r\n\t\t\tproxy: '/proxy',\r\n\t\t\tp3: {\r\n\t\t\t\tserviceValidate: '/p3/serviceValidate',\r\n\t\t\t\tproxyValidate: '/p3/proxyValidate',\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n```\r\nWhy these paths? See also, [CAS Protocol 3.0 Specification](https://apereo.github.io/cas/5.2.x/protocol/CAS-Protocol-Specification.html#2-cas-uris).\r\n\r\n#### Customs Options for Special Purposes\r\nYou can also override all items of options for your special cas server. And use chained multiple options arguments to create handler,\r\n```js\r\nconst casClientHandler = httpCasClient(options1, options2, ...);\r\n```\r\n### Store\r\nStore is an event emitter.\r\n#### Method\r\n\r\n//TODO\r\n\r\n#### Event\r\n//TODO\r\n\r\n## CAS Client Cluster\r\n### Shared Ticket Store\r\n### Sync ST store\r\n#### In Frontend\r\n#### In Backend\r\n\r\n## Debug\r\nBecause CAS protocol is complicated, we remove this option. We recommend you to always log every step that what CAS client do on your production environment.\r\n\r\nSetting env.DEBUG=\"cas,cas:*\";\r\n\r\n## License\r\n\r\nMIT","readmeFilename":"README.md","author":{"name":"ChaosLee"}}