package org.apereo.cas.services;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import java.io.Serializable;
import java.net.URL;
/**
* Defines the proxying policy for a registered service.
* While a service may be allowed proxying on a general level,
* it may still want to restrict who is authorizes to receive
* the proxy granting ticket. This interface defines the behavior
* for both options.
*
* @author Misagh Moayyed
* @since 4.1.0
*/
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY)
public interface RegisteredServiceProxyPolicy extends Serializable {
/**
* Determines whether the service is allowed proxy
* capabilities.
*
* @return true, if is allowed to proxy
*/
boolean isAllowedToProxy();
/**
* Determines if the given proxy callback
* url is authorized and allowed to
* request proxy access.
*
* @param pgtUrl the pgt url
* @return true, if url allowed.
*/
boolean isAllowedProxyCallbackUrl(URL pgtUrl);
}