au.gov.nehta.vendorlibrary.pcehr.clients.common.handler
Class SecurityHandler

java.lang.Object
  extended by au.gov.nehta.vendorlibrary.pcehr.clients.common.handler.SecurityHandler
All Implemented Interfaces:
javax.xml.ws.handler.Handler<javax.xml.ws.handler.soap.SOAPMessageContext>, javax.xml.ws.handler.soap.SOAPHandler<javax.xml.ws.handler.soap.SOAPMessageContext>

public class SecurityHandler
extends java.lang.Object
implements javax.xml.ws.handler.soap.SOAPHandler<javax.xml.ws.handler.soap.SOAPMessageContext>

This SOAP handler constructs the security header elements in the outgoing SOAP requests and verifies incoming SOAP Response from the PCEHR services to ensure conformance. If a SOAP handler is specified in the handler chain of a JAX-WS client or service, JAX-WS will call the SOAP handler before a SOAP message is sent and after a SOAP message has been received.


Field Summary
static java.lang.String DSIG_ELEM
          Digital signature element name.
static java.lang.String GET_DOCUMENT_ELEM
          Retrieve Document Set Response (ie.
static java.lang.String PCEHRH_HEADER_ELEM
          PCEHRHeader XML element local name.
static java.lang.String SIGNATURE_ELEM
          Signature XML element local name.
static java.lang.String TIMESTAMP
          Timestamp XML element local name.
 
Constructor Summary
SecurityHandler(java.security.cert.X509Certificate x509Certificate, java.security.PrivateKey privateKey, au.gov.nehta.xsp.CertificateValidator certificateVerifier)
          Constructor.
 
Method Summary
 void close(javax.xml.ws.handler.MessageContext context)
          Does nothing
Not utilised for dumping SOAP message.
 java.util.Set<javax.xml.namespace.QName> getHeaders()
          Does nothing returns null.
Ignore processing of SOAP header as the primary intention is just to 'Dump' the SOAP message
 boolean handleFault(javax.xml.ws.handler.soap.SOAPMessageContext context)
          Ignore Fault and continues with processing logical handling of message.
 boolean handleMessage(javax.xml.ws.handler.soap.SOAPMessageContext context)
          Updates the SOAP headers in outgoing SOAP requests to ensure conformance to NEHTA's guidelines.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TIMESTAMP

public static final java.lang.String TIMESTAMP
Timestamp XML element local name.

See Also:
Constant Field Values

SIGNATURE_ELEM

public static final java.lang.String SIGNATURE_ELEM
Signature XML element local name.

See Also:
Constant Field Values

GET_DOCUMENT_ELEM

public static final java.lang.String GET_DOCUMENT_ELEM
Retrieve Document Set Response (ie. getDocument) XML element local name.

See Also:
Constant Field Values

DSIG_ELEM

public static final java.lang.String DSIG_ELEM
Digital signature element name.

See Also:
Constant Field Values

PCEHRH_HEADER_ELEM

public static final java.lang.String PCEHRH_HEADER_ELEM
PCEHRHeader XML element local name.

See Also:
Constant Field Values
Constructor Detail

SecurityHandler

public SecurityHandler(java.security.cert.X509Certificate x509Certificate,
                       java.security.PrivateKey privateKey,
                       au.gov.nehta.xsp.CertificateValidator certificateVerifier)
Constructor.

Parameters:
x509Certificate - the certificate key to be used for signing (mandatory).
privateKey - the private key to be used for signing (mandatory).
certificateVerifier - the CertificateVerifier to use for certificate verification (mandatory).
Method Detail

handleMessage

public final boolean handleMessage(javax.xml.ws.handler.soap.SOAPMessageContext context)
Updates the SOAP headers in outgoing SOAP requests to ensure conformance to NEHTA's guidelines.

Specified by:
handleMessage in interface javax.xml.ws.handler.Handler<javax.xml.ws.handler.soap.SOAPMessageContext>
Parameters:
context - the incoming / outgoing soap message context
Returns:
true Always returns true.
See Also:
Handler.handleMessage(javax.xml.ws.handler.MessageContext)

handleFault

public final boolean handleFault(javax.xml.ws.handler.soap.SOAPMessageContext context)
Ignore Fault and continues with processing logical handling of message.

Specified by:
handleFault in interface javax.xml.ws.handler.Handler<javax.xml.ws.handler.soap.SOAPMessageContext>
Parameters:
context - the incoming / outgoing soap message context
Returns:
true if the handle signature check is successful.
See Also:
Handler.handleFault(javax.xml.ws.handler.MessageContext)

getHeaders

public final java.util.Set<javax.xml.namespace.QName> getHeaders()
Does nothing returns null.
Ignore processing of SOAP header as the primary intention is just to 'Dump' the SOAP message

Specified by:
getHeaders in interface javax.xml.ws.handler.soap.SOAPHandler<javax.xml.ws.handler.soap.SOAPMessageContext>
Returns:
@see javax.xml.ws.handler.soap.SOAPHandler#getHeaders()

close

public void close(javax.xml.ws.handler.MessageContext context)
Does nothing
Not utilised for dumping SOAP message.

Specified by:
close in interface javax.xml.ws.handler.Handler<javax.xml.ws.handler.soap.SOAPMessageContext>
Parameters:
context - @see javax.xml.ws.handler.Handler#close(javax.xml.ws.handler.MessageContext)