Package org.apache.wss4j.dom.handler
Class WSHandler
java.lang.Object
org.apache.wss4j.dom.handler.WSHandler
Extracted from WSDoAllReceiver and WSDoAllSender
Extended to all passwordless UsernameTokens and configurable identities.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected booleancheckReceiverResults(List<WSSecurityEngineResult> wsResult, List<Integer> actions) protected booleancheckReceiverResultsAnyOrder(List<WSSecurityEngineResult> wsResult, List<Integer> actions) protected voidcheckSignatureConfirmation(RequestData reqData, WSHandlerResult handlerResults) protected voiddecodeAlgorithmSuite(RequestData reqData) protected booleandecodeBooleanConfigValue(Object messageContext, String configTag, boolean defaultToTrue) protected voiddecodeDecryptionParameter(RequestData reqData) protected voiddecodeEncryptionParameter(RequestData reqData) protected intdecodeFutureTimeToLive(RequestData reqData, boolean timestamp) Decode the FutureTimeToLive parameter for either a Timestamp or a UsernameToken Created element, depending on the boolean argumentprotected StringdecodePasswordType(RequestData reqData) protected voiddecodeSignatureParameter(RequestData reqData) protected voiddecodeSignatureParameter2(RequestData reqData) intdecodeTimeToLive(RequestData reqData, boolean timestamp) Decode the TimeToLive parameter for either a Timestamp or a UsernameToken Created element, depending on the boolean argumentprotected voiddecodeUTParameter(RequestData reqData) protected voiddoReceiverAction(List<Integer> actions, RequestData reqData) protected voiddoSenderAction(Document doc, RequestData reqData, List<HandlerAction> actions, boolean isRequest) Performs all defined security actions to set-up the SOAP request.getCallbackHandler(String callbackHandlerClass, String callbackHandlerRef, RequestData requestData) Get a CallbackHandler instance.Returns the classloader to be used for loading the callback classabstract Objectabstract StringgetPassword(Object msgContext) getPasswordCallbackHandler(RequestData reqData) Get a CallbackHandler instance to obtain passwords.getPasswordCB(String username, int doAction, CallbackHandler callbackHandler, RequestData requestData) Get a password callback (WSPasswordCallback object) from a CallbackHandler instanceprotected PasswordEncryptorgetPasswordEncryptor(RequestData requestData) abstract ObjectgetProperty(Object msgContext, String key) Looks up key first viagetOption(String)and if not found there, viagetProperty(Object, String)getStringOption(String key) Returns the option onname.protected CryptoloadCrypto(String cryptoPropertyFile, String cryptoPropertyRefId, RequestData requestData) Load a Crypto instance.protected CryptoloadCryptoFromPropertiesFile(String propFilename, RequestData reqData) A hook to allow subclass to load Crypto instances from property files in a different way.protected CryptoloadDecryptionCrypto(RequestData requestData) Hook to allow subclasses to load their Decryption Crypto however they see fit.protected CryptoloadEncryptionCrypto(RequestData requestData) Hook to allow subclasses to load their Encryption Crypto however they see fit.loadSignatureCrypto(RequestData requestData) Hook to allow subclasses to load their Signature creation Crypto however they see fit.loadSignatureVerificationCrypto(RequestData requestData) Hook to allow subclasses to load their Signature verification Crypto however they see fit.abstract voidsetPassword(Object msgContext, String password) abstract voidsetProperty(Object msgContext, String key, Object value)
-
Field Details
-
cryptos
-
-
Constructor Details
-
WSHandler
public WSHandler()
-
-
Method Details
-
doSenderAction
protected void doSenderAction(Document doc, RequestData reqData, List<HandlerAction> actions, boolean isRequest) throws WSSecurityException Performs all defined security actions to set-up the SOAP request.- Parameters:
doc- the request as DOM documentreqData- a data storage to pass values around between methodsactions- a list holding the actions to do in the order defined in the deployment file or property, plus an optional associated SecurityActionToken object for that Action- Throws:
WSSecurityException
-
doReceiverAction
protected void doReceiverAction(List<Integer> actions, RequestData reqData) throws WSSecurityException - Throws:
WSSecurityException
-
checkReceiverResults
protected boolean checkReceiverResults(List<WSSecurityEngineResult> wsResult, List<Integer> actions) -
checkReceiverResultsAnyOrder
protected boolean checkReceiverResultsAnyOrder(List<WSSecurityEngineResult> wsResult, List<Integer> actions) -
checkSignatureConfirmation
protected void checkSignatureConfirmation(RequestData reqData, WSHandlerResult handlerResults) throws WSSecurityException - Throws:
WSSecurityException
-
decodeUTParameter
- Throws:
WSSecurityException
-
decodeSignatureParameter
- Throws:
WSSecurityException
-
decodeAlgorithmSuite
- Throws:
WSSecurityException
-
decodeEncryptionParameter
- Throws:
WSSecurityException
-
decodeTimeToLive
Decode the TimeToLive parameter for either a Timestamp or a UsernameToken Created element, depending on the boolean argument -
decodeFutureTimeToLive
Decode the FutureTimeToLive parameter for either a Timestamp or a UsernameToken Created element, depending on the boolean argument -
decodePasswordType
- Throws:
WSSecurityException
-
decodeBooleanConfigValue
protected boolean decodeBooleanConfigValue(Object messageContext, String configTag, boolean defaultToTrue) throws WSSecurityException - Throws:
WSSecurityException
-
loadSignatureCrypto
Hook to allow subclasses to load their Signature creation Crypto however they see fit.- Parameters:
requestData- the RequestData object- Returns:
- a Crypto instance to use for Signature creation
- Throws:
WSSecurityException
-
loadSignatureVerificationCrypto
Hook to allow subclasses to load their Signature verification Crypto however they see fit.- Parameters:
requestData- the RequestData object- Returns:
- a Crypto instance to use for Signature verification
- Throws:
WSSecurityException
-
loadDecryptionCrypto
Hook to allow subclasses to load their Decryption Crypto however they see fit.- Parameters:
requestData- the RequestData object- Returns:
- a Crypto instance to use for Decryption creation/verification
- Throws:
WSSecurityException
-
loadEncryptionCrypto
Hook to allow subclasses to load their Encryption Crypto however they see fit.- Parameters:
requestData- the RequestData object- Returns:
- a Crypto instance to use for Encryption creation/verification
- Throws:
WSSecurityException
-
loadCrypto
protected Crypto loadCrypto(String cryptoPropertyFile, String cryptoPropertyRefId, RequestData requestData) throws WSSecurityException Load a Crypto instance. Firstly, it tries to use the cryptoPropertyRefId tag to retrieve a Crypto object via a custom reference Id. Failing this, it tries to load the crypto instance via the cryptoPropertyFile tag.- Parameters:
requestData- the RequestData object- Returns:
- a Crypto instance to use for Encryption creation/verification
- Throws:
WSSecurityException
-
loadCryptoFromPropertiesFile
protected Crypto loadCryptoFromPropertiesFile(String propFilename, RequestData reqData) throws WSSecurityException A hook to allow subclass to load Crypto instances from property files in a different way.- Parameters:
propFilename- The property file namereqData- The RequestData object- Returns:
- A Crypto instance that has been loaded
- Throws:
WSSecurityException
-
getCallbackHandler
public CallbackHandler getCallbackHandler(String callbackHandlerClass, String callbackHandlerRef, RequestData requestData) throws WSSecurityException Get a CallbackHandler instance. First try to get an instance via the callbackHandlerRef on the message context. Failing that, try to load a new instance of the CallbackHandler via the callbackHandlerClass argument.- Parameters:
callbackHandlerClass- The class name of the CallbackHandler instancecallbackHandlerRef- The reference name of the CallbackHandler instancerequestData- The RequestData which supplies the message context- Returns:
- a CallbackHandler instance
- Throws:
WSSecurityException
-
getPasswordCallbackHandler
Get a CallbackHandler instance to obtain passwords.- Parameters:
reqData- The RequestData which supplies the message context- Returns:
- the CallbackHandler instance to obtain passwords.
- Throws:
WSSecurityException
-
getPasswordEncryptor
-
getPasswordCB
public WSPasswordCallback getPasswordCB(String username, int doAction, CallbackHandler callbackHandler, RequestData requestData) throws WSSecurityException Get a password callback (WSPasswordCallback object) from a CallbackHandler instance- Parameters:
username- The username to supply to the CallbackHandlerdoAction- The action to performcallbackHandler- The CallbackHandler instancerequestData- The RequestData which supplies the message context- Returns:
- the WSPasswordCallback object containing the password
- Throws:
WSSecurityException
-
decodeSignatureParameter2
- Throws:
WSSecurityException
-
decodeDecryptionParameter
- Throws:
WSSecurityException
-
getString
Looks up key first viagetOption(String)and if not found there, viagetProperty(Object, String)- Parameters:
key- the key to search for. May not be null.mc- the message context to search.- Returns:
- the value found.
- Throws:
IllegalArgumentException- ifkeyis null.
-
getStringOption
Returns the option onname.- Parameters:
key- the non-null key of the option.- Returns:
- the option on
keyifkeyexists and is of type java.lang.String; otherwise null.
-
getClassLoader
Returns the classloader to be used for loading the callback class- Returns:
- class loader
-
getOption
-
getProperty
-
setProperty
-
getPassword
-
setPassword
-