Class GlobalAuthUtils

java.lang.Object
me.zhyd.oauth.utils.GlobalAuthUtils

public class GlobalAuthUtils extends Object
全局的工具类
Since:
1.0.0
Author:
yadong.zhang (yadong.zhang0415(a)gmail.com)
  • Constructor Details

    • GlobalAuthUtils

      public GlobalAuthUtils()
  • Method Details

    • generateDingTalkSignature

      public static String generateDingTalkSignature(String secretKey, String timestamp)
      生成钉钉请求的Signature
      Parameters:
      secretKey - 平台应用的授权密钥
      timestamp - 时间戳
      Returns:
      Signature
    • urlEncode

      public static String urlEncode(String value)
      编码
      Parameters:
      value - str
      Returns:
      encode str
    • urlDecode

      public static String urlDecode(String value)
      解码
      Parameters:
      value - str
      Returns:
      decode str
    • parseStringToMap

      public static Map<String,String> parseStringToMap(String accessTokenStr)
      string字符串转map,str格式为 xxx=xxx&xxx=xxx
      Parameters:
      accessTokenStr - 待转换的字符串
      Returns:
      map
    • parseMapToString

      public static String parseMapToString(Map<String,String> params, boolean encode)
      map转字符串,转换后的字符串格式为 xxx=xxx&xxx=xxx
      Parameters:
      params - 待转换的map
      encode - 是否转码
      Returns:
      str
    • isHttpProtocol

      public static boolean isHttpProtocol(String url)
      是否为http协议
      Parameters:
      url - 待验证的url
      Returns:
      true: http协议, false: 非http协议
    • isHttpsProtocol

      public static boolean isHttpsProtocol(String url)
      是否为https协议
      Parameters:
      url - 待验证的url
      Returns:
      true: https协议, false: 非https协议
    • isLocalHost

      public static boolean isLocalHost(String url)
      是否为本地主机(域名)
      Parameters:
      url - 待验证的url
      Returns:
      true: 本地主机(域名), false: 非本地主机(域名)
    • isHttpsProtocolOrLocalHost

      public static boolean isHttpsProtocolOrLocalHost(String url)
      是否为https协议或本地主机(域名)
      Parameters:
      url - 待验证的url
      Returns:
      true: https协议或本地主机 false: 非https协议或本机主机
    • generateNonce

      public static String generateNonce(int len)
      Generate nonce with given length
      Parameters:
      len - length
      Returns:
      nonce string
    • getTimestamp

      public static 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 params
      method - HTTP method
      baseUrl - base url
      apiSecret - api key secret can be found in the developer portal by viewing the app details page
      tokenSecret - oauth token secret
      Returns:
      BASE64 encoded signature string
    • generateXmlySignature

      public static String generateXmlySignature(Map<String,String> params, String clientSecret)
      喜马拉雅签名算法 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 - 平台应用的授权key
      secret - 平台应用的授权密钥
      timestamp - 时间戳,单位秒。API服务端允许客户端请求最大时间误差为正负5分钟。
      action - 饿了么请求的api方法
      token - 用户授权的token
      parameters - 加密参数
      Returns:
      Signature
    • md5

      public static String md5(String str)
      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

      public static String generateJdSignature(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?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