私は、ユーザーが jira プロジェクトから選択し、特定の jira 課題レポートに使用できる合流ブループリントを開発しています。
両方のインスタンスが互いに正しく接続され、結果が得られますが、管理者としてログインしている場合のみです。通常のユーザーでは、これを取得しています:
<status>
<status-code>401</status-code>
<message>This resource requires WebSudo.</message>
</status>
残念ながら、javascript を使用した ajax ポスト リクエストとして、jira サーバーから情報を取得する必要があります。これが私のコードです。
function pickDate(e, state) {
AJS.$('#spLebenStart').datePicker({
overrideBrowserDefault: true
});
getJiraUrl();
}
function getJiraUrl(){
var appUrl = AJS.contextPath() + "/rest/applinks/1.0/applicationlink/type/jira";
$.ajax({
type: 'GET',
url: appUrl,
data: {
key: "value"
},
dataType: "xml",
success: function (xml){
jiraID = $(xml).find("id").text();
},
complete: function(){
getJiraProjects(jiraID);
},
error: function() {
alert("ERROR @ getJiraUrl");
}
});
}
function getJiraProjects(applicationId){
var restUrl = AJS.contextPath() + "/rest/applinks/1.0/entities/"+applicationId+"?os_authType=any";
$.ajax({
type: 'GET',
url: restUrl,
data: {
key: "value"
},
dataType: "xml",
success: function (xml){
jiraProjectKeys = [];
$(xml).find("entity").each(function(){
jiraProjectKeys.push({id: $(this).attr("key"), text: $(this).attr("name")});
});
},
crossDomain: true,
xhrFields: {
withCredentials: true
},
error: function() {
alert("ERROR @ getJiraProjects");
},
complete: function(){
AJS.$('#spSelect').auiSelect2({
placeholder: 'Projekt auswählen...',
data:jiraProjectKeys,
multiple: false
});
}
});
}
ajaxで基本認証でログイン情報を使用しようとしましたが、役に立ちませんでした。もちろん、ID をコードにハードコーディングすることはできますが、ID が変更された場合はどうなりますか? それは最善の解決策ではありません。websudo の問題を管理するにはどうすればよいですか?
ありがとう、メリークリスマスと新年あけましておめでとうございます。