22
33const every = require ( 'lodash/every' ) ;
44const NodeRSA = require ( 'node-rsa' ) ;
5- const { origin } = require ( '../../../../../config/server' ) ;
6- const urlJoin = require ( 'url-join' ) ;
7- const { validateConfig } = require ( '../../validation' ) ;
8- const yup = require ( 'yup' ) ;
95
10- const PROXY_PATH = '/proxy' ;
116const storageCookies = {
127 SIGNATURE : 'Storage-Signature' ,
138 EXPIRES : 'Storage-Expires'
149} ;
1510
16- const schema = yup . object ( ) . shape ( {
17- privateKey : yup . string ( ) . pkcs1 ( ) . required ( )
18- } ) ;
19-
20- class Local {
11+ class LocalAccessManager {
2112 constructor ( config ) {
22- config = validateConfig ( config , schema ) ;
23-
2413 this . signer = new NodeRSA ( config . privateKey , 'private' ) ;
25- this . isSelfHosted = true ;
26- this . path = PROXY_PATH ;
27- }
28-
29- static create ( config ) {
30- return new this ( config ) ;
3114 }
3215
33- getSignedCookies ( resource , maxAge ) {
34- const expires = getExpirationTime ( maxAge ) ;
16+ getSignedCookies ( resource , expires ) {
3517 const signature = this . signer . encrypt ( { resource, expires } , 'base64' ) ;
3618 return {
3719 [ storageCookies . SIGNATURE ] : signature ,
@@ -52,18 +34,9 @@ class Local {
5234 return every ( storageCookies , cookie => cookies [ cookie ] ) ;
5335 }
5436
55- getFileUrl ( key ) {
56- return urlJoin ( origin , this . path , key ) ;
57- }
58-
5937 getCookieNames ( ) {
6038 return Object . values ( storageCookies ) ;
6139 }
6240}
6341
64- module . exports = { create : Local . create . bind ( Local ) } ;
65-
66- function getExpirationTime ( maxAge ) {
67- // Expiration unix timestamp in ms
68- return new Date ( ) . getTime ( ) + maxAge ;
69- }
42+ module . exports = LocalAccessManager ;
0 commit comments