一种可能的解决方法是添加内部REST请求的权限。在您的插件的pom.xml文件中,需要添加以下依赖项:
com.atlassian.plugins.rest
atlassian-rest-common
${atlassian-rest-common.version}
provided
然后,您可以使用以下代码在插件中进行内部REST请求:
import com.atlassian.sal.api.pluginsettings.PluginSettingsFactory;
import com.atlassian.plugins.rest.common.security.AuthenticationRequiredException;
import com.atlassian.plugins.rest.common.security.CorsAllowed;
import com.atlassian.plugins.rest.common.security.RequestAuthenticationProvider;
import com.atlassian.plugins.rest.common.security.jersey.XsrfCheckInterceptor;
import com.atlassian.sal.api.pluginsettings.PluginSettings;
import javax.ws.rs.*;
import javax.ws.rs.core.Response;
@Path("/myresource")
@Consumes({ "application/json" })
@Produces({ "application/json" })
public class MyResource {
private final PluginSettingsFactory pluginSettingsFactory;
public MyResource(PluginSettingsFactory pluginSettingsFactory) {
this.pluginSettingsFactory = pluginSettingsFactory;
}
@GET
@Path("/test")
@AuthenticationRequired
@XsrfCheck
public Response test() {
PluginSettings settings = pluginSettingsFactory.createGlobalSettings();
// Do something with plugin settings
return Response.ok().build();
}
}
请注意,您需要将插件设置工厂传递给该类的构造函数,以便可以在内部REST请求中访问插件设置。 另外,您需要为您的REST端点添加必要的身份验证和XSRF检查。