com.xiaomi.infra.galaxy.sds.thrift.AuthenticationConstants Maven / Gradle / Ivy
/**
* Autogenerated by Thrift Compiler (0.9.2)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
*/
package com.xiaomi.infra.galaxy.sds.thrift;
import libthrift091.scheme.IScheme;
import libthrift091.scheme.SchemeFactory;
import libthrift091.scheme.StandardScheme;
import libthrift091.scheme.TupleScheme;
import libthrift091.protocol.TTupleProtocol;
import libthrift091.protocol.TProtocolException;
import libthrift091.EncodingUtils;
import libthrift091.TException;
import libthrift091.async.AsyncMethodCallback;
import libthrift091.server.AbstractNonblockingServer.*;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import java.util.EnumMap;
import java.util.Set;
import java.util.HashSet;
import java.util.EnumSet;
import java.util.Collections;
import java.util.BitSet;
import java.nio.ByteBuffer;
import java.util.Arrays;
import javax.annotation.Generated;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
public class AuthenticationConstants {
/**
* 登录方式是否支持签名
*/
public static final Map SIGNATURE_SUPPORT = new HashMap();
static {
SIGNATURE_SUPPORT.put(com.xiaomi.infra.galaxy.sds.thrift.UserType.DEV_XIAOMI_SSO, false);
SIGNATURE_SUPPORT.put(com.xiaomi.infra.galaxy.sds.thrift.UserType.DEV_XIAOMI, true);
SIGNATURE_SUPPORT.put(com.xiaomi.infra.galaxy.sds.thrift.UserType.APP_SECRET, true);
SIGNATURE_SUPPORT.put(com.xiaomi.infra.galaxy.sds.thrift.UserType.APP_ACCESS_TOKEN, true);
SIGNATURE_SUPPORT.put(com.xiaomi.infra.galaxy.sds.thrift.UserType.APP_XIAOMI_SSO, false);
SIGNATURE_SUPPORT.put(com.xiaomi.infra.galaxy.sds.thrift.UserType.APP_ANONYMOUS, false);
}
/**
* 内容为TJSONTransport.encode(HttpAuthorizationHeader)
*/
public static final String HK_AUTHORIZATION = "Authorization";
/**
* 签名相关的HTTP头,
* 根据分层防御的设计,使用HTTPS也建议进行签名:
* http://bitcoin.stackexchange.com/questions/21732/why-api-of-bitcoin-exchanges-use-hmac-over-https-ssl
*/
public static final String HK_HOST = "Host";
/**
* 签名时间,1970/0/0开始的秒数,如客户端与服务器时钟相差较大,会返回CLOCK_TOO_SKEWED错误
*/
public static final String HK_TIMESTAMP = "X-Xiaomi-Timestamp";
public static final String HK_CONTENT_MD5 = "X-Xiaomi-Content-MD5";
public static final String MI_DATE = "x-xiaomi-date";
public static final String XIAOMI_HEADER_PREFIX = "x-xiaomi-";
/**
* 认证相关的HTTP头
*/
public static final String HK_VERSION = "X-Xiaomi-Version";
public static final String HK_USER_TYPE = "X-Xiaomi-User-Type";
public static final String HK_SECRET_KEY_ID = "X-Xiaomi-Secret-Key-Id";
/**
* 直接使用secretKey,此项被设置时,signature将被忽略,
* 非安全传输应使用签名
*/
public static final String HK_SECRET_KEY = "X-Xiaomi-Secret-Key";
/**
* 如secretKey未设置,则认为使用签名,此时必须设置,
* 被签名的正文格式:header1[\nheader2[\nheader3[...]]],
* 如使用默认SUGGESTED_SIGNATURE_HEADERS时为:$host\n$timestamp\n$md5
*/
public static final String HK_SIGNATURE = "X-Xiaomi-Signature";
/**
* 签名HMAC算法,客户端可定制,
* 使用签名时必须设置
*/
public static final String HK_MAC_ALGORITHM = "X-Xiaomi-Mac-Algorithm";
/**
* 向后兼容,在APP_SECRET的用户身份下成为DevelopUser
*/
public static final String HK_SUPPORT_ACCOUNT_KEY = "X-Xiaomi-Support-Account-Key";
/**
* 建议签名应包含的HTTP头,包含所有签名涉及到的部分,服务端未强制必须使用所列headers,
* 定制的client自己负责签名的安全强度,使用签名时必须设置
*/
public static final List SUGGESTED_SIGNATURE_HEADERS = new ArrayList();
static {
SUGGESTED_SIGNATURE_HEADERS.add("Host");
SUGGESTED_SIGNATURE_HEADERS.add("X-Xiaomi-Timestamp");
SUGGESTED_SIGNATURE_HEADERS.add("X-Xiaomi-Content-MD5");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy