Package org.apache.cxf.ws.security.trust
Class AbstractSTSClient
- java.lang.Object
-
- org.apache.cxf.ws.security.trust.AbstractSTSClient
-
- All Implemented Interfaces:
Configurable,InterceptorProvider
- Direct Known Subclasses:
STSClient
public abstract class AbstractSTSClient extends Object implements Configurable, InterceptorProvider
An abstract class with some functionality to invoke on a SecurityTokenService (STS) via the WS-Trust protocol.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classAbstractSTSClient.STSResponse
-
Field Summary
Fields Modifier and Type Field Description protected ObjectactAsprotected StringaddressingNamespaceprotected org.apache.wss4j.policy.model.AlgorithmSuitealgorithmSuiteprotected booleanallowRenewingprotected booleanallowRenewingAfterExpiryprotected Busbusprotected Objectclaimsprotected CallbackHandlerclaimsCallbackHandlerprotected Clientclientprotected Stringcontextprotected Map<String,Object>ctxprotected ObjectcustomContentprotected booleanenableAppliesToprotected booleanenableLifetimeprotected QNameendpointNameprotected List<Feature>featuresprotected List<Interceptor<? extends Message>>inprotected List<Interceptor<? extends Message>>inFaultprotected booleanisSecureConvprotected booleanisSpnegoprotected intkeySizeprotected StringkeyTypeprotected Stringlocationprotected Messagemessageprotected Stringnameprotected Stringnamespaceprotected ObjectonBehalfOfprotected List<Interceptor<? extends Message>>outprotected List<Interceptor<? extends Message>>outFaultprotected org.apache.neethi.Policypolicyprotected booleanrequiresEntropyprotected booleansendKeyTypeprotected booleansendRenewingprotected QNameserviceNameprotected StringsoapVersionprotected Elementtemplateprotected TLSClientParameterstlsClientParametersprotected StringtokenTypeprotected intttlprotected booleanuseCertificateForConfirmationKeyInfoprotected X509CertificateuseKeyCertificateprotected StringwsdlLocationprotected StringwspNamespace
-
Constructor Summary
Constructors Constructor Description AbstractSTSClient(Bus b)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddAppliesTo(XMLStreamWriter writer, String appliesTo)protected voidaddBinaryExchange(String binaryExchange, W3CDOMStreamWriter writer)protected voidaddClaims(XMLStreamWriter writer)protected voidaddKeySize(int keysize, W3CDOMStreamWriter writer)protected voidaddLifetime(XMLStreamWriter writer)protected voidaddRequestType(String requestType, W3CDOMStreamWriter writer)protected voidaddTokenType(XMLStreamWriter writer)protected AbstractSTSClient.STSResponsecancel(SecurityToken token)Make an "Cancel" invocation and return the response as a STSResponse ObjectvoidconfigureViaEPR(org.apache.cxf.ws.addressing.EndpointReferenceType ref, boolean useEPRWSAAddrAsMEXLocation)protected voidcreateClient()protected org.apache.wss4j.common.crypto.CryptocreateCrypto(boolean decrypt)protected CallbackHandlercreateHandler()protected SecurityTokencreateSecurityToken(Element el, byte[] requestorEntropy)protected byte[]decryptKey(Element child)protected StringfindID(Element rar, Element rur, Element rst)protected StringfindMEXLocation(org.apache.cxf.ws.addressing.EndpointReferenceType ref, boolean useEPRWSAAddrAsMEXLocation)protected StringfindMEXLocation(Element ref)protected BindingOperationInfofindOperation(String suffix)ElementgetActAsToken()Get the "ActAs" element to be sent to the STS.protected PrimitiveAssertiongetAddressingAssertion()StringgetBeanName()Get the configurable object's Bean nameprotected X509CertificategetCert(org.apache.wss4j.common.crypto.Crypto crypto)CallbackHandlergetClaimsCallbackHandler()ClientgetClient()StringgetContext()ElementgetCustomContent()Get some custom Element to be inserted into the RequestSecurityTokenprotected ElementgetDelegationSecurityToken(Object delegationObject)protected ElementgetDocumentElement(DOMSource ds)QNamegetEndpointQName()List<Feature>getFeatures()protected StringgetIDFromSTR(Element el)List<Interceptor<? extends Message>>getInFaultInterceptors()Returns the list of interceptors attached to the incoming fault interceptor chain of the object.List<Interceptor<? extends Message>>getInInterceptors()Returns the list of interceptors attached to the incoming interceptor chain of the object.intgetKeySize()StringgetLocation()ElementgetOnBehalfOfToken()Get the "OnBehalfOf" element to be sent to the STS.List<Interceptor<? extends Message>>getOutFaultInterceptors()Returns the list of interceptors attached to the outgoing fault interceptor chain of the object.List<Interceptor<? extends Message>>getOutInterceptors()Returns the list of interceptors attached to the outgoing interceptor chain of the object.Map<String,Object>getProperties()protected ObjectgetProperty(String s)Map<String,Object>getRequestContext()QNamegetServiceQName()StringgetTokenType()X509CertificategetUseKeyCertificate()StringgetWsdlLocation()StringgetWspNamespace()booleanisAllowRenewing()booleanisAllowRenewingAfterExpiry()booleanisEnableAppliesTo()booleanisRequiresEntropy()booleanisSecureConv()booleanisSpnego()protected AbstractSTSClient.STSResponseissue(String appliesTo, String action, String requestType, String binaryExchange)Make an "Issue" invocation and return the response as a STSResponse ObjectbooleanisUseCertificateForConfirmationKeyInfo()AbstractSTSClient.STSResponserenew(SecurityToken tok)Make an "Renew" invocation and return the response as a STSResponse ObjectvoidsetActAs(Object actAs)voidsetAddressingNamespace(String ad)voidsetAlgorithmSuite(org.apache.wss4j.policy.model.AlgorithmSuite ag)voidsetAllowRenewing(boolean allowRenewing)voidsetAllowRenewingAfterExpiry(boolean allowRenewingAfterExpiry)voidsetBeanName(String s)voidsetClaims(Object rstClaims)Set a Claims Object to be included in the request.voidsetClaimsCallbackHandler(CallbackHandler claimsCallbackHandler)voidsetContext(String context)voidsetCustomContent(Object customContent)voidsetEnableAppliesTo(boolean enableAppliesTo)voidsetEnableLifetime(boolean enableLifetime)voidsetEndpointName(String qn)voidsetEndpointQName(QName qn)voidsetFeatures(List<? extends Feature> f)voidsetInFaultInterceptors(List<Interceptor<? extends Message>> interceptors)voidsetInInterceptors(List<Interceptor<? extends Message>> interceptors)voidsetKeySize(int i)voidsetKeyType(String keyType)voidsetLocation(String location)voidsetMessage(Message message)voidsetNamespace(String namespace)voidsetOnBehalfOf(Object onBehalfOf)voidsetOutFaultInterceptors(List<Interceptor<? extends Message>> interceptors)voidsetOutInterceptors(List<Interceptor<? extends Message>> interceptors)voidsetPolicy(Object newPolicy)Sets the WS-P policy that is applied to communications between this client and the remote server if no value is supplied forsetWsdlLocation(String).protected voidsetPolicyInternal(String policyReference)protected voidsetPolicyInternal(org.apache.neethi.Policy newPolicy)protected voidsetPolicyInternal(Element newPolicy)voidsetProperties(Map<String,Object> p)voidsetRequiresEntropy(boolean requiresEntropy)voidsetSecureConv(boolean secureConv)voidsetSendKeyType(boolean sendKeyType)voidsetSendRenewing(boolean sendRenewing)voidsetServiceName(String qn)voidsetServiceQName(QName qn)voidsetSoap11()voidsetSoap11(boolean b)voidsetSoap12()voidsetSpnego(boolean spnego)voidsetTemplate(Element rstTemplate)voidsetTlsClientParameters(TLSClientParameters tlsClientParameters)voidsetTokenType(String tokenType)voidsetTrust(org.apache.wss4j.policy.model.Trust10 trust)voidsetTtl(int ttl)voidsetUseCertificateForConfirmationKeyInfo(boolean useCertificate)Indicate whether to use the signer's public X509 certificate for the subject confirmation key info when creating a RequestsSecurityToken message.voidsetUseKeyCertificate(X509Certificate useKeyCertificate)voidsetWsdlLocation(String wsdl)voidsetWspNamespace(String wspNamespace)protected booleanuseSecondaryParameters()protected AbstractSTSClient.STSResponsevalidate(SecurityToken tok, String tokentype)Make an "Validate" invocation and return the response as a STSResponse Objectprotected voidwriteElementsForRSTPublicKey(W3CDOMStreamWriter writer, X509Certificate cert)protected byte[]writeElementsForRSTSymmetricKey(W3CDOMStreamWriter writer, boolean wroteKeySize)protected StringwriteKeyType(W3CDOMStreamWriter writer, String keyTypeToWrite)
-
-
-
Field Detail
-
bus
protected Bus bus
-
name
protected String name
-
client
protected Client client
-
location
protected String location
-
wsdlLocation
protected String wsdlLocation
-
serviceName
protected QName serviceName
-
endpointName
protected QName endpointName
-
policy
protected org.apache.neethi.Policy policy
-
soapVersion
protected String soapVersion
-
keySize
protected int keySize
-
requiresEntropy
protected boolean requiresEntropy
-
template
protected Element template
-
customContent
protected Object customContent
-
claims
protected Object claims
-
claimsCallbackHandler
protected CallbackHandler claimsCallbackHandler
-
algorithmSuite
protected org.apache.wss4j.policy.model.AlgorithmSuite algorithmSuite
-
namespace
protected String namespace
-
addressingNamespace
protected String addressingNamespace
-
wspNamespace
protected String wspNamespace
-
onBehalfOf
protected Object onBehalfOf
-
enableAppliesTo
protected boolean enableAppliesTo
-
useCertificateForConfirmationKeyInfo
protected boolean useCertificateForConfirmationKeyInfo
-
isSecureConv
protected boolean isSecureConv
-
isSpnego
protected boolean isSpnego
-
enableLifetime
protected boolean enableLifetime
-
ttl
protected int ttl
-
sendRenewing
protected boolean sendRenewing
-
allowRenewing
protected boolean allowRenewing
-
allowRenewingAfterExpiry
protected boolean allowRenewingAfterExpiry
-
actAs
protected Object actAs
-
tokenType
protected String tokenType
-
keyType
protected String keyType
-
sendKeyType
protected boolean sendKeyType
-
message
protected Message message
-
context
protected String context
-
useKeyCertificate
protected X509Certificate useKeyCertificate
-
in
protected List<Interceptor<? extends Message>> in
-
out
protected List<Interceptor<? extends Message>> out
-
outFault
protected List<Interceptor<? extends Message>> outFault
-
inFault
protected List<Interceptor<? extends Message>> inFault
-
tlsClientParameters
protected TLSClientParameters tlsClientParameters
-
-
Constructor Detail
-
AbstractSTSClient
public AbstractSTSClient(Bus b)
-
-
Method Detail
-
getBeanName
public String getBeanName()
Description copied from interface:ConfigurableGet the configurable object's Bean name- Specified by:
getBeanNamein interfaceConfigurable- Returns:
- the bean name
-
setBeanName
public void setBeanName(String s)
-
getLocation
public String getLocation()
-
setLocation
public void setLocation(String location)
-
setMessage
public void setMessage(Message message)
-
setTtl
public void setTtl(int ttl)
-
setEnableLifetime
public void setEnableLifetime(boolean enableLifetime)
-
setSendRenewing
public void setSendRenewing(boolean sendRenewing)
-
setTlsClientParameters
public void setTlsClientParameters(TLSClientParameters tlsClientParameters)
-
setPolicy
public void setPolicy(Object newPolicy)
Sets the WS-P policy that is applied to communications between this client and the remote server if no value is supplied forsetWsdlLocation(String). AcceptsPolicyorElementas input.- Parameters:
newPolicy- the policy object- Throws:
IllegalArgumentException- ifnewPolicyis not one of the supported types.
-
setSoap12
public void setSoap12()
-
setSoap11
public void setSoap11()
-
setSoap11
public void setSoap11(boolean b)
-
setAddressingNamespace
public void setAddressingNamespace(String ad)
-
setTrust
public void setTrust(org.apache.wss4j.policy.model.Trust10 trust)
-
isRequiresEntropy
public boolean isRequiresEntropy()
-
setRequiresEntropy
public void setRequiresEntropy(boolean requiresEntropy)
-
isSecureConv
public boolean isSecureConv()
-
setSecureConv
public void setSecureConv(boolean secureConv)
-
isSpnego
public boolean isSpnego()
-
setSpnego
public void setSpnego(boolean spnego)
-
isAllowRenewing
public boolean isAllowRenewing()
-
setAllowRenewing
public void setAllowRenewing(boolean allowRenewing)
-
isAllowRenewingAfterExpiry
public boolean isAllowRenewingAfterExpiry()
-
setAllowRenewingAfterExpiry
public void setAllowRenewingAfterExpiry(boolean allowRenewingAfterExpiry)
-
isEnableAppliesTo
public boolean isEnableAppliesTo()
-
setEnableAppliesTo
public void setEnableAppliesTo(boolean enableAppliesTo)
-
getContext
public String getContext()
-
setContext
public void setContext(String context)
-
setAlgorithmSuite
public void setAlgorithmSuite(org.apache.wss4j.policy.model.AlgorithmSuite ag)
-
setWsdlLocation
public void setWsdlLocation(String wsdl)
-
getWsdlLocation
public String getWsdlLocation()
-
setServiceName
public void setServiceName(String qn)
-
setEndpointName
public void setEndpointName(String qn)
-
setServiceQName
public void setServiceQName(QName qn)
-
getServiceQName
public QName getServiceQName()
-
setEndpointQName
public void setEndpointQName(QName qn)
-
getEndpointQName
public QName getEndpointQName()
-
setActAs
public void setActAs(Object actAs)
-
setCustomContent
public void setCustomContent(Object customContent)
-
setKeySize
public void setKeySize(int i)
-
getKeySize
public int getKeySize()
-
setTokenType
public void setTokenType(String tokenType)
-
getTokenType
public String getTokenType()
-
setSendKeyType
public void setSendKeyType(boolean sendKeyType)
-
setKeyType
public void setKeyType(String keyType)
-
setOnBehalfOf
public void setOnBehalfOf(Object onBehalfOf)
-
setUseCertificateForConfirmationKeyInfo
public void setUseCertificateForConfirmationKeyInfo(boolean useCertificate)
Indicate whether to use the signer's public X509 certificate for the subject confirmation key info when creating a RequestsSecurityToken message. If the property is set to 'false', only the public key value will be provided in the request. If the property is set to 'true' the complete certificate will be sent in the request. Note: this setting is only applicable for assertions that use an asymmetric proof key
-
isUseCertificateForConfirmationKeyInfo
public boolean isUseCertificateForConfirmationKeyInfo()
-
setPolicyInternal
protected void setPolicyInternal(org.apache.neethi.Policy newPolicy)
-
setPolicyInternal
protected void setPolicyInternal(Element newPolicy)
-
setPolicyInternal
protected void setPolicyInternal(String policyReference)
-
getClient
public Client getClient() throws BusException, EndpointException
- Throws:
BusExceptionEndpointException
-
configureViaEPR
public void configureViaEPR(org.apache.cxf.ws.addressing.EndpointReferenceType ref, boolean useEPRWSAAddrAsMEXLocation)
-
findMEXLocation
protected String findMEXLocation(org.apache.cxf.ws.addressing.EndpointReferenceType ref, boolean useEPRWSAAddrAsMEXLocation)
-
createClient
protected void createClient() throws BusException, EndpointException- Throws:
BusExceptionEndpointException
-
findOperation
protected BindingOperationInfo findOperation(String suffix)
-
issue
protected AbstractSTSClient.STSResponse issue(String appliesTo, String action, String requestType, String binaryExchange) throws Exception
Make an "Issue" invocation and return the response as a STSResponse Object- Throws:
Exception
-
getOnBehalfOfToken
public Element getOnBehalfOfToken() throws Exception
Get the "OnBehalfOf" element to be sent to the STS.- Throws:
Exception
-
getActAsToken
public Element getActAsToken() throws Exception
Get the "ActAs" element to be sent to the STS.- Throws:
Exception
-
getCustomContent
public Element getCustomContent() throws Exception
Get some custom Element to be inserted into the RequestSecurityToken- Throws:
Exception
-
getDelegationSecurityToken
protected Element getDelegationSecurityToken(Object delegationObject) throws Exception
- Throws:
Exception
-
writeElementsForRSTSymmetricKey
protected byte[] writeElementsForRSTSymmetricKey(W3CDOMStreamWriter writer, boolean wroteKeySize) throws Exception
- Throws:
Exception
-
writeElementsForRSTPublicKey
protected void writeElementsForRSTPublicKey(W3CDOMStreamWriter writer, X509Certificate cert) throws Exception
- Throws:
Exception
-
addBinaryExchange
protected void addBinaryExchange(String binaryExchange, W3CDOMStreamWriter writer) throws XMLStreamException
- Throws:
XMLStreamException
-
addKeySize
protected void addKeySize(int keysize, W3CDOMStreamWriter writer) throws XMLStreamException- Throws:
XMLStreamException
-
addRequestType
protected void addRequestType(String requestType, W3CDOMStreamWriter writer) throws XMLStreamException
- Throws:
XMLStreamException
-
renew
public AbstractSTSClient.STSResponse renew(SecurityToken tok) throws Exception
Make an "Renew" invocation and return the response as a STSResponse Object- Throws:
Exception
-
getAddressingAssertion
protected PrimitiveAssertion getAddressingAssertion()
-
validate
protected AbstractSTSClient.STSResponse validate(SecurityToken tok, String tokentype) throws Exception
Make an "Validate" invocation and return the response as a STSResponse Object- Throws:
Exception
-
cancel
protected AbstractSTSClient.STSResponse cancel(SecurityToken token) throws Exception
Make an "Cancel" invocation and return the response as a STSResponse Object- Throws:
Exception
-
useSecondaryParameters
protected boolean useSecondaryParameters()
-
writeKeyType
protected String writeKeyType(W3CDOMStreamWriter writer, String keyTypeToWrite) throws XMLStreamException
- Throws:
XMLStreamException
-
getCert
protected X509Certificate getCert(org.apache.wss4j.common.crypto.Crypto crypto) throws Exception
- Throws:
Exception
-
addLifetime
protected void addLifetime(XMLStreamWriter writer) throws XMLStreamException
- Throws:
XMLStreamException
-
addAppliesTo
protected void addAppliesTo(XMLStreamWriter writer, String appliesTo) throws XMLStreamException
- Throws:
XMLStreamException
-
addTokenType
protected void addTokenType(XMLStreamWriter writer) throws XMLStreamException
- Throws:
XMLStreamException
-
addClaims
protected void addClaims(XMLStreamWriter writer) throws Exception
- Throws:
Exception
-
createSecurityToken
protected SecurityToken createSecurityToken(Element el, byte[] requestorEntropy) throws org.apache.wss4j.common.ext.WSSecurityException, org.apache.xml.security.exceptions.Base64DecodingException
- Throws:
org.apache.wss4j.common.ext.WSSecurityExceptionorg.apache.xml.security.exceptions.Base64DecodingException
-
decryptKey
protected byte[] decryptKey(Element child) throws TrustException, org.apache.wss4j.common.ext.WSSecurityException, org.apache.xml.security.exceptions.Base64DecodingException
- Throws:
TrustExceptionorg.apache.wss4j.common.ext.WSSecurityExceptionorg.apache.xml.security.exceptions.Base64DecodingException
-
createHandler
protected CallbackHandler createHandler()
-
createCrypto
protected org.apache.wss4j.common.crypto.Crypto createCrypto(boolean decrypt) throws IOException, org.apache.wss4j.common.ext.WSSecurityException- Throws:
IOExceptionorg.apache.wss4j.common.ext.WSSecurityException
-
setTemplate
public void setTemplate(Element rstTemplate)
-
setClaims
public void setClaims(Object rstClaims)
Set a Claims Object to be included in the request. This Object can be either a DOM Element, which will be copied "as is" into the request, or else a org.apache.cxf.rt.security.claims.ClaimCollection Object.
-
getOutFaultInterceptors
public List<Interceptor<? extends Message>> getOutFaultInterceptors()
Description copied from interface:InterceptorProviderReturns the list of interceptors attached to the outgoing fault interceptor chain of the object.- Specified by:
getOutFaultInterceptorsin interfaceInterceptorProvider- Returns:
Listoutgoing fault interceptor chain
-
getInFaultInterceptors
public List<Interceptor<? extends Message>> getInFaultInterceptors()
Description copied from interface:InterceptorProviderReturns the list of interceptors attached to the incoming fault interceptor chain of the object.- Specified by:
getInFaultInterceptorsin interfaceInterceptorProvider- Returns:
Listincoming fault interceptor chain
-
getInInterceptors
public List<Interceptor<? extends Message>> getInInterceptors()
Description copied from interface:InterceptorProviderReturns the list of interceptors attached to the incoming interceptor chain of the object.- Specified by:
getInInterceptorsin interfaceInterceptorProvider- Returns:
Listincoming interceptor chain
-
getOutInterceptors
public List<Interceptor<? extends Message>> getOutInterceptors()
Description copied from interface:InterceptorProviderReturns the list of interceptors attached to the outgoing interceptor chain of the object.- Specified by:
getOutInterceptorsin interfaceInterceptorProvider- Returns:
Listoutgoing interceptor chain
-
setInInterceptors
public void setInInterceptors(List<Interceptor<? extends Message>> interceptors)
-
setInFaultInterceptors
public void setInFaultInterceptors(List<Interceptor<? extends Message>> interceptors)
-
setOutInterceptors
public void setOutInterceptors(List<Interceptor<? extends Message>> interceptors)
-
setOutFaultInterceptors
public void setOutFaultInterceptors(List<Interceptor<? extends Message>> interceptors)
-
getClaimsCallbackHandler
public CallbackHandler getClaimsCallbackHandler()
-
setClaimsCallbackHandler
public void setClaimsCallbackHandler(CallbackHandler claimsCallbackHandler)
-
getWspNamespace
public String getWspNamespace()
-
setWspNamespace
public void setWspNamespace(String wspNamespace)
-
getUseKeyCertificate
public X509Certificate getUseKeyCertificate()
-
setUseKeyCertificate
public void setUseKeyCertificate(X509Certificate useKeyCertificate)
-
setNamespace
public void setNamespace(String namespace)
-
-