Disqus 单点登录 (SSO) 问题

Disqus single sign on (SSO) issue

我们正在使用以下 java 方法来提供 HMAC->SHA1 signature.But 它显示的签名在 sso 中不匹配 console.Please 尝试帮助我 issue.let知道在 java.What 中是否有任何其他方法可以使用 disqus 正在使用方法从消息和时间戳生成签名 -

/**
 * To convert into base16
 * 
 * @param bytes
 * @return
 */
private static String toHexString(byte[] bytes) {
    Formatter formatter = new Formatter();
    for (byte b : bytes) {
        formatter.format("%02x", b);
    }
    return formatter.toString();
}

/**
 * 
 * @param data
 * @param key
 * @return
 * @throws SignatureException
 * @throws NoSuchAlgorithmException
 * @throws InvalidKeyException
 */
public static String calculateRFC2104HMAC(String data, String key)
        throws SignatureException, NoSuchAlgorithmException,
        InvalidKeyException {
    final String HMAC_SHA1_ALGORITHM = "HmacSHA1";
    SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(),
            HMAC_SHA1_ALGORITHM);
    Mac mac = Mac.getInstance(HMAC_SHA1_ALGORITHM);
    mac.init(signingKey);
    return toHexString(mac.doFinal(data.getBytes()));
    //return DatatypeConverter.printBase64Binary(mac.doFinal(data.getBytes()));
}

参考:Disqus sso java

Hmac sha1 方法 returns 加密的十六进制字符串 message.I 必须确保我们传递给该方法的密钥是正确的。它解决了问题。