// Path: spring-security-cas-extension/src/main/java/com/kakawait/spring/security/cas/client/ticket/ProxyTicketProvider.java
// public interface ProxyTicketProvider {
// 
//     /**
//      * Ask proxy ticket for a given service to CAS server.
//      *
//      * @param service service name or (mostly) service URL
//      * @return the proxy ticket or {@code null} if CAS server won't be able to return us a proxy ticket for given
//      * {@code service}
//      */
//     String getProxyTicket(String service);
// }


import com.kakawait.spring.security.cas.client.ticket.ProxyTicketProvider;
import org.springframework.http.HttpRequest;
import org.springframework.http.client.ClientHttpRequestExecution;
import org.springframework.http.client.ClientHttpRequestInterceptor;
import org.springframework.http.client.ClientHttpResponse;
import org.springframework.http.client.support.HttpRequestWrapper;
import org.springframework.security.cas.ServiceProperties;
import org.springframework.util.StringUtils;
import org.springframework.web.util.UriComponentsBuilder;
import java.io.IOException;
import java.net.URI;
package com.kakawait.spring.security.cas.client;



/**
 * Implementation of {@link ClientHttpRequestInterceptor} to apply Proxy ticket query parameter.
 *
 * @see ProxyTicketProvider
 * @author Jonathan Coueraud
 * @author Thibaud Leprêtre
 * @since 0.7.0
 */
public class CasAuthorizationInterceptor implements ClientHttpRequestInterceptor {

    private final ServiceProperties serviceProperties;

// Path: spring-security-cas-extension/src/main/java/com/kakawait/spring/security/cas/client/ticket/ProxyTicketProvider.java
// public interface ProxyTicketProvider {
// 
//     /**
//      * Ask proxy ticket for a given service to CAS server.
//      *
//      * @param service service name or (mostly) service URL
//      * @return the proxy ticket or {@code null} if CAS server won't be able to return us a proxy ticket for given
//      * {@code service}
//      */
//     String getProxyTicket(String service);
// }


// Path: spring-security-cas-extension/src/main/java/com/kakawait/spring/security/cas/client/CasAuthorizationInterceptor.java
import com.kakawait.spring.security.cas.client.ticket.ProxyTicketProvider;
import org.springframework.http.HttpRequest;
import org.springframework.http.client.ClientHttpRequestExecution;
import org.springframework.http.client.ClientHttpRequestInterceptor;
import org.springframework.http.client.ClientHttpResponse;
import org.springframework.http.client.support.HttpRequestWrapper;
import org.springframework.security.cas.ServiceProperties;
import org.springframework.util.StringUtils;
import org.springframework.web.util.UriComponentsBuilder;
import java.io.IOException;
import java.net.URI;

package com.kakawait.spring.security.cas.client;



/**
 * Implementation of {@link ClientHttpRequestInterceptor} to apply Proxy ticket query parameter.
 *
 * @see ProxyTicketProvider
 * @author Jonathan Coueraud
 * @author Thibaud Leprêtre
 * @since 0.7.0
 */
public class CasAuthorizationInterceptor implements ClientHttpRequestInterceptor {

    private final ServiceProperties serviceProperties;

    private final ProxyTicketProvider proxyTicketProvider;