Ошибка проверки XSRF при отправке POST на пользовательскую конечную точку отдыха - PullRequest
0 голосов
/ 06 мая 2020

У меня есть ScriptRunner Fragment, который показывает диалог формы. Вот код:

import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate
import groovy.transform.BaseScript

import javax.ws.rs.core.MediaType
import javax.ws.rs.core.MultivaluedMap
import javax.ws.rs.core.Response

@BaseScript CustomEndpointDelegate delegate

showCloneEazyBIAccounts() { MultivaluedMap queryParams ->

def dialog =
    """<section role="dialog" id="sr-dialog" class="aui-layer aui-dialog2 aui-dialog2-medium" aria-hidden="true" data-aui-remove-on-hide="true">
        <header class="aui-dialog2-header">
            <h2 class="aui-dialog2-header-main">Clone EazyBI Accounts by Model</h2>
            <a class="aui-dialog2-header-close">
                <span class="aui-icon aui-icon-small aui-iconfont-close-dialog">Close</span>
            </a>
        </header>
        <div class="aui-dialog2-content">
            <form class="aui" action="/rest/scriptrunner/latest/custom/cloneJE2Cube" method="post">
                <div class="field-group">
                    <label for="accountNames">Account Names <span class="aui-icon icon-required"></span></label>
                    <input class="text medium-field" type="text"id="accountNames" name="accountNames" placeholder="Cubo 1, Cubo 2...">
                </div>
                <div class="field-group">
                    <label for="projectKeys">Project Keys <span class="aui-icon icon-required"></span></label>
                    <input class="text medium-field" type="text"id="projectKeys" name="projectKeys" placeholder="JESC, JEBACK....">
                </div>
                <div class="field-group">
                    <label for="model">Model <span class="aui-icon icon-required"></span></label>
                    <select class="select" id="model" name="model">
                        <option>Select</option>
                        <option>JESC</option>
                        <option>JEBACK</option>
                        <option>COM</option>
                        <option>AGILE</option>
                    </select>
                </div>
                <div class="buttons-container">
                    <div class="buttons">
                        <input class="button submit" type="submit" value="Clone" id="clone-button">
                    </div>
                </div>
            </form>
        </div>
        <footer class="aui-dialog2-footer">
             <div class="aui-dialog2-footer-hint"></div>
        </footer>
    </section>
    """

Response.ok().type(MediaType.TEXT_HTML).entity(dialog.toString()).build()
}

Мне нужна эта форма для отправки данных в другую настраиваемую конечную точку отдыха (она отлично работает, когда я вызываю ее от почтальона), но когда я отправляю это диалоговое окно, появляется " Ошибка проверки XSRF ".

Есть ли способ заставить его работать?

С уважением, Элои.

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Наконец, я решил проблему отправки запроса с AJAX и добавления заголовков: {'X-Atlassian-Token': 'nocheck'}.

Надеюсь, это поможет!

0 голосов
/ 06 мая 2020

Это из-за заголовков, которые добавляются вашим браузером. В данном случае я думаю, что проблема заключается в заголовке User-Agent , замените его на что-то фиктивное, если это не решает проблему с открытым сетевым инструментом ваш браузер и переопределить все пользовательские заголовки, добавленные вашим браузером.

...