1b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien/* 2b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien * Copyright 2007 Netflix, Inc. 3b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien * 4b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien * Licensed under the Apache License, Version 2.0 (the "License"); 5b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien * you may not use this file except in compliance with the License. 6b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien * You may obtain a copy of the License at 7b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien * 8b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien * http://www.apache.org/licenses/LICENSE-2.0 9b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien * 10b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien * Unless required by applicable law or agreed to in writing, software 11b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien * distributed under the License is distributed on an "AS IS" BASIS, 12b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien * See the License for the specific language governing permissions and 14b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien * limitations under the License. 15b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien */ 16b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien 17b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembienpackage net.oauth.signature; 18b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien 19b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembienimport net.oauth.OAuth; 20b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembienimport net.oauth.OAuthException; 21b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien 22b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien/** 23b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien * @author John Kristian 24b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien * @hide 25b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien */ 26b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembienclass PLAINTEXT extends OAuthSignatureMethod { 27b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien 28b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien @Override 29b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien public String getSignature(String baseString) { 30b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien return getSignature(); 31b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien } 32b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien 33b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien @Override 34b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien protected boolean isValid(String signature, String baseString) 35b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien throws OAuthException { 36b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien return signature.equals(getSignature()); 37b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien } 38b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien 39b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien private synchronized String getSignature() { 40b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien if (signature == null) { 41b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien signature = OAuth.percentEncode(getConsumerSecret()) + '&' 42b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien + OAuth.percentEncode(getTokenSecret()); 43b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien } 44b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien return signature; 45b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien } 46b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien 47b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien private String signature = null; 48b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien 49b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien @Override 50b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien public void setConsumerSecret(String consumerSecret) { 51b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien synchronized (this) { 52b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien signature = null; 53b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien } 54b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien super.setConsumerSecret(consumerSecret); 55b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien } 56b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien 57b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien @Override 58b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien public void setTokenSecret(String tokenSecret) { 59b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien synchronized (this) { 60b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien signature = null; 61b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien } 62b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien super.setTokenSecret(tokenSecret); 63b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien } 64b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien 65b852fcf48a8909164d7f323dd02a35d2a8056a61Nico Sallembien} 66