Hi Martin, > but I think the authorization part is left to the application. Absolutely. Actually the OAuth service is specific to the company I'm working for, it's just a authentication system (based on our central directory) and there is no data the user can choose to share or not. Roles are then application specific
> -- store the details about the requested resource (url + post data) Was thinking about reusing org.apache.wicket.RestartResponseAtInterceptPageException.InterceptData (which unfortunately has package visibility) > -- redirect to the authentication url of the OAuth provider by passing the callback url As the authorization is part of the application, we need a slot, in the cycle, to set AuthenticatedWebSession#signin(true) and set application's role. That's why I though about an IRequestHandler's url as callback (or an IRequestListener url?) before redirecting to the original destination... > the oauth provider may not call the callback url and your user may not return to your app Good point! Will take care of that... Thanks everybody for your responses. I will try manage this properly... Best regards, Sebastien. On Tue, Sep 2, 2014 at 12:11 PM, Martin Grigorov <mgrigo...@apache.org> wrote: > Hi Sebastien, > > The button is just a UI. But the idea is the same. > > The difference is that the OAuth provider is rather an authentication > service than an authorization one. > Usually the user of some social network doesn't want to share his details > with random apps (like yours and mine). > So when you create an application at Twitter, Facebook, ... you have to > specify what kind of details you want to be sent to the callback url. When > an user authenticates (s)he is asked whether (s)he is willing to share > these details (e.g. username, email, gender, ...). In my experience users > use OAuth for authentication: > 1) to reduce the number of accounts they have > 2) to reduce the information they provide to random apps > > So (usually) the OAuth provider doesn't send much info about the > authenticated user when calling your callback. I haven't seen anything like > roles and privileges in the OAuth responses. It could be that I don't have > enough experience with OAuth but I think the authorization part is left to > the application. > > About your use case: > - the user tries to load some protected resource/page > - the application should: > -- store the details about the requested resource (url + post data) > -- redirect to the authentication url of the OAuth provider by passing the > callback url > - if the user agrees to share the required data then your callback url is > called with the data. You should use it like normal authentication token, > create a User in the session, etc. > > P.S. I have used a popup window for the authentication because if the user > is not willing to share all the required info then the oauth provider may > not call the callback url and your user may not return to your app and make > a normal account > > > Martin Grigorov > Wicket Training and Consulting > https://twitter.com/mtgrigorov > > > On Tue, Sep 2, 2014 at 12:46 PM, Sebastien <seb...@gmail.com> wrote: > > > Hi Martin, > > > > The question is not much about having a signin button to authenticate the > > user but more how to make it work with AuthenticatedWebApplication (or a > > custom OAuthWebApplication for instance). The final goal is to keep > > IRoleCheckingStrategy working > > ie: the user access an @AuthorizeInstantiation annotated page, > > #restartResponseAtSignInPage (for instance) redirect to the OAuth url, > the > > OAuth service redirect to a callback, which callback is a wicket > > IRequestHandler, the handler sets isSigninedIn to true, sets the roles > and > > then call #redirectToOriginalDestination. > > > > That's how I see things, but I don't see any existing wicket solutions... > > Is the usecase more clear? > > > > Thanks again, > > Sebastien. > > > > > > > > On Tue, Sep 2, 2014 at 9:06 AM, Martin Grigorov <mgrigo...@apache.org> > > wrote: > > > > > Hi Sebastien, > > > > > > What exactly do you need ? > > > > > > I have used https://github.com/fernandezpablo85/scribe-java to create > > > "Authenticate with Xyz" buttons for signing in (e.g. with Facebook, > > Twitter > > > and LinkedIn). > > > > > > The developer of Scribe doesn't like OAuth2 (as many other developers) > > and > > > at some point he stated that he will not merge any new PRs for OAuth2 > > > impls. I don't see this statement in the README now, so he may have > > changed > > > his mind. > > > > > > Another auth client provider is https://github.com/leleuj/pac4j. I > don't > > > have experience with it but it looks like well maintained. > > > > > > Martin Grigorov > > > Wicket Training and Consulting > > > https://twitter.com/mtgrigorov > > > > > > > > > On Mon, Sep 1, 2014 at 6:58 PM, Sebastien <seb...@gmail.com> wrote: > > > > > > > Hi all, > > > > > > > > AFAIS, there is nothing about a OAuth2 client in Wicket > out-of-the-box > > or > > > > through a satellite project... > > > > > > > > Does somebody knows a *simple* solution for integrating OAuth2 into > > > Wicket > > > > (like a OAuthWebApplication, or maybe a ready-to-use Filter, just > > giving > > > > Consumer Key, Consumer Secret & URLs), without using spring-security > > and > > > > still keeping advantage of the role-based @AuthorizeInstantiation > > > > annotation for instance? > > > > > > > > Thanks a lot in advance, > > > > Sebastien. > > > > > > > > > >