{"action":"created","issue":{"url":"https://api.github.com/repos/pac4j/pac4j/issues/198","labels_url":"https://api.github.com/repos/pac4j/pac4j/issues/198/labels{/name}","comments_url":"https://api.github.com/repos/pac4j/pac4j/issues/198/comments","events_url":"https://api.github.com/repos/pac4j/pac4j/issues/198/events","html_url":"https://github.com/pac4j/pac4j/issues/198","id":95384198,"number":198,"title":"Replace contextual callback by a UrlStrategy","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},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/pac4j/pac4j/milestones/5","html_url":"https://github.com/pac4j/pac4j/milestones/1.8.1","labels_url":"https://api.github.com/repos/pac4j/pac4j/milestones/5/labels","id":1313196,"number":5,"title":"1.8.1","description":null,"creator":{"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},"open_issues":3,"closed_issues":22,"state":"open","created_at":"2015-09-18T11:46:59Z","updated_at":"2015-11-22T14:19:40Z","due_on":null,"closed_at":null},"comments":13,"created_at":"2015-07-16T08:55:56Z","updated_at":"2015-11-24T08:42:41Z","closed_at":"2015-11-12T12:29:09Z","body":"\"\r\nThe code around the \"contextual redirect\" is not perfect, but I like the idea. So first, I would replace this \"contextual redirect\" logic by a `UrlStrategy` interface with a single method: `computeUrl(String callbackUrl, WebContext context)`. The first default implementation would be the `DefaultAbsoluteUrlStrategy` which checks it's an absolute url and returns it without any change.\r\nYou would need to create the `ServerRelativeUrlStrategy` where the `computeUrl` method code would come from `public String getContextualCallbackUrl(final WebContext context)`.\r\nFinally, you could create your own `MyUrlStrategy`.\r\n\""},"comment":{"url":"https://api.github.com/repos/pac4j/pac4j/issues/comments/159196615","html_url":"https://github.com/pac4j/pac4j/issues/198#issuecomment-159196615","issue_url":"https://api.github.com/repos/pac4j/pac4j/issues/198","id":159196615,"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-11-24T08:42:41Z","updated_at":"2015-11-24T08:42:41Z","body":"Indeed, the initialization happens once and for all. You need another solution to be able to pick up the right clients for your users. I need more details to help you figure out a solution on this. Thanks"}}