@@ -47,9 +47,29 @@ func generateToken(key: String, path: String, expires: Int, filteredIP: String =
4747 . replacingOccurrences ( of: " + " , with: " - " )
4848 . replacingOccurrences ( of: " / " , with: " _ " )
4949 . replacingOccurrences ( of: " = " , with: " " )
50+ print ( " ' \( path) ' generates ' \( tokenFormatted) ' " )
5051 return tokenFormatted
5152}
5253
54+ /// Generates a bunny.net URL
55+ func generateBunnyNetURL( url: String , key: String , expires: Int ) -> String ? {
56+ guard var components = URLComponents ( string: url) else {
57+ print ( " ERROR: Can't parse \( url) as a valid URL " )
58+ return nil
59+ }
60+ let token = generateToken ( key: key, path: components. path, expires: expires)
61+ let queryItems : [ URLQueryItem ] = [
62+ URLQueryItem ( name: " token " , value: token) ,
63+ URLQueryItem ( name: " expires " , value: String ( expires) ) ,
64+ ]
65+ components. queryItems = queryItems
66+ guard let modifiedURL = components. string else {
67+ print ( " ERROR: Can't construct modified URL " )
68+ return nil
69+ }
70+ return modifiedURL
71+ }
72+
5373class BunnyNetMiddleware : MunkiMiddleware {
5474 /// process the request
5575 func processRequest( _ request: MunkiMiddlewareRequest ) -> MunkiMiddlewareRequest {
@@ -58,23 +78,14 @@ class BunnyNetMiddleware: MunkiMiddleware {
5878 print ( " ERROR: BunnyNetKey preference not set " )
5979 return request
6080 }
61- guard var components = URLComponents ( string: request. url) else {
62- print ( " ERROR: Can't parse \( request. url) as a valid URL " )
63- return request
64- }
6581 let expires = Int ( Date ( ) . timeIntervalSince1970 + 3600 )
66- let token = generateToken (
82+ guard let modifiedURL = generateBunnyNetURL (
83+ url: request. url,
6784 key: securityKey,
68- path: components. path,
6985 expires: expires
70- )
71- let queryItems : [ URLQueryItem ] = [
72- URLQueryItem ( name: " token " , value: token) ,
73- URLQueryItem ( name: " expires " , value: String ( expires) ) ,
74- ]
75- components. queryItems = queryItems
76- guard let modifiedURL = components. string else {
77- print ( " ERROR: Can't construct modified URL " )
86+ ) else {
87+ // error message was printed by generateBunnyNetURL
88+ // return unmodifed request
7889 return request
7990 }
8091 var modifiedRequest = request
0 commit comments