public class DefaultEncryptionUtils extends Object implements EncryptionUtils
Modifier and Type | Field and Description |
---|---|
protected Encryptor |
encryptor |
protected static String |
HEADER_ALGORITHM_PARAMETERS |
protected static String |
HEADER_MAC |
protected static String |
HEADER_TIMESTAMP |
protected String |
localIP |
protected static org.apache.commons.logging.Log |
logger |
protected MACUtils |
macUtils |
protected long |
messageTimeout |
protected String |
remoteIP |
Constructor and Description |
---|
DefaultEncryptionUtils() |
Modifier and Type | Method and Description |
---|---|
protected boolean |
authenticate(byte[] expectedMAC,
MACUtils.MACInput macInput) |
boolean |
authenticate(javax.servlet.http.HttpServletRequest req,
byte[] decryptedBody)
Authenticate the http request: validate the MAC, check that the remote IP is
as expected and that the timestamp is recent.
|
boolean |
authenticateResponse(org.apache.commons.httpclient.HttpMethod method,
String remoteIP,
byte[] decryptedBody)
Authenticate the http method response: validate the MAC, check that the remote IP is
as expected and that the timestamp is recent.
|
protected AlgorithmParameters |
decodeAlgorithmParameters(org.apache.commons.httpclient.HttpMethod method)
Decode cipher algorithm parameters from the HTTP method
|
protected AlgorithmParameters |
decodeAlgorithmParameters(javax.servlet.http.HttpServletRequest req)
Decode cipher algorithm parameters from the HTTP method
|
byte[] |
decryptBody(javax.servlet.http.HttpServletRequest req)
Decrypt the body of the http request
|
byte[] |
decryptResponseBody(org.apache.commons.httpclient.HttpMethod method)
Decrypt the response body of the http method
|
protected String |
getLocalIPAddress()
Get the local registered IP address for authentication purposes
|
protected byte[] |
getMac(javax.servlet.http.HttpServletRequest req)
Get the MAC (Message Authentication Code) on the HTTP request
|
String |
getRemoteIP() |
protected byte[] |
getResponseMac(org.apache.commons.httpclient.HttpMethod res)
Get the MAC (Message Authentication Code) on the HTTP response
|
protected Long |
getResponseTimestamp(org.apache.commons.httpclient.HttpMethod method)
Get the timestamp on the HTTP response
|
protected Long |
getTimestamp(javax.servlet.http.HttpServletRequest method)
Get the timestamp on the HTTP request
|
protected void |
setAlgorithmParameters(javax.servlet.http.HttpServletResponse response,
AlgorithmParameters params)
Set the algorithm parameters header on the HTTP response
|
void |
setEncryptor(Encryptor encryptor) |
protected void |
setMac(javax.servlet.http.HttpServletResponse response,
byte[] mac)
Set the MAC on the HTTP response
|
void |
setMacUtils(MACUtils macUtils) |
void |
setMessageTimeout(long messageTimeout) |
void |
setRemoteIP(String remoteIP) |
void |
setRequestAlgorithmParameters(org.apache.commons.httpclient.HttpMethod method,
AlgorithmParameters params)
Set the algorithm parameters header on the method request
|
void |
setRequestAuthentication(org.apache.commons.httpclient.HttpMethod method,
byte[] message)
Encrypt the http method request body
|
protected void |
setRequestMac(org.apache.commons.httpclient.HttpMethod method,
byte[] mac) |
protected void |
setRequestTimestamp(org.apache.commons.httpclient.HttpMethod method,
long timestamp)
Set the timestamp on the HTTP request
|
void |
setResponseAuthentication(javax.servlet.http.HttpServletRequest httpRequest,
javax.servlet.http.HttpServletResponse httpResponse,
byte[] responseBody,
AlgorithmParameters params)
Sets authentication headers on the HTTP response.
|
protected void |
setTimestamp(javax.servlet.http.HttpServletResponse res,
long timestamp)
Set the timestamp on the HTTP response
|
protected boolean |
validateTimestamp(long timestamp) |
protected static org.apache.commons.logging.Log logger
protected static String HEADER_ALGORITHM_PARAMETERS
protected static String HEADER_MAC
protected static String HEADER_TIMESTAMP
protected Encryptor encryptor
protected MACUtils macUtils
protected long messageTimeout
protected String remoteIP
protected String localIP
public String getRemoteIP()
public void setRemoteIP(String remoteIP)
protected String getLocalIPAddress()
public void setMessageTimeout(long messageTimeout)
public void setEncryptor(Encryptor encryptor)
public void setMacUtils(MACUtils macUtils)
protected void setRequestMac(org.apache.commons.httpclient.HttpMethod method, byte[] mac)
protected void setMac(javax.servlet.http.HttpServletResponse response, byte[] mac)
response
- HttpServletResponsemac
- byte[]protected byte[] getMac(javax.servlet.http.HttpServletRequest req) throws IOException
req
- HttpServletRequestIOException
protected byte[] getResponseMac(org.apache.commons.httpclient.HttpMethod res) throws IOException
res
- HttpMethodIOException
protected void setRequestTimestamp(org.apache.commons.httpclient.HttpMethod method, long timestamp)
method
- HttpMethodtimestamp
- (ms, in UNIX time)protected void setTimestamp(javax.servlet.http.HttpServletResponse res, long timestamp)
res
- HttpServletResponsetimestamp
- (ms, in UNIX time)protected Long getResponseTimestamp(org.apache.commons.httpclient.HttpMethod method) throws IOException
method
- HttpMethodIOException
protected Long getTimestamp(javax.servlet.http.HttpServletRequest method) throws IOException
method
- HttpServletRequestIOException
public void setRequestAlgorithmParameters(org.apache.commons.httpclient.HttpMethod method, AlgorithmParameters params) throws IOException
setRequestAlgorithmParameters
in interface EncryptionUtils
IOException
protected void setAlgorithmParameters(javax.servlet.http.HttpServletResponse response, AlgorithmParameters params) throws IOException
response
- HttpServletResponseparams
- AlgorithmParametersIOException
protected AlgorithmParameters decodeAlgorithmParameters(org.apache.commons.httpclient.HttpMethod method) throws IOException
method
- HttpMethodIOException
protected AlgorithmParameters decodeAlgorithmParameters(javax.servlet.http.HttpServletRequest req) throws IOException
req
- IOException
public byte[] decryptResponseBody(org.apache.commons.httpclient.HttpMethod method) throws IOException
decryptResponseBody
in interface EncryptionUtils
IOException
public byte[] decryptBody(javax.servlet.http.HttpServletRequest req) throws IOException
decryptBody
in interface EncryptionUtils
IOException
public boolean authenticateResponse(org.apache.commons.httpclient.HttpMethod method, String remoteIP, byte[] decryptedBody)
authenticateResponse
in interface EncryptionUtils
public boolean authenticate(javax.servlet.http.HttpServletRequest req, byte[] decryptedBody)
authenticate
in interface EncryptionUtils
public void setRequestAuthentication(org.apache.commons.httpclient.HttpMethod method, byte[] message) throws IOException
setRequestAuthentication
in interface EncryptionUtils
IOException
public void setResponseAuthentication(javax.servlet.http.HttpServletRequest httpRequest, javax.servlet.http.HttpServletResponse httpResponse, byte[] responseBody, AlgorithmParameters params) throws IOException
setResponseAuthentication
in interface EncryptionUtils
IOException
protected boolean authenticate(byte[] expectedMAC, MACUtils.MACInput macInput)
protected boolean validateTimestamp(long timestamp)
Copyright © 2005–2018 Alfresco Software. All rights reserved.