org.globus.gsi.trustmanager.IdentityChecker Maven / Gradle / Ivy
/*
* Copyright 1999-2010 University of Chicago
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is
* distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied.
*
* See the License for the specific language governing permissions and limitations under the License.
*/
package org.globus.gsi.trustmanager;
import org.globus.gsi.util.ProxyCertificateUtil;
import java.security.cert.CertPathValidatorException;
import java.security.cert.X509Certificate;
import org.globus.gsi.GSIConstants;
/**
* Checks to see if a limited proxy is acceptable (if the chain has a limited proxy).
* Also, sets the identity certificate in the certificate path validator.
*/
public class IdentityChecker implements CertificateChecker {
private X509ProxyCertPathValidator proxyCertValidator;
public IdentityChecker(X509ProxyCertPathValidator proxyCertPathValidator) {
this.proxyCertValidator = proxyCertPathValidator;
}
/**
* Method that sets the identity of the certificate path. Also checks if
* limited proxy is acceptable.
*
* @throws CertPathValidatorException If limited proxies are not accepted
* and the chain has a limited proxy.
*/
public void invoke(X509Certificate cert, GSIConstants.CertificateType certType) throws CertPathValidatorException {
if (proxyCertValidator.getIdentityCertificate() == null) {
// check if limited
if (ProxyCertificateUtil.isLimitedProxy(certType)) {
proxyCertValidator.setLimited(true);
if (proxyCertValidator.isRejectLimitedProxy()) {
throw new CertPathValidatorException(
"Limited proxy not accepted");
}
}
// set the identity cert
if (!ProxyCertificateUtil.isImpersonationProxy(certType)) {
proxyCertValidator.setIdentityCert(cert);
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy