/**
* Copyright (c) Codice Foundation
* <p>
* This is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser
* General Public License as published by the Free Software Foundation, either version 3 of the
* License, or any later version.
* <p>
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
* even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details. A copy of the GNU Lesser General Public License
* is distributed along with this program and can be found at
* <http://www.gnu.org/licenses/lgpl.html>.
*/
package org.codice.ddf.security.handler.cas;
import org.codice.ddf.configuration.PropertyResolver;
import org.jasig.cas.client.proxy.ProxyGrantingTicketStorage;
import org.jasig.cas.client.validation.Assertion;
import org.jasig.cas.client.validation.Cas20ProxyTicketValidator;
import org.jasig.cas.client.validation.TicketValidationException;
import org.jasig.cas.client.validation.TicketValidator;
public class CasProxyTicketValidator implements TicketValidator {
private Cas20ProxyTicketValidator proxyTicketValidator;
private PropertyResolver proxyCallbackUrl;
private boolean acceptAnyProxy;
private ProxyGrantingTicketStorage proxyGrantingTicketStorage;
@Override
public Assertion validate(String ticket, String service) throws TicketValidationException {
return proxyTicketValidator.validate(ticket, service);
}
public void setCasServerUrl(String serverUrl) {
proxyTicketValidator = new Cas20ProxyTicketValidator(PropertyResolver.resolveProperties(
serverUrl));
proxyTicketValidator.setProxyCallbackUrl(proxyCallbackUrl.getResolvedString());
proxyTicketValidator.setAcceptAnyProxy(acceptAnyProxy);
proxyTicketValidator.setProxyGrantingTicketStorage(proxyGrantingTicketStorage);
}
public void setProxyCallbackUrl(String proxyCallbackUrl) {
this.proxyCallbackUrl = new PropertyResolver(proxyCallbackUrl);
if (proxyTicketValidator != null) {
proxyTicketValidator.setProxyCallbackUrl(this.proxyCallbackUrl.getResolvedString());
}
}
public void setAcceptAnyProxy(boolean acceptAnyProxy) {
this.acceptAnyProxy = acceptAnyProxy;
if (proxyTicketValidator != null) {
proxyTicketValidator.setAcceptAnyProxy(acceptAnyProxy);
}
}
public void setProxyGrantingTicketStorage(
ProxyGrantingTicketStorage proxyGrantingTicketStorage) {
this.proxyGrantingTicketStorage = proxyGrantingTicketStorage;
if (proxyTicketValidator != null) {
proxyTicketValidator.setProxyGrantingTicketStorage(proxyGrantingTicketStorage);
}
}
}