@Test public void testRequestTokenFromClientState() throws Exception { OAuthArguments arguments = new OAuthArguments(); arguments.setServiceName("testservice"); arguments.setUseToken(UseToken.ALWAYS); store.storeTokenKeyAndSecret(privateToken, null, arguments, new TokenInfo("access", "secret", null, 0), responseParams); clientState.setRequestToken("request"); clientState.setRequestTokenSecret("requestsecret"); AccessorInfo info = store.getOAuthAccessor(privateToken, arguments, clientState, responseParams, fetcherConfig); assertEquals("request", info.getAccessor().requestToken); assertEquals("requestsecret", info.getAccessor().tokenSecret); assertNull(info.getAccessor().accessToken); }
@Test public void testRemoveToken() throws Exception { OAuthArguments arguments = new OAuthArguments(); arguments.setServiceName("testservice"); arguments.setUseToken(UseToken.ALWAYS); store.storeTokenKeyAndSecret(privateToken, null, arguments, new TokenInfo("access", "secret", null, 0), responseParams); AccessorInfo info = store.getOAuthAccessor(privateToken, arguments, clientState, responseParams, fetcherConfig); assertNull(info.getAccessor().requestToken); assertEquals("access", info.getAccessor().accessToken); assertEquals("secret", info.getAccessor().tokenSecret); store.removeToken(privateToken, null, arguments, responseParams); info = store.getOAuthAccessor(privateToken, arguments, clientState, responseParams, fetcherConfig); assertNull(info.getAccessor().requestToken); assertNull(info.getAccessor().accessToken); assertNull(info.getAccessor().tokenSecret); } }
AccessorInfoBuilder accessorBuilder, OAuthResponseParams responseParams) throws OAuthRequestException { GadgetSpec spec = findSpec(securityToken, arguments, responseParams); OAuthSpec oauthSpec = spec.getModulePrefs().getOAuthSpec(); if (oauthSpec == null) { getStoreLocation(service.getRequestUrl().location, responseParams)); accessorBuilder.setMethod(getStoreMethod(service.getRequestUrl().method, responseParams)); return new OAuthServiceProvider( service.getRequestUrl().url.toJavaUri().toASCIIString(),
private OAuthServiceProvider loadProgrammaticConfig(OAuthArguments arguments, AccessorInfoBuilder accessorBuilder, OAuthResponseParams responseParams) throws OAuthRequestException { try { String paramLocationStr = arguments.getRequestOption(OAuthArguments.PARAM_LOCATION_PARAM, ""); Location l = Location.parse(paramLocationStr); accessorBuilder.setParameterLocation(getStoreLocation(l, responseParams)); String requestMethod = arguments.getRequestOption(OAuthArguments.REQUEST_METHOD_PARAM, "GET"); Method m = Method.parse(requestMethod); accessorBuilder.setMethod(getStoreMethod(m, responseParams)); String requestTokenUrl = arguments.getRequestOption(OAuthArguments.REQUEST_TOKEN_URL_PARAM); verifyUrl(requestTokenUrl, responseParams); String accessTokenUrl = arguments.getRequestOption(OAuthArguments.ACCESS_TOKEN_URL_PARAM); verifyUrl(accessTokenUrl, responseParams); String authorizationUrl = arguments.getRequestOption(OAuthArguments.AUTHORIZATION_URL_PARAM); verifyUrl(authorizationUrl, responseParams); return new OAuthServiceProvider(requestTokenUrl, authorizationUrl, accessTokenUrl); } catch (SpecParserException e) { // these exceptions have decent programmer readable messages throw new OAuthRequestException(OAuthError.BAD_OAUTH_CONFIGURATION, e.getMessage()); } }
provider = loadProgrammaticConfig(arguments, accessorBuilder, responseParams); } else if (arguments.mayUseToken()) { provider = lookupSpecInfo(securityToken, arguments, accessorBuilder, responseParams); } else { if ((fetcherConfig != null && fetcherConfig.isViewerAccessTokensEnabled()) || securityToken.getViewerId().equals(securityToken.getOwnerId())) { lookupToken(securityToken, consumer, arguments, clientState, accessorBuilder, responseParams);
@Test public void testGetOAuthAccessor_useToken_noOAuthInSpec() throws Exception { OAuthArguments arguments = new OAuthArguments(); arguments.setUseToken(UseToken.IF_AVAILABLE); try { store.getOAuthAccessor(socialToken, arguments, clientState, responseParams, fetcherConfig); fail(); } catch (OAuthRequestException e) { assertEquals("BAD_OAUTH_CONFIGURATION", e.getError()); } }
/** * Save off our new token and secret to the persistent store. */ private void saveAccessToken() throws OAuthRequestException { OAuthAccessor accessor = accessorInfo.getAccessor(); TokenInfo tokenInfo = new TokenInfo(accessor.accessToken, accessor.tokenSecret, accessorInfo.getSessionHandle(), accessorInfo.getTokenExpireMillis()); fetcherConfig.getTokenStore().storeTokenKeyAndSecret(realRequest.getSecurityToken(), accessorInfo.getConsumer(), realRequest.getOAuthArguments(), tokenInfo, responseParams); }
private boolean handleProtocolException(OAuthProtocolException pe, int attempts) throws OAuthRequestException { if (pe.canExtend()) { accessorInfo.setTokenExpireMillis(ACCESS_TOKEN_FORCE_EXPIRE); } else if (pe.startFromScratch()) { fetcherConfig.getTokenStore().removeToken(realRequest.getSecurityToken(), accessorInfo.getConsumer(), realRequest.getOAuthArguments(), responseParams); accessorInfo.getAccessor().accessToken = null; accessorInfo.getAccessor().requestToken = null; accessorInfo.getAccessor().tokenSecret = null; accessorInfo.setSessionHandle(null); accessorInfo.setTokenExpireMillis(ACCESS_TOKEN_EXPIRE_UNKNOWN); } return (attempts < MAX_ATTEMPTS && pe.canRetry()); }
private GadgetOAuthTokenStore getOAuthStore(BasicOAuthStore base, GadgetSpecFactory specFactory) { if (base == null) { base = new BasicOAuthStore(); base.setDefaultCallbackUrl(GadgetTokenStoreTest.DEFAULT_CALLBACK); } addValidConsumer(base); addInvalidConsumer(base); addAuthHeaderConsumer(base); addBodyConsumer(base); addBadOAuthUrlConsumer(base); addApprovalParamsConsumer(base); addDefaultKey(base); return new GadgetOAuthTokenStore(base, specFactory); }
@Test public void testGetOAuthAccessor_useToken_noOAuthInSpec() throws Exception { OAuthArguments arguments = new OAuthArguments(); arguments.setUseToken(UseToken.IF_AVAILABLE); try { store.getOAuthAccessor(socialToken, arguments, clientState, responseParams, fetcherConfig); fail(); } catch (OAuthRequestException e) { assertEquals("BAD_OAUTH_CONFIGURATION", e.getError()); } }
private OAuthServiceProvider loadProgrammaticConfig(OAuthArguments arguments, AccessorInfoBuilder accessorBuilder, OAuthResponseParams responseParams) throws OAuthRequestException { try { String paramLocationStr = arguments.getRequestOption(OAuthArguments.PARAM_LOCATION_PARAM, ""); Location l = Location.parse(paramLocationStr); accessorBuilder.setParameterLocation(getStoreLocation(l, responseParams)); String requestMethod = arguments.getRequestOption(OAuthArguments.REQUEST_METHOD_PARAM, "GET"); Method m = Method.parse(requestMethod); accessorBuilder.setMethod(getStoreMethod(m, responseParams)); String requestTokenUrl = arguments.getRequestOption(OAuthArguments.REQUEST_TOKEN_URL_PARAM); verifyUrl(requestTokenUrl, responseParams); String accessTokenUrl = arguments.getRequestOption(OAuthArguments.ACCESS_TOKEN_URL_PARAM); verifyUrl(accessTokenUrl, responseParams); String authorizationUrl = arguments.getRequestOption(OAuthArguments.AUTHORIZATION_URL_PARAM); verifyUrl(authorizationUrl, responseParams); return new OAuthServiceProvider(requestTokenUrl, authorizationUrl, accessTokenUrl); } catch (SpecParserException e) { // these exceptions have decent programmer readable messages throw new OAuthRequestException(OAuthError.BAD_OAUTH_CONFIGURATION, e.getMessage()); } }
provider = loadProgrammaticConfig(arguments, accessorBuilder, responseParams); } else if (arguments.mayUseToken()) { provider = lookupSpecInfo(securityToken, arguments, accessorBuilder, responseParams); } else { if ((fetcherConfig != null && fetcherConfig.isViewerAccessTokensEnabled()) || securityToken.getViewerId().equals(securityToken.getOwnerId())) { lookupToken(securityToken, consumer, arguments, clientState, accessorBuilder, responseParams);
/** * Save off our new token and secret to the persistent store. */ private void saveAccessToken() throws OAuthRequestException { OAuthAccessor accessor = accessorInfo.getAccessor(); TokenInfo tokenInfo = new TokenInfo(accessor.accessToken, accessor.tokenSecret, accessorInfo.getSessionHandle(), accessorInfo.getTokenExpireMillis()); fetcherConfig.getTokenStore().storeTokenKeyAndSecret(realRequest.getSecurityToken(), accessorInfo.getConsumer(), realRequest.getOAuthArguments(), tokenInfo, responseParams); }
private boolean handleProtocolException(OAuthProtocolException pe, int attempts) throws OAuthRequestException { if (pe.canExtend()) { accessorInfo.setTokenExpireMillis(ACCESS_TOKEN_FORCE_EXPIRE); } else if (pe.startFromScratch()) { fetcherConfig.getTokenStore().removeToken(realRequest.getSecurityToken(), accessorInfo.getConsumer(), realRequest.getOAuthArguments(), responseParams); accessorInfo.getAccessor().accessToken = null; accessorInfo.getAccessor().requestToken = null; accessorInfo.getAccessor().tokenSecret = null; accessorInfo.setSessionHandle(null); accessorInfo.setTokenExpireMillis(ACCESS_TOKEN_EXPIRE_UNKNOWN); } return (attempts < MAX_ATTEMPTS && pe.canRetry()); }
private GadgetOAuthTokenStore getOAuthStore(BasicOAuthStore base, GadgetSpecFactory specFactory) { if (base == null) { base = new BasicOAuthStore(); base.setDefaultCallbackUrl(GadgetTokenStoreTest.DEFAULT_CALLBACK); } addValidConsumer(base); addInvalidConsumer(base); addAuthHeaderConsumer(base); addBodyConsumer(base); addBadOAuthUrlConsumer(base); addApprovalParamsConsumer(base); addDefaultKey(base); return new GadgetOAuthTokenStore(base, specFactory); }
@Test public void testRequestTokenFromClient_preferTokenInStorage() throws Exception { OAuthArguments arguments = new OAuthArguments(); arguments.setServiceName("testservice"); arguments.setUseToken(UseToken.ALWAYS); arguments.setRequestToken("preapproved"); arguments.setRequestTokenSecret("preapprovedsecret"); store.storeTokenKeyAndSecret(privateToken, null, arguments, new TokenInfo("access", "secret", null, 0), responseParams); AccessorInfo info = store.getOAuthAccessor(privateToken, arguments, clientState, responseParams, fetcherConfig); assertNull(info.getAccessor().requestToken); assertEquals("access", info.getAccessor().accessToken); assertEquals("secret", info.getAccessor().tokenSecret); }
@Test public void testGetOAuthAccessor_useToken_noOAuthInSpec() throws Exception { OAuthArguments arguments = new OAuthArguments(); arguments.setUseToken(UseToken.IF_AVAILABLE); try { store.getOAuthAccessor(socialToken, arguments, clientState, responseParams, fetcherConfig); fail(); } catch (OAuthRequestException e) { assertEquals("BAD_OAUTH_CONFIGURATION", e.getError()); } }
@Test public void testRemoveToken() throws Exception { OAuthArguments arguments = new OAuthArguments(); arguments.setServiceName("testservice"); arguments.setUseToken(UseToken.ALWAYS); store.storeTokenKeyAndSecret(privateToken, null, arguments, new TokenInfo("access", "secret", null, 0), responseParams); AccessorInfo info = store.getOAuthAccessor(privateToken, arguments, clientState, responseParams, fetcherConfig); assertNull(info.getAccessor().requestToken); assertEquals("access", info.getAccessor().accessToken); assertEquals("secret", info.getAccessor().tokenSecret); store.removeToken(privateToken, null, arguments, responseParams); info = store.getOAuthAccessor(privateToken, arguments, clientState, responseParams, fetcherConfig); assertNull(info.getAccessor().requestToken); assertNull(info.getAccessor().accessToken); assertNull(info.getAccessor().tokenSecret); } }
private OAuthServiceProvider loadProgrammaticConfig(OAuthArguments arguments, AccessorInfoBuilder accessorBuilder, OAuthResponseParams responseParams) throws OAuthRequestException { try { String paramLocationStr = arguments.getRequestOption(OAuthArguments.PARAM_LOCATION_PARAM, ""); Location l = Location.parse(paramLocationStr); accessorBuilder.setParameterLocation(getStoreLocation(l, responseParams)); String requestMethod = arguments.getRequestOption(OAuthArguments.REQUEST_METHOD_PARAM, "GET"); Method m = Method.parse(requestMethod); accessorBuilder.setMethod(getStoreMethod(m, responseParams)); String requestTokenUrl = arguments.getRequestOption(OAuthArguments.REQUEST_TOKEN_URL_PARAM); verifyUrl(requestTokenUrl, responseParams); String accessTokenUrl = arguments.getRequestOption(OAuthArguments.ACCESS_TOKEN_URL_PARAM); verifyUrl(accessTokenUrl, responseParams); String authorizationUrl = arguments.getRequestOption(OAuthArguments.AUTHORIZATION_URL_PARAM); verifyUrl(authorizationUrl, responseParams); return new OAuthServiceProvider(requestTokenUrl, authorizationUrl, accessTokenUrl); } catch (SpecParserException e) { // these exceptions have decent programmer readable messages throw new OAuthRequestException(OAuthError.BAD_OAUTH_CONFIGURATION, e.getMessage()); } }
AccessorInfoBuilder accessorBuilder, OAuthResponseParams responseParams) throws OAuthRequestException { GadgetSpec spec = findSpec(securityToken, arguments, responseParams); OAuthSpec oauthSpec = spec.getModulePrefs().getOAuthSpec(); if (oauthSpec == null) { getStoreLocation(service.getRequestUrl().location, responseParams)); accessorBuilder.setMethod(getStoreMethod(service.getRequestUrl().method, responseParams)); return new OAuthServiceProvider( service.getRequestUrl().url.toJavaUri().toASCIIString(),