{"action":"opened","issue":{"url":"https://api.github.com/repos/jubatus/jubaql-server/issues/1","labels_url":"https://api.github.com/repos/jubatus/jubaql-server/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/jubatus/jubaql-server/issues/1/comments","events_url":"https://api.github.com/repos/jubatus/jubaql-server/issues/1/events","html_url":"https://github.com/jubatus/jubaql-server/issues/1","id":78394275,"number":1,"title":"Implement authentication mechanism","user":{"login":"kmaehashi","id":939877,"avatar_url":"https://avatars.githubusercontent.com/u/939877?v=3","gravatar_id":"","url":"https://api.github.com/users/kmaehashi","html_url":"https://github.com/kmaehashi","followers_url":"https://api.github.com/users/kmaehashi/followers","following_url":"https://api.github.com/users/kmaehashi/following{/other_user}","gists_url":"https://api.github.com/users/kmaehashi/gists{/gist_id}","starred_url":"https://api.github.com/users/kmaehashi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kmaehashi/subscriptions","organizations_url":"https://api.github.com/users/kmaehashi/orgs","repos_url":"https://api.github.com/users/kmaehashi/repos","events_url":"https://api.github.com/users/kmaehashi/events{/privacy}","received_events_url":"https://api.github.com/users/kmaehashi/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"kmaehashi","id":939877,"avatar_url":"https://avatars.githubusercontent.com/u/939877?v=3","gravatar_id":"","url":"https://api.github.com/users/kmaehashi","html_url":"https://github.com/kmaehashi","followers_url":"https://api.github.com/users/kmaehashi/followers","following_url":"https://api.github.com/users/kmaehashi/following{/other_user}","gists_url":"https://api.github.com/users/kmaehashi/gists{/gist_id}","starred_url":"https://api.github.com/users/kmaehashi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kmaehashi/subscriptions","organizations_url":"https://api.github.com/users/kmaehashi/orgs","repos_url":"https://api.github.com/users/kmaehashi/repos","events_url":"https://api.github.com/users/kmaehashi/events{/privacy}","received_events_url":"https://api.github.com/users/kmaehashi/received_events","type":"User","site_admin":false},"milestone":null,"comments":0,"created_at":"2015-05-20T06:27:08Z","updated_at":"2015-05-20T06:27:08Z","closed_at":null,"body":"Currently JubaQL Gateway does not support any kind of authentication.\r\nThis means that privileges of the user who runs JubaQL gateway is used to submit jobs to YARN cluster (and to access HDFS resources.)\r\n\r\nTo support the true multi-tenancy, JubaQL gateway should implement authentication mechanism.\r\nhadoop-auth library, which is a servlet filter used to support simple / Kerberos authentication against HTTP API / Web UI of Hadoop components, seems like a reasonable choice.\r\nGateway can then impersonate another user using proxy user feature of Hadoop.\r\n\r\nNow I'm working on migrating the unfiltered backend from Netty to Jetty to use servlet filter.\r\nAny concerns?\r\n\r\ncc: @tgpfeiffer"}}