Comment faire pour utiliser l'Authentification de Base avec JIRA RESTE de l'API en JavaScript?
Je suis de la création d'une application JavaScript pour la Smart TV pour montrer des tableaux de bord sur la tv.
J'obtiens la liste des tableaux de bord avec le TABLEAU de l'API REST. L'url que j'ai utiliser est la suivante:
jira/rest/api/2/dashboard?startAt=&maxResults=
ensuite, j'ai créer un mur comme suit pour afficher sur la tv:
jira/plugins/servlet/Wallboard/?dashboardId=&os_username=&os_password=
en raison de la os_username
et os_password
, JIRA sait que je suis authentifié et obtient la liste de droite. cette liste est celle que j'ai besoin depuis le début, mais parce que j'appelle l'url ci-dessus avec les paramètres os_username
et os_password
il ne obtenir la liste de droite
mais au démarrage de la tv/la première fois que je reçois la liste des tableaux de bord avec JIRA il n'existe pas authentifié donc, il faut un hasard de la liste, pas le seul j'ai besoin pour obtenir.
il est possible de s'authentifier dans JIRA avec la commande ci-dessous:
curl -D- -u fred:fred -X GET -H "Content-Type: application/json" http://example.com/rest/api/2/issue/createmeta
mais je ne sais pas comment utiliser cette commande dans un script JavaScript.
Si quelqu'un peut me dire comment je peux authentifier dans JIRA avec l'authentification de base et très important IL faut le JAVASCRIPT.
Vous devez vous connecter pour publier un commentaire.
Vous avez obtenu ce à partir de ici, je présume. Bien sur la même page, il est expliqué comment "do it yourself". Je vais à "traduire" les étapes que vous devez faire pour réussir à faire la même demande en JS.
Votre-tête Content-type doit ressembler à:
"Content-Type: application/json"
Pour l'en-tête d'Autorisation:
"Authorization: Basic ZnJlZDpmcmVk"
Donc en fin de compte, vous devez faire votre demande d'OBTENIR les deux en-Têtes fournis et vous devriez être Autorisé. Aussi MÉFIEZ-vous Base64 est reverseable et non PAS une fonction de chiffrement. C'est l'encodage. La demande doit passer par HTTPS, bien sûr, mais la chaîne encodée en Base64 pourrait être inversée si le protocole SSL est cassé.
Dans le cas où vous avoir votre propre JIRA exemple, vous devriez liste blanche de votre site afin de permettre la SCRO pour votre domaine en premier:
Sinon, votre demande serait une erreur, car elle viole les navigateurs de même origine politique (http://enable-cors.org/).
Important: Si vous utilisez JIRA sur demande /sur le nuage, vous ne serez pas en mesure de réussir à accéder à l'API avec l'Authentification de Base à l'aide de JavaScript /code côté client. Cela est dû à des raisons de sécurité, et, malheureusement, il semble y avoir aucune solution fournie par l'équipe Atlassian encore. Une seule solution pour résoudre cela, pourrait être la mise en place d'un proxy sur votre serveur, qui les transmet ensuite l'option JavaScript de votre demande à partir du navigateur de la réelle instance JIRA.
Pour éviter d'éventuels problèmes dus à des bugs dans votre code, je vous suggère fortement d'essayer d'accéder à la CONFLUENCE de l'API en utilisant CURL en tant que première étape:
Noter que vous devez remplacer %en BASE64 CREDENTIDALS% avec votre encodées en Base64 d'utilisateur/mot de passe. Il est important de savoir que cela ne fonctionne qu'avec le JIRA nom d'utilisateur, pas avec les utilisateurs JIRA adresse e-mail. Cela peut être déroutant, comme normalement, vous êtes également en mesure de signer à JIRA en utilisant l'adresse e-mail mais ne fonctionne pas avec l'API.
Après avoir dans la liste blanche de votre domaine, vous êtes prêt à aller - construire un OBTENIR demande avec les détails suivants:
Content-Type: application/json
Ajoute un en-tête d'authentification par les premières Base64 encodage nom d'utilisateur et le mot de passe:
var authCode = window.btoa( user + ":" + password );
var authHeader = "Authorization: Basic " + authCode;
Effectuer la demande sur un JIRA API URL du point de terminaison, comme:
https://%PROJECT%.atlassian.net/rest/api/2/issue/%ISSUE-ID%
Voir StackOverflow question "Comment faire pour utiliser l'Authentification Basique avec jQuery et AJAX?" pour des approches de la façon d'effectuer la demande à l'aide de jQuery.
Avis de sécurité: sachez que le code d'autorisation n'est pas une valeur chiffrée, mais un codage. Prendre soin où vous stocker ou de les fournir!