Bibliothèque pour la génération de l'algorithme HMAC-SHA1 OAuth signature sur Android?
À l'aide de la spécifications ci-dessous j'ai besoin de créer un oauth_signature sur Android. Je suis à la recherche d'une bibliothèque qui gère la chaudière plaque de code dans la création d'une signature pour accéder à des ressources via OAuth.
- Construire une signature "chaîne de base", qui se compose d'un enchaînement de trois demande des éléments:
- La méthode de requête HTTP.
- L'URL de base à la demande est envoyé à. Cette URL ne devrait pas inclure tous les paramètres de la requête. Lors de la signature des appels vers les services de Google, reportez-vous à la OAuth spécification, la Section 9.1.2, pour les instructions pertinentes.
- Normalisée de la chaîne des paramètres dans la requête (à l'exclusion de la oauth_signature paramètre). Cela comprend les paramètres envoyés dans la demande d'en-tête ou le corps, ainsi que les paramètres de la requête ajouté à l'URL de la requête. Pour normaliser la chaîne, trier les paramètres à l'aide de vocabulaire de la valeur d'un octet de commande. Pour plus de détails sur la normalisation de cette chaîne, consultez la Section 9.1.1 de la OAuth spécification.
- Générer un oauth_signature à l'aide de l'une des séquences suivantes:
- Si votre demande est enregistrée et vous êtes à l'aide de l'algorithme HMAC-SHA1, utiliser OAuth pour le consommateur "secret" de la valeur générée lors de l'inscription; cette valeur est affichée sur votre nom de domaine de la page d'inscription.
OriginalL'auteur Will Curran | 2011-05-13
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé cette bibliothèque pour Android Client OAuth: http://code.google.com/p/oauth-signpost/
Mais cela ne peut pas être utilisé pour .net ou LinkedIn api
OriginalL'auteur andrewmitchell
En réponse à la Volonté de la question sur Chris réponse, vous pouvez utiliser le construit en android javax.crypto.mac pour générer le hmacsha1 signature à l'aide de code suivant (Java standard JCE fournisseur api):
Où "secret" serait vous texte que vous voulez encoder et de "résultat" ci-dessus serait votre hash signature codée.
Base64.encodeBase64()
est de Apache paquet qui n'existe pas dans android. Au lieu de cela,Base64.encode(string,flag)
doit être utilisé.merci @Mahm00d, j'ai mis à jour ma réponse. J'ai aussi mis le drapeau param par DÉFAUT pour obtenir la valeur par défaut encoder les paramètres (developer.android.com/reference/android/util/Base64.html)
OriginalL'auteur DEzra
Je ne sais rien à propos de OAuth, mais vous pouvez utiliser
javax.crypto.Mac
pour générer HMAC-SHA1 valeur (utiliserHmacSHA1
comme le nom de l'algorithme):OriginalL'auteur Chris Jester-Young
Voici le code que j'ai utilisé,
il suffit de passer la valeur et la clé de la hmacSha1().. il retourne hmacsha1 chaîne;
afin de créer un hmacsha1 vous devez fournir deux paramètres d'une clé et d'un message, la valeur de ces deux dépendra de votre cas d'utilisation.
stackoverflow.com/q/49505888/6299045
Pour l'API Magento ce que nous passons à côté serveur, il est Consommateur Secret et un Jeton Secret
Pour Oauth je ne pense pas que vous devriez être en train de passer CS et TS . Vous avez besoin de concaténer un ensemble d'URL-encodé les attributs et les paramètres de construction de la base de signatures de la chaîne. veuillez vous reporter devdocs.magento.com/guides/v2.0/get-started/authentication/...
OriginalL'auteur Muneef M