Package me.zhyd.oauth.utils
Class GlobalAuthUtils
java.lang.Object
me.zhyd.oauth.utils.GlobalAuthUtils
全局的工具类
- Since:
- 1.0.0
- Author:
- yadong.zhang (yadong.zhang0415(a)gmail.com)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic StringgenerateDingTalkSignature(String secretKey, String timestamp) 生成钉钉请求的Signaturestatic StringgenerateElemeSignature(String appKey, String secret, long timestamp, String action, String token, Map<String, Object> parameters) 生成饿了么请求的Signaturestatic StringgenerateJdSignature(String appSecret, Map<String, Object> params) 生成京东宙斯平台的签名字符串 宙斯签名规则过程如下: 将所有请求参数按照字母先后顺序排列,例如将access_token,app_key,method,timestamp,v 排序为access_token,app_key,method,timestamp,v 1.把所有参数名和参数值进行拼接,例如:access_tokenxxxapp_keyxxxmethodxxxxxxtimestampxxxxxxvx 2.把appSecret夹在字符串的两端,例如:appSecret+XXXX+appSecret 3.使用MD5进行加密,再转化成大写 link: http://open.jd.com/home/home#/doc/common?static StringgenerateNonce(int len) Generate nonce with given lengthstatic StringgenerateTwitterSignature(Map<String, String> params, String method, String baseUrl, String apiSecret, String tokenSecret) Generate Twitter signature https://developer.twitter.com/en/docs/basics/authentication/guides/creating-a-signaturestatic StringgenerateXmlySignature(Map<String, String> params, String clientSecret) 喜马拉雅签名算法https://open.ximalaya.com/doc/detailApi?categoryId=6&articleId=69static StringGet current timestampstatic booleanisHttpProtocol(String url) 是否为http协议static booleanisHttpsProtocol(String url) 是否为https协议static boolean是否为https协议或本地主机(域名)static booleanisLocalHost(String url) 是否为本地主机(域名)static StringMD5加密static StringparseMapToString(Map<String, String> params, boolean encode) map转字符串,转换后的字符串格式为xxx=xxx&xxx=xxxparseStringToMap(String accessTokenStr) string字符串转map,str格式为xxx=xxx&xxx=xxxstatic String解码static String编码
-
Constructor Details
-
GlobalAuthUtils
public GlobalAuthUtils()
-
-
Method Details
-
generateDingTalkSignature
生成钉钉请求的Signature- Parameters:
secretKey- 平台应用的授权密钥timestamp- 时间戳- Returns:
- Signature
-
urlEncode
编码- Parameters:
value- str- Returns:
- encode str
-
urlDecode
解码- Parameters:
value- str- Returns:
- decode str
-
parseStringToMap
string字符串转map,str格式为xxx=xxx&xxx=xxx- Parameters:
accessTokenStr- 待转换的字符串- Returns:
- map
-
parseMapToString
map转字符串,转换后的字符串格式为xxx=xxx&xxx=xxx- Parameters:
params- 待转换的mapencode- 是否转码- Returns:
- str
-
isHttpProtocol
是否为http协议- Parameters:
url- 待验证的url- Returns:
- true: http协议, false: 非http协议
-
isHttpsProtocol
是否为https协议- Parameters:
url- 待验证的url- Returns:
- true: https协议, false: 非https协议
-
isLocalHost
是否为本地主机(域名)- Parameters:
url- 待验证的url- Returns:
- true: 本地主机(域名), false: 非本地主机(域名)
-
isHttpsProtocolOrLocalHost
是否为https协议或本地主机(域名)- Parameters:
url- 待验证的url- Returns:
- true: https协议或本地主机 false: 非https协议或本机主机
-
generateNonce
Generate nonce with given length- Parameters:
len- length- Returns:
- nonce string
-
getTimestamp
Get current timestamp- Returns:
- timestamp string
-
generateTwitterSignature
public static String generateTwitterSignature(Map<String, String> params, String method, String baseUrl, String apiSecret, String tokenSecret) Generate Twitter signature https://developer.twitter.com/en/docs/basics/authentication/guides/creating-a-signature- Parameters:
params- parameters including: oauth headers, query params, body paramsmethod- HTTP methodbaseUrl- base urlapiSecret- api key secret can be found in the developer portal by viewing the app details pagetokenSecret- oauth token secret- Returns:
- BASE64 encoded signature string
-
generateXmlySignature
喜马拉雅签名算法https://open.ximalaya.com/doc/detailApi?categoryId=6&articleId=69- Parameters:
params- 加密参数clientSecret- 平台应用的授权key- Returns:
- Signature
- Since:
- 1.15.9
-
generateElemeSignature
public static String generateElemeSignature(String appKey, String secret, long timestamp, String action, String token, Map<String, Object> parameters) 生成饿了么请求的Signature代码copy并修改自:https://coding.net/u/napos_openapi/p/eleme-openapi-java-sdk/git/blob/master/src/main/java/eleme/openapi/sdk/utils/SignatureUtil.java
- Parameters:
appKey- 平台应用的授权keysecret- 平台应用的授权密钥timestamp- 时间戳,单位秒。API服务端允许客户端请求最大时间误差为正负5分钟。action- 饿了么请求的api方法token- 用户授权的tokenparameters- 加密参数- Returns:
- Signature
-
md5
MD5加密代码copy并修改自:https://coding.net/u/napos_openapi/p/eleme-openapi-java-sdk/git/blob/master/src/main/java/eleme/openapi/sdk/utils/SignatureUtil.java
- Parameters:
str- 待加密的字符串- Returns:
- md5 str
-
generateJdSignature
生成京东宙斯平台的签名字符串 宙斯签名规则过程如下: 将所有请求参数按照字母先后顺序排列,例如将access_token,app_key,method,timestamp,v 排序为access_token,app_key,method,timestamp,v 1.把所有参数名和参数值进行拼接,例如:access_tokenxxxapp_keyxxxmethodxxxxxxtimestampxxxxxxvx 2.把appSecret夹在字符串的两端,例如:appSecret+XXXX+appSecret 3.使用MD5进行加密,再转化成大写 link: http://open.jd.com/home/home#/doc/common?listId=890 link: https://github.com/pingjiang/jd-open-api-sdk-src/blob/master/src/main/java/com/jd/open/api/sdk/DefaultJdClient.java- Parameters:
appSecret- 京东应用密钥params- 签名参数- Returns:
- 签名后的字符串
- Since:
- 1.15.0
-