org.jdiameter.common.impl.validation
Class DiameterMessageValidator

java.lang.Object
  extended by org.jdiameter.common.impl.validation.DiameterMessageValidator

public class DiameterMessageValidator
extends java.lang.Object

Start time:11:42:36 2009-05-26
Project: diameter-parent

Since:
1.5.189
Author:
Bartosz Baranowski , Alexandre Mendonca

Field Summary
static java.lang.String _AVP_ATTRIBUTE_CODE
           
static java.lang.String _AVP_ATTRIBUTE_INDEX
           
static java.lang.String _AVP_ATTRIBUTE_MULTIPLICITY
           
static java.lang.String _AVP_ATTRIBUTE_NAME
           
static java.lang.String _AVP_ATTRIBUTE_VENDOR
           
static java.lang.String _VALIDATOR_NODE_ENABLED_ATTR
           
static java.lang.String _VALIDATOR_NODE_NAME
           
static java.lang.String _VALIDATOR_NODE_RECEIVE_LEVEL_ATTR
           
static java.lang.String _VALIDATOR_NODE_SEND_LEVEL_ATTR
           
protected  java.util.Map<VAvpRepresentation,VAvpRepresentation> avpMap
           
protected  java.util.Map<VMessageRepresentation,VMessageRepresentation> commandMap
           
protected  java.util.Map<java.lang.String,VAvpRepresentation> nameToCodeMap
           
protected  java.util.Map<java.lang.String,java.lang.String> typedefMap
           
protected  java.util.Map<java.lang.String,java.lang.String> vendorMap
           
 
Constructor Summary
protected DiameterMessageValidator()
           
 
Method Summary
 java.util.Map<VAvpRepresentation,VAvpRepresentation> getAvpMap()
           
 java.util.Map<VMessageRepresentation,VMessageRepresentation> getCommandMap()
           
static DiameterMessageValidator getInstance()
          Retrieves singleton instance of DiameterMessageValidator
 java.util.Map<java.lang.String,VAvpRepresentation> getNameToCodeMap()
           
 ValidatorLevel getReceiveLevel()
           
 ValidatorLevel getSendLevel()
           
 java.util.Map<java.lang.String,java.lang.String> getTypedefMap()
           
 long getVendorCode(java.lang.String vendorId, java.util.Map<java.lang.String,java.lang.String> vendorMap)
           
 java.util.Map<java.lang.String,java.lang.String> getVendorMap()
           
 boolean hasRepresentation(int commandCode, long appId, boolean isRequest, int avpCode, long avpVendor)
          Return values is computed as follows:
return messages.get(commandCode, appId, isRequest)!
 boolean isAllowed(int commandCode, long appId, boolean isRequest, int avpCode, long avpVendor)
          Determines if avp is allowed in message.
 boolean isConfigured()
           
 boolean isCountValidForMultiplicity(int commandCode, long appId, boolean isRequest, AvpSet destination, int avpCode, long avpVendor)
          Determines if avp identified by code and vendor has correct multiplicity in passed set.
 boolean isOn()
          Determines if validator is enabled.
 java.util.Map<VAvpRepresentation,VAvpRepresentation> parseAvps(org.w3c.dom.Document doc, java.util.Map<java.lang.String,java.lang.String> vendorMap)
           
 void parseConfiguration(java.io.InputStream is, boolean reset)
           
 java.util.Map<java.lang.String,java.lang.String> parseTypDefs(org.w3c.dom.Document doc)
           
 java.util.Map<java.lang.String,java.lang.String> parseVendors(org.w3c.dom.Document doc)
           
 void resolveWeakGroupedChildren(java.util.Map<VAvpRepresentation,VAvpRepresentation> avpMap, java.util.Map<java.lang.String,VAvpRepresentation> nameToCodeMap)
           
protected  boolean resolveWeaklings(VAvpRepresentation groupedAvp, java.util.Map<VAvpRepresentation,VAvpRepresentation> avpMap, java.util.Map<java.lang.String,VAvpRepresentation> nameToCodeMap)
           
 void setAvpMap(java.util.Map<VAvpRepresentation,VAvpRepresentation> avpMap)
           
 void setCommandMap(java.util.Map<VMessageRepresentation,VMessageRepresentation> commandMap)
           
 void setNameToCodeMap(java.util.Map<java.lang.String,VAvpRepresentation> nameToCodeMap)
           
static void setOn(boolean isOn)
           
 void setTypedefMap(java.util.Map<java.lang.String,java.lang.String> typedefMap)
           
 void setVendorMap(java.util.Map<java.lang.String,java.lang.String> vendorMap)
           
 void validate(int commandCode, long appId, boolean isRequest, AvpSet destination, Avp avp)
          Validate if avp can be added/present in message - meaning it checks if there is place for passed avp.
 void validate(Message msg, boolean incoming)
          Validates message against XML configuration file.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_AVP_ATTRIBUTE_NAME

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

_AVP_ATTRIBUTE_CODE

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

_AVP_ATTRIBUTE_VENDOR

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

_AVP_ATTRIBUTE_MULTIPLICITY

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

_AVP_ATTRIBUTE_INDEX

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

_VALIDATOR_NODE_NAME

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

_VALIDATOR_NODE_ENABLED_ATTR

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

_VALIDATOR_NODE_SEND_LEVEL_ATTR

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

_VALIDATOR_NODE_RECEIVE_LEVEL_ATTR

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

commandMap

protected java.util.Map<VMessageRepresentation,VMessageRepresentation> commandMap

avpMap

protected java.util.Map<VAvpRepresentation,VAvpRepresentation> avpMap

vendorMap

protected java.util.Map<java.lang.String,java.lang.String> vendorMap

typedefMap

protected java.util.Map<java.lang.String,java.lang.String> typedefMap

nameToCodeMap

protected java.util.Map<java.lang.String,VAvpRepresentation> nameToCodeMap
Constructor Detail

DiameterMessageValidator

protected DiameterMessageValidator()
Method Detail

parseConfiguration

public void parseConfiguration(java.io.InputStream is,
                               boolean reset)

parseAvps

public java.util.Map<VAvpRepresentation,VAvpRepresentation> parseAvps(org.w3c.dom.Document doc,
                                                                      java.util.Map<java.lang.String,java.lang.String> vendorMap)
Parameters:
doc -
vendorMap -
Returns:

parseTypDefs

public java.util.Map<java.lang.String,java.lang.String> parseTypDefs(org.w3c.dom.Document doc)
Parameters:
doc -
Returns:

parseVendors

public java.util.Map<java.lang.String,java.lang.String> parseVendors(org.w3c.dom.Document doc)
Parameters:
doc -
Returns:

resolveWeakGroupedChildren

public void resolveWeakGroupedChildren(java.util.Map<VAvpRepresentation,VAvpRepresentation> avpMap,
                                       java.util.Map<java.lang.String,VAvpRepresentation> nameToCodeMap)

resolveWeaklings

protected boolean resolveWeaklings(VAvpRepresentation groupedAvp,
                                   java.util.Map<VAvpRepresentation,VAvpRepresentation> avpMap,
                                   java.util.Map<java.lang.String,VAvpRepresentation> nameToCodeMap)
Parameters:
groupedAvp -
Returns:

getVendorCode

public long getVendorCode(java.lang.String vendorId,
                          java.util.Map<java.lang.String,java.lang.String> vendorMap)

getInstance

public static final DiameterMessageValidator getInstance()
Retrieves singleton instance of DiameterMessageValidator

Returns:

isOn

public boolean isOn()
Determines if validator is enabled.

Returns:
  • true if validator is enabled
  • false if validator is disabled

validate

public void validate(Message msg,
                     boolean incoming)
              throws JAvpNotAllowedException
Validates message against XML configuration file. If there is norepresentation it does nothing. If hasRepresentation(int, long, boolean, int, long) returns false this method returns always without exception.

Parameters:
msg -
Throws:
JAvpNotAllowedException - - thrown when validation fails.

validate

public void validate(int commandCode,
                     long appId,
                     boolean isRequest,
                     AvpSet destination,
                     Avp avp)
Validate if avp can be added/present in message - meaning it checks if there is place for passed avp. If hasRepresentation(int, long, boolean, int, long) returns false this method returns always without exception.

Parameters:
commandCode - - message command code
appId - - application id of message
isRequest - - true if message is request.
destination - - AvpSet of message
avp - - avp to be checked.

isCountValidForMultiplicity

public boolean isCountValidForMultiplicity(int commandCode,
                                           long appId,
                                           boolean isRequest,
                                           AvpSet destination,
                                           int avpCode,
                                           long avpVendor)
Determines if avp identified by code and vendor has correct multiplicity in passed set. If hasRepresentation(int, long, boolean, int, long) returns false this method returns always true.

Parameters:
commandCode - - message code
appId - - message application id.
isRequest - - true if message is request.
destination - - message AvpSet
avpCode - - avp code
avpVendor - - avp vendor - zero if there is none

isAllowed

public boolean isAllowed(int commandCode,
                         long appId,
                         boolean isRequest,
                         int avpCode,
                         long avpVendor)
Determines if avp is allowed in message. If hasRepresentation(int, long, boolean, int, long) returns false this method returns always true.

Parameters:
commandCode - - message command code
appId - - message application id
isRequest - - true if message is request.
avpCode - - avp code.
avpVendor - - avp vendor, zero if none.
Returns:

hasRepresentation

public boolean hasRepresentation(int commandCode,
                                 long appId,
                                 boolean isRequest,
                                 int avpCode,
                                 long avpVendor)
Return values is computed as follows:
return messages.get(commandCode, appId, isRequest)!=null && messages.get(commandCode , appId, isRequest).getAvp(avpCode, avpVendor)!=null;

Parameters:
commandCode - - message command code
appId - - message application id
isRequest - - true if message is request.
avpCode - - avp code.
avpVendor - - avp vendor, zero if none.
Returns:

getCommandMap

public java.util.Map<VMessageRepresentation,VMessageRepresentation> getCommandMap()

setCommandMap

public void setCommandMap(java.util.Map<VMessageRepresentation,VMessageRepresentation> commandMap)

getAvpMap

public java.util.Map<VAvpRepresentation,VAvpRepresentation> getAvpMap()

setAvpMap

public void setAvpMap(java.util.Map<VAvpRepresentation,VAvpRepresentation> avpMap)

getVendorMap

public java.util.Map<java.lang.String,java.lang.String> getVendorMap()

setVendorMap

public void setVendorMap(java.util.Map<java.lang.String,java.lang.String> vendorMap)

getTypedefMap

public java.util.Map<java.lang.String,java.lang.String> getTypedefMap()

setTypedefMap

public void setTypedefMap(java.util.Map<java.lang.String,java.lang.String> typedefMap)

getNameToCodeMap

public java.util.Map<java.lang.String,VAvpRepresentation> getNameToCodeMap()

setNameToCodeMap

public void setNameToCodeMap(java.util.Map<java.lang.String,VAvpRepresentation> nameToCodeMap)

isConfigured

public boolean isConfigured()

setOn

public static void setOn(boolean isOn)

getSendLevel

public ValidatorLevel getSendLevel()

getReceiveLevel

public ValidatorLevel getReceiveLevel()


Copyright © 2010. All Rights Reserved.