summaryrefslogtreecommitdiff
path: root/src/com/p4square/restlet/oauth/OAuthAuthenticator.java
diff options
context:
space:
mode:
authorJesse Morgan <jesse@jesterpm.net>2016-04-09 14:22:20 -0700
committerJesse Morgan <jesse@jesterpm.net>2016-04-09 15:48:01 -0700
commit3102d8bce3426d9cf41aeaf201c360d342677770 (patch)
tree38c4f1e8828f9af9c4b77a173bee0d312b321698 /src/com/p4square/restlet/oauth/OAuthAuthenticator.java
parentbbf907e51dfcf157bdee24dead1d531122aa25db (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.java95
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;
- }
- }
-}