Thanks Peter. I hadnt thought about that.  I will do it that way.

Josh.

On Mon, May 2, 2011 at 7:10 PM, Peter Karich <peat...@yahoo.de> wrote:

>  Why not doing this directly the wicket-way with PageParameters and your
> own Session?
>
> FBPage(PageParameters params) {
>   // do something with: params.getString("xy");
>
>   // construct a new MySession object within the WicketApp.init method:
>   // @Override Session newSession(Request request, Response response) {
>   //       return new MySession(request); }
>
>   // No need for complicated stuff just call 'getSession()' and get or
> set the token:
>   MySession session = (MySession)getSession();
>   // session.getToken();
> }
>
> I've done similar things in jetwick for twitter authentication.
>
> Regards,
> Peter.
>
>
>
> --
> http://jetwick.com open twitter search
>
>
> > I am doing a facebook application in wicket. To get facebook
> authentication
> > token, I have written a wicket filter as below:
> >
> >
> >
> > package com.mycompany.myapp.config;
> >
> > import java.io.ByteArrayOutputStream;
> > import java.io.IOException;
> > import java.io.InputStream;
> > import java.net.URL;
> >
> > import javax.servlet.Filter;
> > import javax.servlet.FilterChain;
> > import javax.servlet.FilterConfig;
> > import javax.servlet.ServletException;
> > import javax.servlet.ServletRequest;
> > import javax.servlet.ServletResponse;
> > import javax.servlet.http.HttpServletRequest;
> > import javax.servlet.http.HttpServletResponse;
> > import javax.servlet.http.HttpSession;
> >
> > import com.visural.common.StringUtil;
> >
> > public class FBOAuth implements Filter {
> >     public void init(FilterConfig fc) throws ServletException {
> >     }
> >
> >     public void doFilter(ServletRequest sr, ServletResponse sr1,
> FilterChain
> > fc)
> >             throws IOException, ServletException {
> >         HttpServletRequest req = (HttpServletRequest) sr;
> >         HttpServletResponse res = (HttpServletResponse) sr1;
> >         res.sendRedirect(FaceBook.getLoginRedirectURL());
> >         String code = sr.getParameter("code");
> >         if (StringUtil.isNotBlankStr(code)) {
> >             String authURL = FaceBook.getAuthURL(code);
> >             URL url = new URL(authURL);
> >             try {
> >                 String result = readURL(url);
> >                 String accessToken = null;
> >                 Integer expires = null;
> >                 String[] pairs = result.split("&");
> >                 for (String pair : pairs) {
> >                     String[] kv = pair.split("=");
> >                     if (kv.length != 2) {
> >                         throw new RuntimeException("Unexpected auth
> > response");
> >                     } else {
> >                         if (kv[0].equals("access_token")) {
> >                             accessToken = kv[1];
> >                         }
> >                         if (kv[0].equals("expires")) {
> >                             expires = Integer.valueOf(kv[1]);
> >                         }
> >                     }
> >                 }
> >                 if (accessToken != null && expires != null)
> > {
> >                     HttpSession ses = req.getSession();
> >                     ses.setAttribute("authToken", accessToken);
> >
> >
> >                 } else {
> >                     throw new RuntimeException(
> >                             "Access token and expires not found");
> >                 }
> >             } catch (IOException e) {
> >                 throw new RuntimeException(e);
> >             }
> >
> >         }
> >     }
> >     private String readURL(URL url) throws IOException {
> >         ByteArrayOutputStream baos = new ByteArrayOutputStream();
> >         InputStream is = url.openStream();
> >         int r;
> >         while ((r = is.read()) != -1) {
> >             baos.write(r);
> >         }
> >         return new String(baos.toByteArray());
> >     }
> >
> >     public void destroy() {
> >     }
> > }
> >
> >
> >
> >
> >
> > In the doFilter method, I have done all the redirects required and gotten
> > the authentication token(accesstoken). At this point, I store the value
> as
> > an attribute to the httpSession which i have gotten by
> > ServleteRequest.getSession();
> >
> > I want to acess this token in a wicket page class so that I use RestFB to
> > create a FaceBook Client etc. This is what I have done in the wicket page
> > class:
> >
> > HttpSession session = null;
> >
> >     if (RequestCycle.get()!= null)
> >         session = ((WebRequest) RequestCycle.get().getRequest())
> >                 .getHttpServletRequest().getSession();
> >
> >     if (session != null) {
> >
> >         System.out.print("################# AuthToken: "
> >                 + session.getAttribute("authToken"));
> >
> >     }
> >
> >
> > However, this is the output I get and I am totally stuck:
> >
> > ################# AuthToken: null
> >
> >
> > Where am i going wrong?
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

Reply via email to