@@ -106,7 +106,7 @@ public virtual HttpResponseMessage Post([FromUri] string serviceName, [FromUri]
106106
107107 if ( SettingsManager . ProviderSettings . JobBinding )
108108 {
109- service . Bind ( getOwnerId ( sessionToken ) , id ) ;
109+ service . Bind ( id , getOwnerId ( sessionToken ) ) ;
110110 }
111111
112112 jobType job = service . Retrieve ( id , zone : ( zone == null ? null : zone [ 0 ] ) , context : ( context == null ? null : context [ 0 ] ) ) ;
@@ -170,7 +170,7 @@ public virtual HttpResponseMessage Post([FromUri] string serviceName, [FromBody]
170170
171171 if ( SettingsManager . ProviderSettings . JobBinding )
172172 {
173- service . Bind ( getOwnerId ( sessionToken ) , id ) ;
173+ service . Bind ( id , getOwnerId ( sessionToken ) ) ;
174174 }
175175
176176 creates . Add ( ProviderUtils . CreateCreate ( HttpStatusCode . Created , id . ToString ( ) , job . id ) ) ;
@@ -245,7 +245,7 @@ public virtual ICollection<jobType> Get([FromUri] string serviceName, [MatrixPar
245245 foreach ( jobType job in jobs )
246246 {
247247 if ( ! SettingsManager . ProviderSettings . JobBinding
248- || service . IsBound ( getOwnerId ( sessionToken ) , Guid . Parse ( job . id ) ) )
248+ || service . IsBound ( Guid . Parse ( job . id ) , getOwnerId ( sessionToken ) ) )
249249 {
250250 items . Add ( job ) ;
251251 }
@@ -284,7 +284,7 @@ public virtual HttpResponseMessage Get([FromUri] string serviceName, [FromUri] G
284284 item = service . Retrieve ( id , zone : ( zone == null ? null : zone [ 0 ] ) , context : ( context == null ? null : context [ 0 ] ) ) ;
285285
286286 if ( SettingsManager . ProviderSettings . JobBinding
287- && ! service . IsBound ( getOwnerId ( sessionToken ) , Guid . Parse ( item . id ) ) )
287+ && ! service . IsBound ( Guid . Parse ( item . id ) , getOwnerId ( sessionToken ) ) )
288288 {
289289 throw new InvalidSessionException ( "Request failed as one or more jobs referred to in this request do not belong to this consumer." ) ;
290290 }
@@ -344,7 +344,7 @@ public virtual HttpResponseMessage Delete([FromUri] string serviceName, [FromUri
344344 IFunctionalService service = getService ( serviceName ) ;
345345
346346 if ( SettingsManager . ProviderSettings . JobBinding
347- && ! service . IsBound ( getOwnerId ( sessionToken ) , id ) )
347+ && ! service . IsBound ( id , getOwnerId ( sessionToken ) ) )
348348 {
349349 throw new InvalidSessionException ( "Request failed as one or more jobs referred to in this request do not belong to this consumer." ) ;
350350 }
@@ -384,9 +384,9 @@ public virtual HttpResponseMessage Delete([FromUri] string serviceName, [FromBod
384384 try
385385 {
386386 if ( SettingsManager . ProviderSettings . JobBinding
387- && ! service . IsBound ( getOwnerId ( sessionToken ) , Guid . Parse ( deleteId . id ) ) )
387+ && ! service . IsBound ( Guid . Parse ( deleteId . id ) , getOwnerId ( sessionToken ) ) )
388388 {
389- throw new InvalidSessionException ( "Request failed as one or more jobs referred to in this request do not belong to this consumer." ) ;
389+ throw new InvalidSessionException ( "Request failed as job does not belong to this consumer." ) ;
390390 }
391391
392392 service . Delete ( Guid . Parse ( deleteId . id ) , zone : ( zone == null ? null : zone [ 0 ] ) , context : ( context == null ? null : context [ 0 ] ) ) ;
@@ -412,7 +412,7 @@ public virtual HttpResponseMessage Delete([FromUri] string serviceName, [FromBod
412412 }
413413 catch ( InvalidSessionException e )
414414 {
415- statuses . Add ( ProviderUtils . CreateDelete ( HttpStatusCode . BadRequest , deleteId . id , ProviderUtils . CreateError ( HttpStatusCode . BadRequest , serviceName , "Request failed for object " + serviceName + " with ID of " + deleteId . id + ".\n " + e . Message ) ) ) ;
415+ statuses . Add ( ProviderUtils . CreateDelete ( HttpStatusCode . BadRequest , deleteId . id , ProviderUtils . CreateError ( HttpStatusCode . BadRequest , serviceName , "Request failed for object " + serviceName + " with ID of " + deleteId . id + ", job doesn't belong to this consumer .\n " + e . Message ) ) ) ;
416416 }
417417 catch ( Exception e )
418418 {
@@ -444,11 +444,11 @@ public virtual HttpResponseMessage Post([FromUri] string serviceName, [FromUri]
444444 {
445445 IFunctionalService service = getService ( serviceName ) ;
446446 if ( SettingsManager . ProviderSettings . JobBinding
447- && ! service . IsBound ( getOwnerId ( sessionToken ) , id ) )
447+ && ! service . IsBound ( id , getOwnerId ( sessionToken ) ) )
448448 {
449449 throw new InvalidSessionException ( "Request failed as the job referred to in this request does not belong to this consumer." ) ;
450450 }
451- return OKResult ( service . CreateToPhase ( id , phaseName , body , zone : ( zone == null ? null : zone [ 0 ] ) , context : ( context == null ? null : context [ 0 ] ) , contentType : HttpUtils . getContentType ( Request ) , accept : HttpUtils . GetAccept ( Request ) ) ) ;
451+ return OKResult ( service . CreateToPhase ( id , phaseName , body , zone : ( zone == null ? null : zone [ 0 ] ) , context : ( context == null ? null : context [ 0 ] ) , contentType : HttpUtils . GetContentType ( Request ) , accept : HttpUtils . GetAccept ( Request ) ) ) ;
452452 }
453453 catch ( ArgumentException e )
454454 {
@@ -485,11 +485,11 @@ public virtual HttpResponseMessage Get([FromUri] string serviceName, [FromUri] G
485485 {
486486 IFunctionalService service = getService ( serviceName ) ;
487487 if ( SettingsManager . ProviderSettings . JobBinding
488- && ! service . IsBound ( getOwnerId ( sessionToken ) , id ) )
488+ && ! service . IsBound ( id , getOwnerId ( sessionToken ) ) )
489489 {
490490 throw new InvalidSessionException ( "Request failed as the job referred to in this request does not belong to this consumer." ) ;
491491 }
492- return OKResult ( service . RetrieveToPhase ( id , phaseName , zone : ( zone == null ? null : zone [ 0 ] ) , context : ( context == null ? null : context [ 0 ] ) , contentType : HttpUtils . getContentType ( Request ) , accept : HttpUtils . GetAccept ( Request ) ) ) ;
492+ return OKResult ( service . RetrieveToPhase ( id , phaseName , zone : ( zone == null ? null : zone [ 0 ] ) , context : ( context == null ? null : context [ 0 ] ) , contentType : HttpUtils . GetContentType ( Request ) , accept : HttpUtils . GetAccept ( Request ) ) ) ;
493493 }
494494 catch ( ArgumentException e )
495495 {
@@ -524,11 +524,11 @@ public virtual HttpResponseMessage Put([FromUri] string serviceName, [FromUri] G
524524 {
525525 IFunctionalService service = getService ( serviceName ) ;
526526 if ( SettingsManager . ProviderSettings . JobBinding
527- && ! service . IsBound ( getOwnerId ( sessionToken ) , id ) )
527+ && ! service . IsBound ( id , getOwnerId ( sessionToken ) ) )
528528 {
529529 throw new InvalidSessionException ( "Request failed as the job referred to in this request does not belong to this consumer." ) ;
530530 }
531- return OKResult ( service . UpdateToPhase ( id , phaseName , body , zone : ( zone == null ? null : zone [ 0 ] ) , context : ( context == null ? null : context [ 0 ] ) , contentType : HttpUtils . getContentType ( Request ) , accept : HttpUtils . GetAccept ( Request ) ) ) ;
531+ return OKResult ( service . UpdateToPhase ( id , phaseName , body , zone : ( zone == null ? null : zone [ 0 ] ) , context : ( context == null ? null : context [ 0 ] ) , contentType : HttpUtils . GetContentType ( Request ) , accept : HttpUtils . GetAccept ( Request ) ) ) ;
532532 }
533533 catch ( ArgumentException e )
534534 {
@@ -565,11 +565,11 @@ public virtual HttpResponseMessage Delete([FromUri] string serviceName, [FromUri
565565 {
566566 IFunctionalService service = getService ( serviceName ) ;
567567 if ( SettingsManager . ProviderSettings . JobBinding
568- && ! service . IsBound ( getOwnerId ( sessionToken ) , id ) )
568+ && ! service . IsBound ( id , getOwnerId ( sessionToken ) ) )
569569 {
570570 throw new InvalidSessionException ( "Request failed as the job referred to in this request does not belong to this consumer." ) ;
571571 }
572- return OKResult ( service . DeleteToPhase ( id , phaseName , body , zone : ( zone == null ? null : zone [ 0 ] ) , context : ( context == null ? null : context [ 0 ] ) , contentType : HttpUtils . getContentType ( Request ) , accept : HttpUtils . GetAccept ( Request ) ) ) ;
572+ return OKResult ( service . DeleteToPhase ( id , phaseName , body , zone : ( zone == null ? null : zone [ 0 ] ) , context : ( context == null ? null : context [ 0 ] ) , contentType : HttpUtils . GetContentType ( Request ) , accept : HttpUtils . GetAccept ( Request ) ) ) ;
573573 }
574574 catch ( ArgumentException e )
575575 {
@@ -609,7 +609,7 @@ public virtual HttpResponseMessage Post([FromUri] string serviceName, [FromUri]
609609 {
610610 IFunctionalService service = getService ( serviceName ) ;
611611 if ( SettingsManager . ProviderSettings . JobBinding
612- && ! service . IsBound ( getOwnerId ( sessionToken ) , id ) )
612+ && ! service . IsBound ( id , getOwnerId ( sessionToken ) ) )
613613 {
614614 throw new InvalidSessionException ( "Request failed as the job referred to in this request does not belong to this consumer." ) ;
615615 }
@@ -787,7 +787,25 @@ protected HttpResponseMessage OKResult(string payload = null)
787787
788788 private String getOwnerId ( String sessionToken )
789789 {
790- return sessionToken ;
790+ String ownerId = null ;
791+
792+ switch ( SettingsManager . ProviderSettings . EnvironmentType )
793+ {
794+ case EnvironmentType . DIRECT :
795+ // Application key is either in header or in session token
796+ ownerId = HttpUtils . GetApplicationKey ( Request . Headers ) ?? sessionToken ;
797+ break ;
798+ case EnvironmentType . BROKERED :
799+ // Application key must have been moved into sourceName property
800+ ownerId = HttpUtils . GetSourceName ( Request . Headers ) ;
801+ break ;
802+ }
803+
804+ if ( ownerId == null )
805+ {
806+ throw new NotFoundException ( "Could not identify consumer." ) ;
807+ }
808+ return ownerId ;
791809 }
792810 }
793811
0 commit comments