{"action":"opened","issue":{"url":"https://api.github.com/repos/Graylog2/graylog2-web-interface/issues/1623","labels_url":"https://api.github.com/repos/Graylog2/graylog2-web-interface/issues/1623/labels{/name}","comments_url":"https://api.github.com/repos/Graylog2/graylog2-web-interface/issues/1623/comments","events_url":"https://api.github.com/repos/Graylog2/graylog2-web-interface/issues/1623/events","html_url":"https://github.com/Graylog2/graylog2-web-interface/issues/1623","id":108864854,"number":1623,"title":"\"Not authorized to access resource id\" when message is routed to 2 streams, one with, one without access","user":{"login":"SjonHortensius","id":1684987,"avatar_url":"https://avatars.githubusercontent.com/u/1684987?v=3","gravatar_id":"","url":"https://api.github.com/users/SjonHortensius","html_url":"https://github.com/SjonHortensius","followers_url":"https://api.github.com/users/SjonHortensius/followers","following_url":"https://api.github.com/users/SjonHortensius/following{/other_user}","gists_url":"https://api.github.com/users/SjonHortensius/gists{/gist_id}","starred_url":"https://api.github.com/users/SjonHortensius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SjonHortensius/subscriptions","organizations_url":"https://api.github.com/users/SjonHortensius/orgs","repos_url":"https://api.github.com/users/SjonHortensius/repos","events_url":"https://api.github.com/users/SjonHortensius/events{/privacy}","received_events_url":"https://api.github.com/users/SjonHortensius/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-09-29T13:04:41Z","updated_at":"2015-09-29T13:04:41Z","closed_at":null,"body":"I have a few streams that contain the same message. One of these streams is a subset of the other, and I have given others read-access to that stream.\r\n\r\nIt seems that since upgrading to 1.2.1 this no longer works; although users see the messages in the stream, attempting to view the details of that message throws:\r\n\r\n```\r\nOh no, something went wrong!\r\n(You caused a org.graylog2.restclient.lib.APIException. API call failed GET http://xxx/messages/graylog2_2/49713841-66a2-11e5-9112-00163e07bc62 returned 403 Forbidden body: {\"type\":\"ApiError\",\"message\":\"Not authorized to access resource id 49713841-66a2-11e5-9112-00163e07bc62\"})\r\n\r\nReason: Could not get message. We expected HTTP 200, but got a HTTP 403.\r\n\r\nNeed help?\r\nDo not hesitate to consult the Graylog community if your questions are not answered in the documentation (http://docs.graylog.org/en/1.2).\r\n   Forum / Mailing list (https://www.graylog.org/community-support/)\r\n   Issue tracker (https://github.com/Graylog2/graylog2-web-interface/issues)\r\n   Commercial support (https://www.graylog.com/support/)\r\nStacktrace\r\n  org.graylog2.restclient.lib.ApiClientImpl$ApiRequestBuilder#handleResponse (ApiClientImpl.java:511)\r\n  org.graylog2.restclient.lib.ApiClientImpl$ApiRequestBuilder#execute (ApiClientImpl.java:441)\r\n  org.graylog2.restclient.models.MessagesService#getMessage (MessagesService.java:105)\r\n  controllers.SearchController#showMessage (SearchController.java:505)\r\n  Routes$$anonfun$routes$1$$anonfun$applyOrElse$9$$anonfun$apply$461#apply (routes_routing.scala:1661)\r\n  Routes$$anonfun$routes$1$$anonfun$applyOrElse$9$$anonfun$apply$461#apply (routes_routing.scala:1661)\r\n  play.core.Router$HandlerInvokerFactory$$anon$4#resultCall (Router.scala:264)\r\n  play.core.Router$HandlerInvokerFactory$JavaActionInvokerFactory$$anon$15$$anon$1#invocation (Router.scala:255)\r\n  play.core.j.JavaAction$$anon$1#call (JavaAction.scala:55)\r\n  play.GlobalSettings$1#call (GlobalSettings.java:67)\r\n  play.mvc.Security$AuthenticatedAction#call (Security.java:44)\r\n  play.core.j.JavaAction$$anonfun$11#apply (JavaAction.scala:82)\r\n  play.core.j.JavaAction$$anonfun$11#apply (JavaAction.scala:82)\r\n  scala.concurrent.impl.Future$PromiseCompletingRunnable#liftedTree1$1 (Future.scala:24)\r\n  scala.concurrent.impl.Future$PromiseCompletingRunnable#run (Future.scala:24)\r\n  play.core.j.HttpExecutionContext$$anon$2#run (HttpExecutionContext.scala:40)\r\n  play.api.libs.iteratee.Execution$trampoline$#execute (Execution.scala:46)\r\n  play.core.j.HttpExecutionContext#execute (HttpExecutionContext.scala:32)\r\n  scala.concurrent.impl.Future$#apply (Future.scala:31)\r\n  scala.concurrent.Future$#apply (Future.scala:485)\r\n  play.core.j.JavaAction$class#apply (JavaAction.scala:82)\r\n  play.core.Router$HandlerInvokerFactory$JavaActionInvokerFactory$$anon$15$$anon$1#apply (Router.scala:252)\r\n  play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5#apply (Action.scala:130)\r\n  play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5#apply (Action.scala:130)\r\n  play.utils.Threads$#withContextClassLoader (Threads.scala:21)\r\n  play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4#apply (Action.scala:129)\r\n  play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4#apply (Action.scala:128)\r\n  scala.Option#map (Option.scala:145)\r\n  play.api.mvc.Action$$anonfun$apply$1#apply (Action.scala:128)\r\n  play.api.mvc.Action$$anonfun$apply$1#apply (Action.scala:121)\r\n  play.api.libs.iteratee.Iteratee$$anonfun$mapM$1#apply (Iteratee.scala:483)\r\n  play.api.libs.iteratee.Iteratee$$anonfun$mapM$1#apply (Iteratee.scala:483)\r\n  play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1#apply (Iteratee.scala:519)\r\n  play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1#apply (Iteratee.scala:519)\r\n  play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$14#apply (Iteratee.scala:496)\r\n  play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$14#apply (Iteratee.scala:496)\r\n  scala.concurrent.impl.Future$PromiseCompletingRunnable#liftedTree1$1 (Future.scala:24)\r\n  scala.concurrent.impl.Future$PromiseCompletingRunnable#run (Future.scala:24)\r\n  akka.dispatch.TaskInvocation#run (AbstractDispatcher.scala:41)\r\n  akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask#exec (AbstractDispatcher.scala:393)\r\n  scala.concurrent.forkjoin.ForkJoinTask#doExec (ForkJoinTask.java:260)\r\n  scala.concurrent.forkjoin.ForkJoinPool$WorkQueue#runTask (ForkJoinPool.java:1339)\r\n  scala.concurrent.forkjoin.ForkJoinPool#runWorker (ForkJoinPool.java:1979)\r\n  scala.concurrent.forkjoin.ForkJoinWorkerThread#run (ForkJoinWorkerThread.java:107)\r\n\r\n```"}}