All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.swagger.parser.util.HostAuthorizationValue Maven / Gradle / Ivy

There is a newer version: 2.0.0-rc1
Show newest version
package io.swagger.parser.util;

import io.swagger.models.auth.AuthorizationValue;

import java.net.URL;
import java.util.regex.Pattern;

public class HostAuthorizationValue extends AuthorizationValue implements ManagedValue {
    private final HostMatcher matcher;

    public HostAuthorizationValue(String host, String name, String value, String type) {
        this(new ExactHostMatcher(host), name, value, type);
    }

    public HostAuthorizationValue(Pattern host, String name, String value, String type) {
        this(new RxHostMatcher(host), name, value, type);
    }

    protected HostAuthorizationValue(HostMatcher matcher, String name, String value, String type) {
        super(name, value, type);
        this.matcher = matcher;
    }

    @Override
    public boolean process(URL url) {
        return matcher.match(url.getHost());
    }

    protected interface HostMatcher {

        boolean match(String host);
    }

    protected static class ExactHostMatcher implements HostMatcher {
        private final String host;

        public ExactHostMatcher(String host) {
            this.host = host;
        }

        @Override
        public boolean match(String host) {
            return this.host.equalsIgnoreCase(host);
        }
    }

    protected static class RxHostMatcher implements HostMatcher {
        private final Pattern rx;

        public RxHostMatcher(Pattern rx) {
            this.rx = rx;
        }

        @Override
        public boolean match(String host) {
            return rx.matcher(host).matches();
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy