diff options
author | Jesse Morgan <jesse@jesterpm.net> | 2016-04-09 14:22:20 -0700 |
---|---|---|
committer | Jesse Morgan <jesse@jesterpm.net> | 2016-04-09 15:48:01 -0700 |
commit | 3102d8bce3426d9cf41aeaf201c360d342677770 (patch) | |
tree | 38c4f1e8828f9af9c4b77a173bee0d312b321698 /src/com/p4square/restlet/oauth/OAuthAuthenticator.java | |
parent | bbf907e51dfcf157bdee24dead1d531122aa25db (diff) |
Switching from Ivy+Ant to Maven.
Diffstat (limited to 'src/com/p4square/restlet/oauth/OAuthAuthenticator.java')
-rw-r--r-- | src/com/p4square/restlet/oauth/OAuthAuthenticator.java | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/src/com/p4square/restlet/oauth/OAuthAuthenticator.java b/src/com/p4square/restlet/oauth/OAuthAuthenticator.java deleted file mode 100644 index c33bb5a..0000000 --- a/src/com/p4square/restlet/oauth/OAuthAuthenticator.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2013 Jesse Morgan - */ - -package com.p4square.restlet.oauth; - -import org.apache.log4j.Logger; - -import org.restlet.Context; -import org.restlet.Request; -import org.restlet.Response; -import org.restlet.security.Authenticator; -import org.restlet.security.User; - -/** - * Authenticator which makes an OAuth request to authenticate the user. - * - * If this Authenticator is made optional than no requests are made to the - * service provider. - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public class OAuthAuthenticator extends Authenticator { - private static Logger LOG = Logger.getLogger(OAuthAuthenticator.class); - - private static final String OAUTH_TOKEN = "oauth_token"; - private static final String COOKIE_NAME = "oauth_secret"; - - private final OAuthHelper mHelper; - - /** - * Create a new Authenticator. - * - * @param Context the current context. - * @param optional If true, unauthenticated users are allowed to continue. - * @param helper The OAuthHelper which will help with the requests. - */ - public OAuthAuthenticator(Context context, boolean optional, OAuthHelper helper) { - super(context, false, optional, null); - - mHelper = helper; - } - - protected boolean authenticate(Request request, Response response) { - /* - * The authentication workflow has three steps: - * 1. Get RequestToken - * 2. Authenticate the user - * 3. Get AccessToken - * - * The authentication workflow is broken into two stages. In the first, - * we generate the RequestToken (step 1) and redirect the user to the - * authentication page. When the user comes back, we will request the - * AccessToken (step 2). - * - * We determine which half we are in by the presence of the oauth_token - * parameter in the query string. - */ - - final String token = request.getResourceRef().getQueryAsForm().getFirstValue(OAUTH_TOKEN); - final String secret = request.getCookies().getFirstValue(COOKIE_NAME); - - try { - if (token == null) { - if (isOptional()) { - return false; - } - - // 1. Get RequestToken - Token requestToken = mHelper.getRequestToken(); - - if (requestToken == null) { - return false; - } - - // 2. Redirect user - // TODO Encrypt cookie - response.getCookieSettings().add(COOKIE_NAME, requestToken.getSecret()); - response.redirectSeeOther(mHelper.getLoginUrl(requestToken, request.getResourceRef().toString())); - return false; - - } else { - // 3. Get AccessToken - Token requestToken = new Token(token, secret); - User user = mHelper.getAccessToken(requestToken); - request.getClientInfo().setUser(user); - return true; - } - - } catch (OAuthException e) { - LOG.debug("Authentication failed: " + e); - return false; - } - } -} |