/* * Copyright 2012 Nodeable Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.streamreduce.core.model.dto; import com.streamreduce.core.model.ConnectionCredentials; import com.streamreduce.core.model.ConnectionCredentialsEncrypter; import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.codehaus.jackson.JsonParser; import org.codehaus.jackson.JsonToken; import org.codehaus.jackson.map.DeserializationContext; import org.codehaus.jackson.map.JsonDeserializer; public class ConnectionCredentialsDeserializer extends JsonDeserializer<ConnectionCredentials> { @Override public ConnectionCredentials deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { Map<String,String> keyValues = new HashMap<>(); while (jp.nextValue() != null && jp.getCurrentToken() != JsonToken.END_OBJECT) { String name = jp.getCurrentName(); String value = jp.getText(); keyValues.put(name,value); } ConnectionCredentials cc = new ConnectionCredentials(); cc.setIdentity(keyValues.get("identity")); cc.setCredential(keyValues.get("credential")); cc.setApiKey(keyValues.get("apiKey")); cc.setOauthToken(keyValues.get("oauthToken")); cc.setOauthTokenSecret(keyValues.get("oauthTokenSecret")); cc.setOauthVerifier(keyValues.get("oauthVerifier")); ConnectionCredentialsEncrypter credentialsEncrypter = new ConnectionCredentialsEncrypter(); credentialsEncrypter.decrypt(cc); return cc; } }