org.globus.ogsa.impl.security.authentication.wssec
Class WSSecurityEngine

java.lang.Object
  extended byorg.globus.ogsa.impl.security.authentication.wssec.WSSecurityEngine
Direct Known Subclasses:
VerifyWSSecurity, WSSecurityRequestEngine, WSSecurityResponseEngine

public abstract class WSSecurityEngine
extends java.lang.Object


Field Summary
static java.lang.String REPLAY_ATTACK_FILTER
           
static java.lang.String REPLAY_ATTACK_WINDOW
           
static java.lang.String SIG_LN
           
 
Constructor Summary
WSSecurityEngine()
           
 
Method Summary
protected  void checkMessageValidity(org.w3c.dom.Element timestampElem, java.lang.String replayAttackWindow)
           
abstract  boolean decryptGssXMLEncryption(GSSEncryptedData data, MessageContext msgCtx)
           
abstract  boolean decryptXMLEncryption(org.w3c.dom.Element element, MessageContext msgCtx)
           
protected  void ensureSignature(MessageContext msgCtx)
           
protected  java.security.cert.X509Certificate[] getCertificatesTokenReference(org.w3c.dom.Element elem)
           
protected  java.security.cert.X509Certificate[] getCertificatesX509Data(KeyInfo info)
           
protected abstract  ProxyPolicyHandler getGrimProxyHandler(XMLSignature sig, MessageContext msgCtx)
           
protected  ServiceProperties getServiceProperties(org.apache.axis.MessageContext msgContext)
           
protected  javax.security.auth.Subject getSubject(MessageContext msgCtx)
           
 boolean handleEncryptionElement(org.w3c.dom.Element element, MessageContext msgCtx)
           
 boolean handleSignatureElement(org.w3c.dom.Element element, MessageContext msgCtx)
           
static void normalize(org.w3c.dom.Node node)
          Replaces all Text nodes that start with "\n " or "\n\n" with "\n" This is only used by signature callback.
abstract  org.w3c.dom.Document processSecurityHeader(SOAPEnvelope env, MessageContext msgCtx)
           
 org.w3c.dom.Document processSecurityHeader(SOAPEnvelope env, MessageContext msgCtx, boolean processTimestamp)
           
 org.w3c.dom.Document processSecurityHeader(SOAPEnvelope env, java.lang.String actor, MessageContext msgCtx, boolean processTimestamp)
           
protected  void processTimestampHeader(org.w3c.dom.Element timestampElem, MessageContext msgCtx)
           
protected  boolean rejectMsgSansTimestampHeader(MessageContext msgCtx, java.lang.String propertyValue)
           
abstract  boolean verifyGssXMLSignature(GssXMLSignature sig, MessageContext msgCtx)
           
abstract  boolean verifyXMLSignature(XMLSignature sig, MessageContext msgCtx)
           
protected  boolean verifyXMLSignature(XMLSignature sig, MessageContext msgCtx, ProxyPathValidator validator)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SIG_LN

public static final java.lang.String SIG_LN
See Also:
Constant Field Values

REPLAY_ATTACK_WINDOW

public static final java.lang.String REPLAY_ATTACK_WINDOW
See Also:
Constant Field Values

REPLAY_ATTACK_FILTER

public static final java.lang.String REPLAY_ATTACK_FILTER
See Also:
Constant Field Values
Constructor Detail

WSSecurityEngine

public WSSecurityEngine()
Method Detail

handleSignatureElement

public boolean handleSignatureElement(org.w3c.dom.Element element,
                                      MessageContext msgCtx)
                               throws java.lang.Exception
Throws:
java.lang.Exception

verifyGssXMLSignature

public abstract boolean verifyGssXMLSignature(GssXMLSignature sig,
                                              MessageContext msgCtx)
                                       throws java.lang.Exception
Throws:
java.lang.Exception

getCertificatesX509Data

protected java.security.cert.X509Certificate[] getCertificatesX509Data(KeyInfo info)
                                                                throws java.lang.Exception
Throws:
java.lang.Exception

getCertificatesTokenReference

protected java.security.cert.X509Certificate[] getCertificatesTokenReference(org.w3c.dom.Element elem)
                                                                      throws java.lang.Exception
Throws:
java.lang.Exception

getGrimProxyHandler

protected abstract ProxyPolicyHandler getGrimProxyHandler(XMLSignature sig,
                                                          MessageContext msgCtx)
                                                   throws java.lang.Exception
Throws:
java.lang.Exception

verifyXMLSignature

public abstract boolean verifyXMLSignature(XMLSignature sig,
                                           MessageContext msgCtx)
                                    throws java.lang.Exception
Throws:
java.lang.Exception

verifyXMLSignature

protected boolean verifyXMLSignature(XMLSignature sig,
                                     MessageContext msgCtx,
                                     ProxyPathValidator validator)
                              throws java.lang.Exception
Throws:
java.lang.Exception

getSubject

protected javax.security.auth.Subject getSubject(MessageContext msgCtx)

handleEncryptionElement

public boolean handleEncryptionElement(org.w3c.dom.Element element,
                                       MessageContext msgCtx)
                                throws java.lang.Exception
Throws:
java.lang.Exception

decryptXMLEncryption

public abstract boolean decryptXMLEncryption(org.w3c.dom.Element element,
                                             MessageContext msgCtx)
                                      throws java.lang.Exception
Throws:
java.lang.Exception

decryptGssXMLEncryption

public abstract boolean decryptGssXMLEncryption(GSSEncryptedData data,
                                                MessageContext msgCtx)
                                         throws java.lang.Exception
Throws:
java.lang.Exception

processSecurityHeader

public abstract org.w3c.dom.Document processSecurityHeader(SOAPEnvelope env,
                                                           MessageContext msgCtx)
                                                    throws java.lang.Exception
Throws:
java.lang.Exception

processSecurityHeader

public org.w3c.dom.Document processSecurityHeader(SOAPEnvelope env,
                                                  MessageContext msgCtx,
                                                  boolean processTimestamp)
                                           throws java.lang.Exception
Throws:
java.lang.Exception

processSecurityHeader

public org.w3c.dom.Document processSecurityHeader(SOAPEnvelope env,
                                                  java.lang.String actor,
                                                  MessageContext msgCtx,
                                                  boolean processTimestamp)
                                           throws java.lang.Exception
Throws:
java.lang.Exception

processTimestampHeader

protected void processTimestampHeader(org.w3c.dom.Element timestampElem,
                                      MessageContext msgCtx)
                               throws java.lang.Exception
Throws:
java.lang.Exception

checkMessageValidity

protected void checkMessageValidity(org.w3c.dom.Element timestampElem,
                                    java.lang.String replayAttackWindow)
                             throws java.lang.Exception
Throws:
java.lang.Exception

rejectMsgSansTimestampHeader

protected boolean rejectMsgSansTimestampHeader(MessageContext msgCtx,
                                               java.lang.String propertyValue)
                                        throws java.lang.Exception
Throws:
java.lang.Exception

normalize

public static void normalize(org.w3c.dom.Node node)
Replaces all Text nodes that start with "\n " or "\n\n" with "\n" This is only used by signature callback. There is a bug somewhere in serliazation/deserialization code that appends spaces to \n Text nodes for no reason breaking the signature stuff.


ensureSignature

protected void ensureSignature(MessageContext msgCtx)
                        throws java.lang.Exception
Throws:
java.lang.Exception

getServiceProperties

protected ServiceProperties getServiceProperties(org.apache.axis.MessageContext msgContext)
                                          throws java.lang.Exception
Throws:
java.lang.Exception