blob: c65451aef5ea915891d290a4579451b38a784a71 [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.common;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import org.apache.wss4j.common.crypto.Crypto;
import org.apache.wss4j.common.crypto.CryptoFactory;
import org.apache.wss4j.common.ext.WSSecurityException;
import org.apache.wss4j.common.util.Loader;
import org.w3c.dom.Element;
/**
* This abstract class encapsulates configuration for Signature + Encryption Actions.
*/
public abstract class SignatureEncryptionActionToken implements SecurityActionToken {
private static final org.slf4j.Logger LOG =
org.slf4j.LoggerFactory.getLogger(SignatureEncryptionActionToken.class);
private X509Certificate certificate;
private byte[] key;
private String user;
private Element keyInfoElement;
private Crypto crypto;
private String keyIdentifier;
private int keyIdentifierId;
private String digestAlgorithm;
private List<WSEncryptionPart> parts = new ArrayList<>();
private String optionalParts;
private String cryptoProperties;
private String tokenType;
private String tokenId;
private String sha1Value;
private String derivedKeyTokenReference;
private int derivedKeyLength;
private int derivedKeyIdentifier;
private boolean includeToken;
public X509Certificate getCertificate() {
return certificate;
}
public void setCertificate(X509Certificate certificate) {
this.certificate = certificate;
}
public byte[] getKey() {
return key;
}
public void setKey(byte[] key) {
this.key = key;
}
public Element getKeyInfoElement() {
return keyInfoElement;
}
public void setKeyInfoElement(Element keyInfoElement) {
this.keyInfoElement = keyInfoElement;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public synchronized Crypto getCrypto() throws WSSecurityException {
if (crypto != null) {
return crypto;
}
if (cryptoProperties != null) {
ClassLoader classLoader = null;
try {
classLoader = Loader.getTCL();
} catch (Exception ex) {
// Ignore
LOG.debug(ex.getMessage(), ex);
}
Properties properties = CryptoFactory.getProperties(cryptoProperties, classLoader);
crypto =
CryptoFactory.getInstance(properties, classLoader, null);
}
return crypto;
}
public synchronized void setCrypto(Crypto crypto) {
this.crypto = crypto;
}
public String getKeyIdentifier() {
return keyIdentifier;
}
public void setKeyIdentifier(String keyIdentifier) {
this.keyIdentifier = keyIdentifier;
}
public String getDigestAlgorithm() {
return digestAlgorithm;
}
public void setDigestAlgorithm(String digestAlgorithm) {
this.digestAlgorithm = digestAlgorithm;
}
public String getOptionalParts() {
return optionalParts;
}
public void setOptionalParts(String optionalParts) {
this.optionalParts = optionalParts;
}
public int getKeyIdentifierId() {
return keyIdentifierId;
}
public void setKeyIdentifierId(int keyIdentifierId) {
this.keyIdentifierId = keyIdentifierId;
}
public List<WSEncryptionPart> getParts() {
return parts;
}
public void setParts(List<WSEncryptionPart> parts) {
this.parts = parts;
}
public synchronized void setCryptoProperties(String cryptoProperties) {
this.cryptoProperties = cryptoProperties;
}
public synchronized String getCryptoProperties() {
return cryptoProperties;
}
public String getTokenType() {
return tokenType;
}
public void setTokenType(String tokenType) {
this.tokenType = tokenType;
}
public String getTokenId() {
return tokenId;
}
public void setTokenId(String tokenId) {
this.tokenId = tokenId;
}
public String getSha1Value() {
return sha1Value;
}
public void setSha1Value(String sha1Value) {
this.sha1Value = sha1Value;
}
public String getDerivedKeyTokenReference() {
return derivedKeyTokenReference;
}
public void setDerivedKeyTokenReference(String derivedKeyTokenReference) {
this.derivedKeyTokenReference = derivedKeyTokenReference;
}
public int getDerivedKeyLength() {
return derivedKeyLength;
}
public void setDerivedKeyLength(int derivedKeyLength) {
this.derivedKeyLength = derivedKeyLength;
}
public int getDerivedKeyIdentifier() {
return derivedKeyIdentifier;
}
public void setDerivedKeyIdentifier(int derivedKeyIdentifier) {
this.derivedKeyIdentifier = derivedKeyIdentifier;
}
public boolean isIncludeToken() {
return includeToken;
}
public void setIncludeToken(boolean includeToken) {
this.includeToken = includeToken;
}
}