diff --git a/.classpath b/.classpath index 94bdfe3..dcd861c 100644 --- a/.classpath +++ b/.classpath @@ -1,6 +1,10 @@ - + + + + + diff --git a/.settings/org.eclipse.ltk.core.refactoring.prefs b/.settings/org.eclipse.ltk.core.refactoring.prefs new file mode 100644 index 0000000..cfcd1d3 --- /dev/null +++ b/.settings/org.eclipse.ltk.core.refactoring.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false diff --git a/src/testcase/twitter/OAuthHeader.java b/src/testcase/twitter/OAuthHeader.java index 092f217..15c8316 100644 --- a/src/testcase/twitter/OAuthHeader.java +++ b/src/testcase/twitter/OAuthHeader.java @@ -1,8 +1,18 @@ package testcase.twitter; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import java.util.Map.Entry; +import java.util.SortedMap; +import java.util.TreeMap; + import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; +import sun.misc.BASE64Encoder; + public class OAuthHeader { private String consumer_key; private String consumer_secret; @@ -10,6 +20,7 @@ private String oauth_secret; private String method = "POST"; private String url = "https://api.twitter.com/oauth/request_token"; + private SortedMap params = new TreeMap(); public String getConsumer_key() { return consumer_key; @@ -42,8 +53,58 @@ public void setOauth_secret(String oauth_secret) { this.oauth_secret = oauth_secret; } + + public void generateSignature(){ + String paramStr = ""; + for (Entry param : params.entrySet()) { + paramStr += "&" + param.getKey() + "=" + param.getValue(); + } + paramStr = paramStr.substring(1); + // �����Ώۃe�L�X�g�isignature base string�j�̍쐬 + String text = method + "&" + urlEncode(url) + "&" + + urlEncode(paramStr); + + // �����L�[�̍쐬 + String key = urlEncode(consumer_secret) + "&" + + urlEncode(oauth_secret); + + // HMAC-SHA1�ŏ����𐶐� + SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), + "HmacSHA1"); + Mac mac = null; + try { + mac = Mac.getInstance(signingKey.getAlgorithm()); + } catch (NoSuchAlgorithmException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + try { + mac.init(signingKey); + } catch (InvalidKeyException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + byte[] rawHmac = mac.doFinal(text.getBytes()); + String signature = new BASE64Encoder().encode(rawHmac); + + // �������p�����[�^�ɒlj� + params.put("oauth_signature", signature); + } + public String getAuthorization() { return ""; } + + private int getUnixTime() { + return (int) (System.currentTimeMillis() / 1000L); + } + + private String urlEncode(String string) { + try { + return URLEncoder.encode(string, "UTF-8"); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } + } }