1- component extends = " coldbox.system.Interceptor" {
1+ component extends = " coldbox.system.Interceptor" {
22
33 property name = " coldboxVersion" inject = " coldbox:fwSetting:version" ;
44 property name = " handlerService" inject = " coldbox:handlerService" ;
@@ -13,16 +13,22 @@ component extends="coldbox.system.Interceptor"{
1313 }
1414
1515 /**
16- * Check the current event's handler for `secured` metadata annotations
17- * on the handler and the current action.
18- *
19- * If a `secured` annotation is found, the permissions list attached
20- * is checked against the current user's permissions.
21- *
22- * If the user is not logged in or does not have one of the required permissions,
23- * the event is overridden to the event specified in module settings.
24- */
25- function preProcess ( event , rc , prc , interceptData , buffer ) {
16+ * Check the current event's handler for `secured` metadata annotations
17+ * on the handler and the current action.
18+ *
19+ * If a `secured` annotation is found, the permissions list attached
20+ * is checked against the current user's permissions.
21+ *
22+ * If the user is not logged in or does not have one of the required permissions,
23+ * the event is overridden to the event specified in module settings.
24+ */
25+ function preProcess (
26+ event ,
27+ rc ,
28+ prc ,
29+ interceptData ,
30+ buffer
31+ ) {
2632 if ( event .getHTTPMethod () == " OPTIONS" ) {
2733 return ;
2834 }
@@ -54,24 +60,24 @@ component extends="coldbox.system.Interceptor"{
5460 return ;
5561 }
5662
57- if ( ! handlerBean .isMetadataLoaded () ) {
63+ if ( ! handlerBean .isMetadataLoaded () ) {
5864 handlerService .getHandler ( handlerBean , event );
5965 }
6066 var handlerMetadata = handlerBean .getHandlerMetadata ();
6167
6268 return notAuthorizedForHandler ( handlerMetadata , event , overrides ) ||
63- notAuthorizedForAction ( handlerMetadata , event , overrides );
69+ notAuthorizedForAction ( handlerMetadata , event , overrides );
6470 }
6571
6672 /**
67- * Check the current event's handler for `secured` metadata annotations.
68- *
69- * If a `secured` annotation is found, the permissions list attached
70- * is checked against the current user's permissions.
71- *
72- * If the user is not logged in or does not have one of the required permissions,
73- * the event is overridden to the event specified in module settings.
74- */
73+ * Check the current event's handler for `secured` metadata annotations.
74+ *
75+ * If a `secured` annotation is found, the permissions list attached
76+ * is checked against the current user's permissions.
77+ *
78+ * If the user is not logged in or does not have one of the required permissions,
79+ * the event is overridden to the event specified in module settings.
80+ */
7581 private function notAuthorizedForHandler ( handlerMetadata , event , overrides = {} ) {
7682 var props = {};
7783 structAppend ( props , variables .properties , true );
@@ -85,19 +91,24 @@ component extends="coldbox.system.Interceptor"{
8591 param props .authorizationOverrideEvent = " " ;
8692 param props .authorizationAjaxOverrideEvent = props .authorizationOverrideEvent ;
8793
88- if ( ! structKeyExists ( handlerMetadata , " secured" ) ) {
94+ if ( ! structKeyExists ( handlerMetadata , " secured" ) ) {
8995 return false ;
9096 }
9197
9298 if ( handlerMetadata .secured == false ) {
9399 return false ;
94100 }
95101
96- if ( ! invoke ( props .authenticationService , props .methodNames [ " isLoggedIn" ] ) ) {
102+ if ( ! invoke ( props .authenticationService , props .methodNames [ " isLoggedIn" ] ) ) {
97103 // Override the coldbox.cfc global onAuthenticationFailure if it exists in the handler.
98104 // Per docs, they will override for Ajax requests also.
99105 var eventType = event .isAjax () ? " authenticationAjaxOverrideEvent" : " authenticationOverrideEvent" ;
100- var relocateEvent = getOverrideEvent ( handlerMetadata , event , props , eventType );
106+ var relocateEvent = getOverrideEvent (
107+ handlerMetadata ,
108+ event ,
109+ props ,
110+ eventType
111+ );
101112 var overrideAction = props .overrideActions [ eventType ];
102113
103114 // If the override is within the same handler that is being secured,
@@ -122,9 +133,7 @@ component extends="coldbox.system.Interceptor"{
122133 }
123134
124135 var neededPermissions = handlerMetadata .secured ;
125- neededPermissions = isArray ( neededPermissions ) ?
126- neededPermissions :
127- listToArray ( neededPermissions );
136+ neededPermissions = isArray ( neededPermissions ) ? neededPermissions : listToArray ( neededPermissions );
128137
129138 if ( arrayIsEmpty ( neededPermissions ) ) {
130139 return false ;
@@ -133,21 +142,26 @@ component extends="coldbox.system.Interceptor"{
133142 var loggedInUser = invoke ( props .authenticationService , props .methodNames [ " getUser" ] );
134143
135144 for ( var permission in neededPermissions ) {
136- if ( invoke ( loggedInUser , props .methodNames [ " hasPermission" ], { permission = permission } ) ) {
145+ if ( invoke ( loggedInUser , props .methodNames [ " hasPermission" ], { permission : permission } ) ) {
137146 return false ;
138147 }
139148 }
140149
141150 // At this point, we know the user did NOT have any of the required permissions,
142151 // so we will fire the appropriate authorization failure events
143152 var eventType = event .isAjax () ? " authorizationAjaxOverrideEvent" : " authorizationOverrideEvent" ;
144- var relocateEvent = getOverrideEvent ( handlerMetadata , event , props , eventType );
153+ var relocateEvent = getOverrideEvent (
154+ handlerMetadata ,
155+ event ,
156+ props ,
157+ eventType
158+ );
145159 var overrideAction = props .overrideActions [ eventType ];
146160
147161 // If the override is within the same handler that is being secured,
148162 // we have to override the event instead of relocating. Prevents a circle of death.
149163 if ( event .getCurrentHandler () == handlerService .getHandlerBean ( relocateEvent ).getHandler () ) {
150- overrideAction = ' override' ;
164+ overrideAction = " override" ;
151165 }
152166 switch ( overrideAction ) {
153167 case " relocate" :
@@ -166,14 +180,14 @@ component extends="coldbox.system.Interceptor"{
166180 }
167181
168182 /**
169- * Check the current event's action for `secured` metadata annotations.
170- *
171- * If a `secured` annotation is found, the permissions list attached
172- * is checked against the current user's permissions.
173- *
174- * If the user is not logged in or does not have one of the required permissions,
175- * the event is overridden to the event specified in module settings.
176- */
183+ * Check the current event's action for `secured` metadata annotations.
184+ *
185+ * If a `secured` annotation is found, the permissions list attached
186+ * is checked against the current user's permissions.
187+ *
188+ * If the user is not logged in or does not have one of the required permissions,
189+ * the event is overridden to the event specified in module settings.
190+ */
177191 private function notAuthorizedForAction ( handlerMetadata , event , overrides = {} ) {
178192 var props = {};
179193 structAppend ( props , variables .properties , true );
@@ -187,7 +201,7 @@ component extends="coldbox.system.Interceptor"{
187201 param props .authorizationOverrideEvent = " " ;
188202 param props .authorizationAjaxOverrideEvent = props .authorizationOverrideEvent ;
189203
190- if ( ! structKeyExists ( handlerMetadata , " functions" ) ) {
204+ if ( ! structKeyExists ( handlerMetadata , " functions" ) ) {
191205 return false ;
192206 }
193207
@@ -200,12 +214,17 @@ component extends="coldbox.system.Interceptor"{
200214 }
201215
202216 var targetActionMetadata = funcsMetadata [ 1 ];
203- if ( ! structKeyExists ( targetActionMetadata , " secured" ) || targetActionMetadata .secured == false ) {
217+ if ( ! structKeyExists ( targetActionMetadata , " secured" ) || targetActionMetadata .secured == false ) {
204218 return false ;
205219 }
206- if ( ! invoke ( props .authenticationService , props .methodNames [ " isLoggedIn" ] ) ) {
220+ if ( ! invoke ( props .authenticationService , props .methodNames [ " isLoggedIn" ] ) ) {
207221 var eventType = event .isAjax () ? " authenticationAjaxOverrideEvent" : " authenticationOverrideEvent" ;
208- var relocateEvent = getOverrideEvent ( handlerMetadata , event , props , eventType );
222+ var relocateEvent = getOverrideEvent (
223+ handlerMetadata ,
224+ event ,
225+ props ,
226+ eventType
227+ );
209228 var overrideAction = props .overrideActions [ eventType ];
210229 switch ( overrideAction ) {
211230 case " relocate" :
@@ -224,9 +243,7 @@ component extends="coldbox.system.Interceptor"{
224243 }
225244
226245 var neededPermissions = targetActionMetadata .secured ;
227- neededPermissions = isArray ( neededPermissions ) ?
228- neededPermissions :
229- listToArray ( neededPermissions );
246+ neededPermissions = isArray ( neededPermissions ) ? neededPermissions : listToArray ( neededPermissions );
230247
231248 if ( arrayIsEmpty ( neededPermissions ) ) {
232249 return false ;
@@ -235,15 +252,20 @@ component extends="coldbox.system.Interceptor"{
235252 var loggedInUser = invoke ( props .authenticationService , props .methodNames [ " getUser" ] );
236253
237254 for ( var permission in neededPermissions ) {
238- if ( invoke ( loggedInUser , props .methodNames [ " hasPermission" ], { permission = permission } ) ) {
255+ if ( invoke ( loggedInUser , props .methodNames [ " hasPermission" ], { permission : permission } ) ) {
239256 return false ;
240257 }
241258 }
242259
243260 // Override the coldbox.cfc global onAuthorizationFailure if it exists in the handler.
244261 // Per docs, they will override for Ajax requests also.
245262 var eventType = event .isAjax () ? " authorizationAjaxOverrideEvent" : " authorizationOverrideEvent" ;
246- var relocateEvent = getOverrideEvent ( handlerMetadata , event , props , eventType );
263+ var relocateEvent = getOverrideEvent (
264+ handlerMetadata ,
265+ event ,
266+ props ,
267+ eventType
268+ );
247269 var overrideAction = props .overrideActions [ eventType ];
248270
249271 switch ( overrideAction ) {
@@ -264,10 +286,15 @@ component extends="coldbox.system.Interceptor"{
264286 /**
265287 * Override the coldbox.cfc global on[eventType]Failure if it exists in the handler.
266288 */
267- private function getOverrideEvent ( handlerMetadata , event , props , eventType ) {
289+ private function getOverrideEvent (
290+ handlerMetadata ,
291+ event ,
292+ props ,
293+ eventType
294+ ) {
268295 var handlerOverrides = arrayFilter ( arguments .handlerMetadata .functions , function ( func ) {
269296 // In case some other override comes up in the future, using switch
270- switch ( eventType ) {
297+ switch ( eventType ) {
271298 case " authenticationOverrideEvent" :
272299 case " authenticationAjaxOverrideEvent" :
273300 return func .name == " onAuthenticationFailure" ;
@@ -278,9 +305,9 @@ component extends="coldbox.system.Interceptor"{
278305 return false ;
279306 }
280307 } );
281- return handlerOverrides .isEmpty () ?
282- arguments . props [ eventType ] :
283- arguments . event . getCurrentHandler () & " . " & handlerOverrides [ 1 ].name ;
308+ return handlerOverrides .isEmpty () ? arguments . props [ eventType ] : arguments . event . getCurrentHandler () & " . " & handlerOverrides [
309+ 1
310+ ].name ;
284311 }
285312
286313 private boolean function isInvalidEventHandlerBean ( required handlerBean ) {
@@ -295,4 +322,5 @@ component extends="coldbox.system.Interceptor"{
295322 variables .onInvalidEventHandlerBean .getModule () == arguments .handlerBean .getModule ()
296323 );
297324 }
325+
298326}
0 commit comments