Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
import org.apache.commons.codec.binary.Base64;
import org.jenkinsci.Symbol;
import org.kohsuke.accmod.Restricted;
import org.kohsuke.accmod.restrictions.Beta;
import org.kohsuke.accmod.restrictions.NoExternalUse;
import org.kohsuke.stapler.QueryParameter;
import org.kohsuke.stapler.Stapler;
Expand All @@ -51,6 +52,7 @@
import java.security.interfaces.RSAPublicKey;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.CheckForNull;

import static jenkins.security.ResourceDomainFilter.ERROR_RESPONSE;

Expand All @@ -61,21 +63,23 @@
* @see ResourceDomainFilter
* @see ResourceDomainRootAction
*
* @since 2.200
* @since 2.200, unrestricted since TODO
*/
@Extension(ordinal = JenkinsLocationConfiguration.ORDINAL-1) // sort just below the regular location config
@Restricted(NoExternalUse.class)
@Restricted(Beta.class)
@Symbol("resourceRoot")
public class ResourceDomainConfiguration extends GlobalConfiguration {
public final class ResourceDomainConfiguration extends GlobalConfiguration {

private static final Logger LOGGER = Logger.getLogger(ResourceDomainConfiguration.class.getName());

private String url;

@Restricted(NoExternalUse.class)
public ResourceDomainConfiguration() {
load();
}

@Restricted(NoExternalUse.class)
@POST
public FormValidation doCheckUrl(@QueryParameter("url") String resourceRootUrlString) {
Jenkins.get().checkPermission(Jenkins.ADMINISTER);
Expand Down Expand Up @@ -180,11 +184,12 @@ private FormValidation checkUrl(String resourceRootUrlString, boolean allowOnlin
}
}

@CheckForNull
public String getUrl() {
return url;
}

public void setUrl(String url) {
public void setUrl(@CheckForNull String url) {
if (checkUrl(url, false).kind == FormValidation.Kind.OK) {
// only accept valid configurations, both with and without URL, but allow for networking issues
url = Util.fixEmpty(url);
Expand All @@ -205,6 +210,7 @@ public void setUrl(String url) {
* @param req the request to check
* @return whether the request is a resource URL request
*/
@Restricted(NoExternalUse.class)
public static boolean isResourceRequest(HttpServletRequest req) {
if (!isResourceDomainConfigured()) {
return false;
Expand Down Expand Up @@ -241,6 +247,7 @@ public static boolean isResourceRequest(HttpServletRequest req) {
*
* @return whether a domain has been configured
*/
@Restricted(NoExternalUse.class)
public static boolean isResourceDomainConfigured() {
String resourceRootUrl = get().getUrl();
if (resourceRootUrl == null || resourceRootUrl.isEmpty()) {
Expand Down