/** * 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.cxf.sts; import java.util.List; import javax.security.auth.callback.CallbackHandler; import org.apache.cxf.sts.service.EncryptionProperties; import org.apache.cxf.sts.token.realm.Relationship; import org.apache.cxf.sts.token.realm.RelationshipResolver; import org.apache.cxf.sts.token.realm.SAMLRealmCodec; import org.apache.cxf.ws.security.sts.provider.STSException; import org.apache.wss4j.common.crypto.Crypto; /** * This MBean represents the properties associated with the STS. It contains a single operation * "configureProperties()" which allows subclasses to perform any custom loading/processing of the * properties. */ public interface STSPropertiesMBean { /** * Load/process the CallbackHandler, Crypto objects, etc. */ void configureProperties() throws STSException; /** * Set the CallbackHandler object. * @param callbackHandler the CallbackHandler object. */ void setCallbackHandler(CallbackHandler callbackHandler); /** * Get the CallbackHandler object. * @return the CallbackHandler object. */ CallbackHandler getCallbackHandler(); /** * Set the signature Crypto object * @param signatureCrypto the signature Crypto object */ void setSignatureCrypto(Crypto signatureCrypto); /** * Get the signature Crypto object * @return the signature Crypto object */ Crypto getSignatureCrypto(); /** * Set the username/alias to use to sign any issued tokens * @param signatureUsername the username/alias to use to sign any issued tokens */ void setSignatureUsername(String signatureUsername); /** * Get the username/alias to use to sign any issued tokens * @return the username/alias to use to sign any issued tokens */ String getSignatureUsername(); /** * Set the encryption Crypto object * @param encryptionCrypto the encryption Crypto object */ void setEncryptionCrypto(Crypto encryptionCrypto); /** * Get the encryption Crypto object * @return the encryption Crypto object */ Crypto getEncryptionCrypto(); /** * Set the username/alias to use to encrypt any issued tokens. This is a default value - it * can be configured per Service in the ServiceMBean. * @param encryptionUsername the username/alias to use to encrypt any issued tokens */ void setEncryptionUsername(String encryptionUsername); /** * Get the username/alias to use to encrypt any issued tokens. This is a default value - it * can be configured per Service in the ServiceMBean * @return the username/alias to use to encrypt any issued tokens */ String getEncryptionUsername(); /** * Set the EncryptionProperties to use. * @param encryptionProperties the EncryptionProperties to use. */ void setEncryptionProperties(EncryptionProperties encryptionProperties); /** * Get the EncryptionProperties to use. * @return the EncryptionProperties to use. */ EncryptionProperties getEncryptionProperties(); /** * Set the STS issuer name * @param issuer the STS issuer name */ void setIssuer(String issuer); /** * Get the STS issuer name * @return the STS issuer name */ String getIssuer(); /** * Set the SignatureProperties to use. * @param signatureProperties the SignatureProperties to use. */ void setSignatureProperties(SignatureProperties signatureProperties); /** * Get the SignatureProperties to use. * @return the SignatureProperties to use. */ SignatureProperties getSignatureProperties(); /** * Set the RealmParser object to use. * @param realmParser the RealmParser object to use. */ void setRealmParser(RealmParser realmParser); /** * Get the RealmParser object to use. * @return the RealmParser object to use. */ RealmParser getRealmParser(); /** * Set the IdentityMapper object to use. * @param identityMapper the IdentityMapper object to use. */ void setIdentityMapper(IdentityMapper identityMapper); /** * Get the IdentityMapper object to use. * @return the IdentityMapper object to use. */ IdentityMapper getIdentityMapper(); /** * Set the list of Relationship objects to use. * @param relationships the List<Relationship> object to use. */ void setRelationships(List<Relationship> relationships); /** * Get the list of Relationship objects to use. * @return the List<Relationship> object to use. */ List<Relationship> getRelationships(); /** * Get the RelationshipResolver objects to use. * @return the RelationshipResolver object to use. */ RelationshipResolver getRelationshipResolver(); /** * Get the SAML Realm Codec object to use. * @return the SAMLRealmCodec object to use. */ SAMLRealmCodec getSamlRealmCodec(); /** * Set the SAML Realm Codec object to use. * @param samlRealmCodec the SAMLRealmCodec object to use. */ void setSamlRealmCodec(SAMLRealmCodec samlRealmCodec); /** * Get whether to validate a client Public Key or Certificate presented as part of a * UseKey element. This is true by default. */ boolean isValidateUseKey(); /** * Set whether to validate a client Public Key or Certificate presented as part of a * UseKey element. If this is set to true (the default), the public key must be trusted * by the Signature Crypto of the STS. * * @param validateUseKey whether to validate a client UseKey or not. */ void setValidateUseKey(boolean validateUseKey); }