Java tutorial
/** * (C) 2010-2014 Alibaba Group Holding Limited. * * 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.alibaba.datax.plugin.writer.odpswriter.util; import com.alibaba.datax.common.exception.DataXException; import com.alibaba.datax.common.util.Configuration; import com.alibaba.datax.plugin.writer.odpswriter.Constant; import com.alibaba.datax.plugin.writer.odpswriter.Key; import com.alibaba.datax.plugin.writer.odpswriter.OdpsWriterErrorCode; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.Map; public class IdAndKeyUtil { private static Logger LOG = LoggerFactory.getLogger(IdAndKeyUtil.class); public static Configuration parseAccessIdAndKey(Configuration originalConfig) { String accessId = originalConfig.getString(Key.ACCESS_ID); String accessKey = originalConfig.getString(Key.ACCESS_KEY); // ?? accessId,accessKey ????? accessid/accessKey if (StringUtils.isNotBlank(accessId) || StringUtils.isNotBlank(accessKey)) { LOG.info("Try to get accessId/accessKey from your config."); //??? accessId = originalConfig.getNecessaryValue(Key.ACCESS_ID, OdpsWriterErrorCode.REQUIRED_VALUE); accessKey = originalConfig.getNecessaryValue(Key.ACCESS_KEY, OdpsWriterErrorCode.REQUIRED_VALUE); //?? return originalConfig; } else { Map<String, String> envProp = System.getenv(); return getAccessIdAndKeyFromEnv(originalConfig, envProp); } } private static Configuration getAccessIdAndKeyFromEnv(Configuration originalConfig, Map<String, String> envProp) { String accessId = null; String accessKey = null; String skynetAccessID = envProp.get(Constant.SKYNET_ACCESSID); String skynetAccessKey = envProp.get(Constant.SKYNET_ACCESSKEY); if (StringUtils.isNotBlank(skynetAccessID) || StringUtils.isNotBlank(skynetAccessKey)) { /** * ??SKYNET_ACCESSID/SKYNET_ACCESSKEy????? * odpsaccessId/accessKey() */ LOG.info("Try to get accessId/accessKey from environment."); accessId = skynetAccessID; accessKey = DESCipher.decrypt(skynetAccessKey); if (StringUtils.isNotBlank(accessKey)) { originalConfig.set(Key.ACCESS_ID, accessId); originalConfig.set(Key.ACCESS_KEY, accessKey); LOG.info("Get accessId/accessKey from environment variables successfully."); } else { throw DataXException.asDataXException(OdpsWriterErrorCode.GET_ID_KEY_FAIL, String .format("???accessId/accessKey , accessId=[%s]", accessId)); } } else { // ???? throw DataXException.asDataXException(OdpsWriterErrorCode.GET_ID_KEY_FAIL, "?accessId/accessKey. ?????."); } return originalConfig; } }