org.apache.abdera.security.util.servlet
Class DHEncryptedResponseFilter
java.lang.Object
org.apache.abdera.protocol.server.servlet.AbstractFilter
org.apache.abdera.protocol.server.servlet.AbderaFilter
org.apache.abdera.security.util.servlet.SecurityFilter
org.apache.abdera.security.util.servlet.AbstractEncryptedResponseFilter
org.apache.abdera.security.util.servlet.DHEncryptedResponseFilter
- All Implemented Interfaces:
- javax.servlet.Filter
public class DHEncryptedResponseFilter
- extends AbstractEncryptedResponseFilter
A Servlet Filter that uses Diffie-Hellman Key Exchange to encrypt
Atom documents. The HTTP request must include an Accept-Encryption header in the form:
Accept-Encryption: DH p={dh_p}, g={dh_g}, l={dh_l}, k={base64_pubkey}
Example AbderaClient Code:
DHContext context = new DHContext();
Abdera abdera = new Abdera();
CommonsClient client = new CommonsClient(abdera);
RequestOptions options = client.getDefaultRequestOptions();
options.setHeader("Accept-Encryption", context.getRequestString());
ClientResponse response = client.get("http://localhost:8080/TestWeb/test",options);
Document doc = response.getDocument();
String dh_ret = response.getHeader("Content-Encrypted");
if (dh_ret != null) {
context.setPublicKey(dh_ret);
AbderaSecurity absec = new AbderaSecurity(abdera);
Encryption enc = absec.getEncryption();
EncryptionOptions encoptions = context.getEncryptionOptions(enc);
doc = enc.decrypt(doc, encoptions);
}
doc.writeTo(System.out);
Webapp Deployment:
<filter>
<filter-name>enc filter</filter-name>
<filter-class>com.test.EncryptedResponseFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>enc filter</filter-name>
<servlet-name>TestServlet</servlet-name>
</filter-mapping>
Method Summary |
protected boolean |
doEncryption(javax.servlet.ServletRequest request,
java.lang.Object arg)
|
protected java.lang.Object |
initArg(javax.servlet.ServletRequest request)
|
protected EncryptionOptions |
initEncryptionOptions(javax.servlet.ServletRequest request,
javax.servlet.ServletResponse response,
Encryption enc,
java.lang.Object arg)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface javax.servlet.Filter |
destroy |
DHEncryptedResponseFilter
public DHEncryptedResponseFilter()
doEncryption
protected boolean doEncryption(javax.servlet.ServletRequest request,
java.lang.Object arg)
- Specified by:
doEncryption
in class AbstractEncryptedResponseFilter
initArg
protected java.lang.Object initArg(javax.servlet.ServletRequest request)
- Specified by:
initArg
in class AbstractEncryptedResponseFilter
initEncryptionOptions
protected EncryptionOptions initEncryptionOptions(javax.servlet.ServletRequest request,
javax.servlet.ServletResponse response,
Encryption enc,
java.lang.Object arg)
- Specified by:
initEncryptionOptions
in class AbstractEncryptedResponseFilter