use of org.springframework.security.oauth.common.signature.SharedConsumerSecretImpl in project spring-security-oauth by spring-projects.
the class GoogleOAuthTests method testGetRequestToken.
/**
* tests getting a request token.
*/
@Test
public void testGetRequestToken() throws Exception {
CoreOAuthConsumerSupport support = new CoreOAuthConsumerSupport();
support.setStreamHandlerFactory(new DefaultOAuthURLStreamHandlerFactory());
InMemoryProtectedResourceDetailsService service = new InMemoryProtectedResourceDetailsService();
HashMap<String, ProtectedResourceDetails> detailsStore = new HashMap<String, ProtectedResourceDetails>();
BaseProtectedResourceDetails googleDetails = new BaseProtectedResourceDetails();
googleDetails.setRequestTokenURL("https://www.google.com/accounts/OAuthGetRequestToken");
googleDetails.setAccessTokenURL("https://www.google.com/accounts/OAuthAuthorizeToken");
googleDetails.setConsumerKey("anonymous");
googleDetails.setSharedSecret(new SharedConsumerSecretImpl("anonymous"));
googleDetails.setId("google");
googleDetails.setUse10a(true);
googleDetails.setSignatureMethod(HMAC_SHA1SignatureMethod.SIGNATURE_NAME);
googleDetails.setRequestTokenHttpMethod("GET");
HashMap<String, String> additional = new HashMap<String, String>();
additional.put("scope", "http://picasaweb.google.com/data");
googleDetails.setAdditionalParameters(additional);
detailsStore.put(googleDetails.getId(), googleDetails);
service.setResourceDetailsStore(detailsStore);
support.setProtectedResourceDetailsService(service);
// uncomment to see a request to google.
// see http://code.google.com/apis/accounts/docs/OAuth_ref.html
// and http://jira.codehaus.org/browse/OAUTHSS-37
// OAuthConsumerToken token = support.getUnauthorizedRequestToken("google", "urn:mycallback");
// System.out.println(token.getValue());
// System.out.println(token.getSecret());
}
use of org.springframework.security.oauth.common.signature.SharedConsumerSecretImpl in project spring-security-oauth by spring-projects.
the class CoreOAuthConsumerSupportTests method testLoadOAuthParameters.
/**
* loadOAuthParameters
*/
@Test
public void testLoadOAuthParameters() throws Exception {
URL url = new URL("https://myhost.com/somepath?with=some&query=params&too");
CoreOAuthConsumerSupport support = new CoreOAuthConsumerSupport() {
@Override
protected String getSignatureBaseString(Map<String, Set<CharSequence>> oauthParams, URL requestURL, String httpMethod) {
return "MYSIGBASESTRING";
}
};
OAuthSignatureMethodFactory sigFactory = mock(OAuthSignatureMethodFactory.class);
support.setSignatureFactory(sigFactory);
OAuthConsumerToken token = new OAuthConsumerToken();
OAuthSignatureMethod sigMethod = mock(OAuthSignatureMethod.class);
when(details.getConsumerKey()).thenReturn("my-consumer-key");
when(details.getSignatureMethod()).thenReturn(HMAC_SHA1SignatureMethod.SIGNATURE_NAME);
when(details.getSignatureMethod()).thenReturn(HMAC_SHA1SignatureMethod.SIGNATURE_NAME);
SharedConsumerSecret secret = new SharedConsumerSecretImpl("shh!!!");
when(details.getSharedSecret()).thenReturn(secret);
when(sigFactory.getSignatureMethod(HMAC_SHA1SignatureMethod.SIGNATURE_NAME, secret, null)).thenReturn(sigMethod);
when(sigMethod.sign("MYSIGBASESTRING")).thenReturn("MYSIGNATURE");
Map<String, Set<CharSequence>> params = support.loadOAuthParameters(details, url, token, "POST", null);
assertEquals("some", params.remove("with").iterator().next().toString());
assertEquals("params", params.remove("query").iterator().next().toString());
assertTrue(params.containsKey("too"));
assertTrue(params.remove("too").isEmpty());
assertNull(params.remove(OAuthConsumerParameter.oauth_token.toString()));
assertNotNull(params.remove(OAuthConsumerParameter.oauth_nonce.toString()).iterator().next());
assertEquals("my-consumer-key", params.remove(OAuthConsumerParameter.oauth_consumer_key.toString()).iterator().next());
assertEquals("MYSIGNATURE", params.remove(OAuthConsumerParameter.oauth_signature.toString()).iterator().next());
assertEquals("1.0", params.remove(OAuthConsumerParameter.oauth_version.toString()).iterator().next());
assertEquals(HMAC_SHA1SignatureMethod.SIGNATURE_NAME, params.remove(OAuthConsumerParameter.oauth_signature_method.toString()).iterator().next());
assertTrue(Long.parseLong(params.remove(OAuthConsumerParameter.oauth_timestamp.toString()).iterator().next().toString()) <= (System.currentTimeMillis() / 1000));
assertTrue(params.isEmpty());
}
use of org.springframework.security.oauth.common.signature.SharedConsumerSecretImpl in project spring-security-oauth by spring-projects.
the class ConsumerDetailsFactoryBean method getObject.
public ConsumerDetails getObject() throws Exception {
if ("rsa-cert".equals(typeOfSecret)) {
try {
Certificate cert = CertificateFactory.getInstance("X.509").generateCertificate(resourceLoader.getResource(secret).getInputStream());
consumer.setSignatureSecret(new RSAKeySecret(cert.getPublicKey()));
} catch (IOException e) {
throw new BeanCreationException("RSA certificate not found at " + secret + ".", e);
} catch (CertificateException e) {
throw new BeanCreationException("Invalid RSA certificate at " + secret + ".", e);
} catch (NullPointerException e) {
throw new BeanCreationException("Could not load RSA certificate at " + secret + ".", e);
}
} else {
consumer.setSignatureSecret(new SharedConsumerSecretImpl(secret));
}
return consumer;
}
Aggregations