blob: 942b56bc6e8546b404626ae4fb705d92fa217022 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.apache.wss4j.dom.str;
import java.security.Principal;
import java.security.PublicKey;
import java.security.cert.X509Certificate;
import org.apache.wss4j.dom.str.STRParser.REFERENCE_TYPE;
/**
* This class holds the results from parsing a SecurityTokenReference Element by a STRParser implementation.
*/
public class STRParserResult {
private X509Certificate[] certs;
private byte[] secretKey;
private PublicKey publicKey;
private Principal principal;
private boolean trustedCredential;
private REFERENCE_TYPE referenceType;
/**
* Get the X509Certificates associated with this SecurityTokenReference
* @return the X509Certificates associated with this SecurityTokenReference
*/
public X509Certificate[] getCertificates() {
return certs;
}
/**
* Get the Principal associated with this SecurityTokenReference
* @return the Principal associated with this SecurityTokenReference
*/
public Principal getPrincipal() {
if (principal == null && certs != null && certs.length > 0) {
principal = certs[0].getSubjectX500Principal();
}
return principal;
}
/**
* Get the PublicKey associated with this SecurityTokenReference
* @return the PublicKey associated with this SecurityTokenReference
*/
public PublicKey getPublicKey() {
return publicKey;
}
/**
* Get the Secret Key associated with this SecurityTokenReference
* @return the Secret Key associated with this SecurityTokenReference
*/
public byte[] getSecretKey() {
return secretKey;
}
/**
* Get whether the returned credential is already trusted or not. This is currently
* applicable in the case of a credential extracted from a trusted HOK SAML Assertion,
* and a BinarySecurityToken that has been processed by a Validator. In these cases,
* the SignatureProcessor does not need to verify trust on the credential.
* @return true if trust has already been verified on the returned Credential
*/
public boolean isTrustedCredential() {
return trustedCredential;
}
/**
* Get how the certificates were referenced
* @return how the certificates were referenced
*/
public REFERENCE_TYPE getCertificatesReferenceType() {
return referenceType;
}
public void setCerts(X509Certificate[] certs) {
this.certs = certs;
}
public void setSecretKey(byte[] secretKey) {
this.secretKey = secretKey;
}
public void setPublicKey(PublicKey publicKey) {
this.publicKey = publicKey;
}
public void setPrincipal(Principal principal) {
this.principal = principal;
}
public void setTrustedCredential(boolean trustedCredential) {
this.trustedCredential = trustedCredential;
}
public void setReferenceType(REFERENCE_TYPE referenceType) {
this.referenceType = referenceType;
}
}