{"action":"created","issue":{"url":"https://api.github.com/repos/Jasig/cas/issues/514","labels_url":"https://api.github.com/repos/Jasig/cas/issues/514/labels{/name}","comments_url":"https://api.github.com/repos/Jasig/cas/issues/514/comments","events_url":"https://api.github.com/repos/Jasig/cas/issues/514/events","html_url":"https://github.com/Jasig/cas/issues/514","id":37854827,"number":514,"title":"OAuth support based on Spring Security OAuth and MITREID Connect","user":{"login":"mmoayyed","id":1205228,"avatar_url":"https://avatars.githubusercontent.com/u/1205228?v=3","gravatar_id":"","url":"https://api.github.com/users/mmoayyed","html_url":"https://github.com/mmoayyed","followers_url":"https://api.github.com/users/mmoayyed/followers","following_url":"https://api.github.com/users/mmoayyed/following{/other_user}","gists_url":"https://api.github.com/users/mmoayyed/gists{/gist_id}","starred_url":"https://api.github.com/users/mmoayyed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mmoayyed/subscriptions","organizations_url":"https://api.github.com/users/mmoayyed/orgs","repos_url":"https://api.github.com/users/mmoayyed/repos","events_url":"https://api.github.com/users/mmoayyed/events{/privacy}","received_events_url":"https://api.github.com/users/mmoayyed/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Jasig/cas/labels/Major","name":"Major","color":"eb6420"},{"url":"https://api.github.com/repos/Jasig/cas/labels/New%20Feature","name":"New Feature","color":"207de5"},{"url":"https://api.github.com/repos/Jasig/cas/labels/OAuth","name":"OAuth","color":"5319e7"}],"state":"open","locked":false,"assignee":{"login":"leleuj","id":1038508,"avatar_url":"https://avatars.githubusercontent.com/u/1038508?v=3","gravatar_id":"","url":"https://api.github.com/users/leleuj","html_url":"https://github.com/leleuj","followers_url":"https://api.github.com/users/leleuj/followers","following_url":"https://api.github.com/users/leleuj/following{/other_user}","gists_url":"https://api.github.com/users/leleuj/gists{/gist_id}","starred_url":"https://api.github.com/users/leleuj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leleuj/subscriptions","organizations_url":"https://api.github.com/users/leleuj/orgs","repos_url":"https://api.github.com/users/leleuj/repos","events_url":"https://api.github.com/users/leleuj/events{/privacy}","received_events_url":"https://api.github.com/users/leleuj/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/Jasig/cas/milestones/15","html_url":"https://github.com/Jasig/cas/milestones/4.3.0","labels_url":"https://api.github.com/repos/Jasig/cas/milestones/15/labels","id":1349862,"number":15,"title":"4.3.0","description":"CAS version 4.3.0 minor release","creator":{"login":"mmoayyed","id":1205228,"avatar_url":"https://avatars.githubusercontent.com/u/1205228?v=3","gravatar_id":"","url":"https://api.github.com/users/mmoayyed","html_url":"https://github.com/mmoayyed","followers_url":"https://api.github.com/users/mmoayyed/followers","following_url":"https://api.github.com/users/mmoayyed/following{/other_user}","gists_url":"https://api.github.com/users/mmoayyed/gists{/gist_id}","starred_url":"https://api.github.com/users/mmoayyed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mmoayyed/subscriptions","organizations_url":"https://api.github.com/users/mmoayyed/orgs","repos_url":"https://api.github.com/users/mmoayyed/repos","events_url":"https://api.github.com/users/mmoayyed/events{/privacy}","received_events_url":"https://api.github.com/users/mmoayyed/received_events","type":"User","site_admin":false},"open_issues":13,"closed_issues":4,"state":"open","created_at":"2015-10-12T01:28:38Z","updated_at":"2015-12-16T16:59:58Z","due_on":"2016-04-19T07:00:00Z","closed_at":null},"comments":26,"created_at":"2014-07-15T06:29:00Z","updated_at":"2015-12-21T19:36:59Z","closed_at":null,"body":"*  limited set of attributes\r\n*  impersonation\r\n*  enable/disable confirmation screen (enabled by default)\r\n* missing grant types? \r\n* make sure attributes are returned for each service after validation?\r\n\r\nGenerate access\\_token according to the service, not a global one (TGT)\r\n"},"comment":{"url":"https://api.github.com/repos/Jasig/cas/issues/comments/166399262","html_url":"https://github.com/Jasig/cas/issues/514#issuecomment-166399262","issue_url":"https://api.github.com/repos/Jasig/cas/issues/514","id":166399262,"user":{"login":"leleuj","id":1038508,"avatar_url":"https://avatars.githubusercontent.com/u/1038508?v=3","gravatar_id":"","url":"https://api.github.com/users/leleuj","html_url":"https://github.com/leleuj","followers_url":"https://api.github.com/users/leleuj/followers","following_url":"https://api.github.com/users/leleuj/following{/other_user}","gists_url":"https://api.github.com/users/leleuj/gists{/gist_id}","starred_url":"https://api.github.com/users/leleuj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leleuj/subscriptions","organizations_url":"https://api.github.com/users/leleuj/orgs","repos_url":"https://api.github.com/users/leleuj/repos","events_url":"https://api.github.com/users/leleuj/events{/privacy}","received_events_url":"https://api.github.com/users/leleuj/received_events","type":"User","site_admin":false},"created_at":"2015-12-21T19:36:59Z","updated_at":"2015-12-21T19:36:59Z","body":"You're right, it's been too long since I should have implemented this. I haven't been able to find the right way to proceed. The implementation based on MitreId Connect didn't feel good either: too much overhead. I lean towards custom code even if it feels bad. I also thought I could maybe use the Nimbus OAuth OpenID Connect SDK.\r\n\r\nI'm a bit stuck on this: maybe I should be less ambitious and at least improve our current OAuth implementation instead of a giant step embracing a full OAuth / OpenId Connect support. And to avoid the use of custom code, rely on pac4j as much as possible.\r\n\r\nI'm committed to work on that in January (I'll slowdown on pac4j).\r\n\r\nWhat do you think of this simple plan?\r\n1) use JWT for access tokens\r\n2) update the current flow by protecting it with the pac4j CasClient\r\n3) add the implicit grant type\r\n4) add the resource owner password credentials grant type\r\n"}}