/** * */ package org.apache.wicket.security.app; import org.apache.wicket.Application; import org.apache.wicket.PageParameters; import org.apache.wicket.Session; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.security.WaspSession; import org.apache.wicket.security.app.WicketApplication.MySession; import org.apache.wicket.security.app.authentication.ApplicationLoginContext; import org.apache.wicket.security.yahoo.YahooBBAuth; import org.apache.wicket.security.yahoo.YahooResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Page that will process the response from Yahoo. * * @author marrink */ public class YahooResponsePage extends WebPage { private static final Logger log = LoggerFactory.getLogger(YahooResponsePage.class); /** * @param parameters */ public YahooResponsePage(PageParameters parameters) { super(parameters); try { WicketApplication app = (WicketApplication) Application.get(); // set your application id and secret String appId = app.getApplicationId(); String secret = app.getSharedSecret(); // change to your BBAuth handler String uri = "/wicketsecurity/yahoo-bbauth/yahoo-response"; /** * The response querystring will include: appid=[application id]& token=[auth * token]& appdata=[optional data]& ts=[request time (Unix timestamp)]& * sig=[MD5(request URI including querystring with secret appended) */ // Hard coded parameters // String token = ""; // String requestsig = ""; // String ts = ""; // String appdata = ""; // Get request parameters String appdata = parameters.getString("appdata"); String ts = parameters.getString("ts"); String requestsig = parameters.getString("sig"); String token = parameters.getString("token"); YahooResponse authenticateUser = YahooBBAuth.authenticateUser(appId, secret, uri, appdata, ts, requestsig, token); // TODO identify user and log in ((WaspSession) Session.get()).login(new ApplicationLoginContext("foo", "bar")); ((MySession) Session.get()).setUsername("foo"); if (!continueToOriginalDestination()) setResponsePage(((WicketApplication) Application.get()).getHomePage()); } catch (Exception e) { log.error(e.getMessage(), e); error(e.getMessage()); } add(new FeedbackPanel("feedback")); } }