Class EncryptInterceptor
java.lang.Object
org.apache.catalina.tribes.group.ChannelInterceptorBase
org.apache.catalina.tribes.group.interceptors.EncryptInterceptor
- All Implemented Interfaces:
- ChannelInterceptor,- EncryptInterceptorMBean,- Heartbeat,- MembershipListener
Adds encryption using a pre-shared key.
 The length of the key (in bytes) must be acceptable for the encryption
 algorithm being used. For example, for AES, you must use a key of either
 16 bytes (128 bits, 24 bytes 192 bits), or 32 bytes (256 bits).
 You can supply the raw key bytes by calling 
setEncryptionKey(byte[])
 or the hex-encoded binary bytes by calling
 setEncryptionKey(String).- 
Nested Class SummaryNested classes/interfaces inherited from interface org.apache.catalina.tribes.ChannelInterceptorChannelInterceptor.InterceptorEvent
- 
Field SummaryFieldsFields inherited from class org.apache.catalina.tribes.group.ChannelInterceptorBaseoptionFlag
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionGets the encryption algorithm being used to encrypt and decrypt channel messages.byte[]Gets the encryption key being used for encryption and decryption.Gets the JCA provider name used for cryptographic activities.voidthemessageReceivedis invoked when a message is received.voidsendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload) ThesendMessagemethod is called when a message is being sent to one more destinations.voidsetEncryptionAlgorithm(String algorithm) Sets the encryption algorithm to be used for encrypting and decrypting channel messages.voidsetEncryptionKey(byte[] key) Sets the encryption key for encryption and decryption.voidsetEncryptionKey(String keyBytes) Gets the encryption key being used for encryption and decryption.voidsetEncryptionKeyString(String encryptionKeyString) voidsetProviderName(String provider) Sets the JCA provider name used for cryptographic activities.voidstart(int svc) Starts up the channel.voidstop(int svc) Shuts down the channel.Methods inherited from class org.apache.catalina.tribes.group.ChannelInterceptorBasefireInterceptorEvent, getChannel, getLocalMember, getMember, getMembers, getNext, getOptionFlag, getPrevious, hasMembers, heartbeat, memberAdded, memberDisappeared, okToProcess, setChannel, setNext, setOptionFlag, setPreviousMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.catalina.tribes.group.interceptors.EncryptInterceptorMBeangetOptionFlag, setOptionFlag
- 
Field Details- 
sm
 
- 
- 
Constructor Details- 
EncryptInterceptorpublic EncryptInterceptor()
 
- 
- 
Method Details- 
startDescription copied from class:ChannelInterceptorBaseStarts up the channel. This can be called multiple times for individual services to start The svc parameter can be the logical or value of any constants- Specified by:
- startin interface- ChannelInterceptor
- Overrides:
- startin class- ChannelInterceptorBase
- Parameters:
- svc- int value of
 DEFAULT - will start all services
 MBR_RX_SEQ - starts the membership receiver
 MBR_TX_SEQ - starts the membership broadcaster
 SND_TX_SEQ - starts the replication transmitter
 SND_RX_SEQ - starts the replication receiver
- Throws:
- ChannelException- if a startup error occurs or the service is already started.
- See Also:
 
- 
stopDescription copied from class:ChannelInterceptorBaseShuts down the channel. This can be called multiple times for individual services to shutdown The svc parameter can be the logical or value of any constants- Specified by:
- stopin interface- ChannelInterceptor
- Overrides:
- stopin class- ChannelInterceptorBase
- Parameters:
- svc- int value of
 DEFAULT - will shutdown all services
 MBR_RX_SEQ - stops the membership receiver
 MBR_TX_SEQ - stops the membership broadcaster
 SND_TX_SEQ - stops the replication transmitter
 SND_RX_SEQ - stops the replication receiver
- Throws:
- ChannelException- if a startup error occurs or the service is already started.
- See Also:
 
- 
sendMessagepublic void sendMessage(Member[] destination, ChannelMessage msg, InterceptorPayload payload) throws ChannelException Description copied from interface:ChannelInterceptorThesendMessagemethod is called when a message is being sent to one more destinations. The interceptor can modify any of the parameters and then pass on the message down the stack by invokinggetNext().sendMessage(destination,msg,payload)
 Alternatively the interceptor can stop the message from being sent by not invokinggetNext().sendMessage(destination,msg,payload)
 If the message is to be sent asynchronous the application can be notified of completion and errors by passing in an error handler attached to a payload object.
 The ChannelMessage.getAddress contains Channel.getLocalMember, and can be overwritten to simulate a message sent from another node.- Specified by:
- sendMessagein interface- ChannelInterceptor
- Overrides:
- sendMessagein class- ChannelInterceptorBase
- Parameters:
- destination- Member[] - the destination for this message
- msg- ChannelMessage - the message to be sent
- payload- InterceptorPayload - the payload, carrying an error handler and future useful data, can be null
- Throws:
- ChannelException- if a serialization error happens.
- See Also:
 
- 
messageReceivedDescription copied from interface:ChannelInterceptorthemessageReceivedis invoked when a message is received.ChannelMessage.getAddress()is the sender, or the reply-to address if it has been overwritten.- Specified by:
- messageReceivedin interface- ChannelInterceptor
- Overrides:
- messageReceivedin class- ChannelInterceptorBase
- Parameters:
- msg- ChannelMessage
 
- 
setEncryptionAlgorithmSets the encryption algorithm to be used for encrypting and decrypting channel messages. You must specify thealgorithm/mode/padding. Information on standard algorithm names may be found in the Java documentation. Default isAES/CBC/PKCS5Padding.- Specified by:
- setEncryptionAlgorithmin interface- EncryptInterceptorMBean
- Parameters:
- algorithm- The algorithm to use.
 
- 
getEncryptionAlgorithmGets the encryption algorithm being used to encrypt and decrypt channel messages.- Specified by:
- getEncryptionAlgorithmin interface- EncryptInterceptorMBean
- Returns:
- The algorithm being used, including the algorithm mode and padding.
 
- 
setEncryptionKeypublic void setEncryptionKey(byte[] key) Sets the encryption key for encryption and decryption. The length of the key must be appropriate for the algorithm being used.- Specified by:
- setEncryptionKeyin interface- EncryptInterceptorMBean
- Parameters:
- key- The encryption key.
 
- 
setEncryptionKeyGets the encryption key being used for encryption and decryption. The key is encoded using hex-encoding where e.g. the byte0xabwill be shown as "ab". The length of the string in characters will be twice the length of the key in bytes.- Parameters:
- keyBytes- The encryption key.
 
- 
getEncryptionKeypublic byte[] getEncryptionKey()Gets the encryption key being used for encryption and decryption.- Specified by:
- getEncryptionKeyin interface- EncryptInterceptorMBean
- Returns:
- The encryption key.
 
- 
getEncryptionKeyString
- 
setEncryptionKeyString
- 
setProviderNameSets the JCA provider name used for cryptographic activities. Default is the JVM platform default.- Specified by:
- setProviderNamein interface- EncryptInterceptorMBean
- Parameters:
- provider- The name of the JCA provider.
 
- 
getProviderNameGets the JCA provider name used for cryptographic activities. Default is the JVM platform default.- Specified by:
- getProviderNamein interface- EncryptInterceptorMBean
- Returns:
- The name of the JCA provider.
 
 
-