У меня есть небольшой плагин, который проверяет несколько вещей, если в описании запроса на вытягивание, помимо прочего, есть действующий билет Jira.
Следующий код работал нормально при тестировании в Stash 3.2.4, но перестал работать на следующий день, когда мы обновили Stash до 3.3.0 (это может быть не прямой причиной, поскольку плагин все еще находится в разработке).
public JiraServiceImpl(ApplicationLinkService applicationLinkService)
{
this.applicationLinkService = applicationLinkService;
}
private ApplicationLink getJiraApplicationLink()
{
ApplicationLink applicationLink = applicationLinkService.getPrimaryApplicationLink(JiraApplicationType.class);
if (applicationLink == null)
{
throw new IllegalStateException("Primary JIRA application link does not exist!");
}
return applicationLink;
}
public boolean doesIssueExist(IssueKey issueKey) throws CredentialsRequiredException, ResponseException
{
checkNotNull(issueKey, "issueKey is null");
final ApplicationLinkRequestFactory fac = getJiraApplicationLink().createAuthenticatedRequestFactory();
ApplicationLinkRequest req = fac.createRequest(Request.MethodType.GET, "/rest/api/2/issue/"+issueKey.getFullyQualifiedIssueKey());
return req.execute(new ApplicationLinkResponseHandler<Boolean>()
{
@Override
public Boolean credentialsRequired(Response response) throws ResponseException
{
throw new ResponseException(new CredentialsRequiredException(fac, "Token is invalid"));
}
@Override
public Boolean handle(Response response) throws ResponseException
{
return response.isSuccessful();
}
});
}
Выдается исключение с сообщением: «У вас нет авторизованного токена доступа для удаленного ресурса».
У меня нет прав администратора Stash, и я не могу вернуться к версии 3.2.4. Ссылка на приложение была переделана, думая, что это проблема, но это не так. При дальнейшем тестировании мы увидели, что это работает для тех, у кого есть права администратора, но не для обычных пользователей.
Что я могу изменить, чтобы решить эту проблему?