// This will generate a PROTOCOL_ERROR
throw new DecoderException( I18n.err( I18n.ERR_04067 ) );
}
Value value = tlv.getValue();
try
{
int msgTypeValue = IntegerDecoder.parse( value );
if ( msgType != null )
{
if ( msgType.getValue() == msgTypeValue )
{
LOG.debug( "msg-type : {}", msgType );
return;
}
String message = I18n.err( I18n.ERR_04070, Strings.dumpBytes(value.getData()) );
LOG.error( message );
// This will generate a PROTOCOL_ERROR
throw new DecoderException( message );
}
else
{
KerberosMessageType messageType = KerberosMessageType.getTypeByValue( msgTypeValue );
if ( container instanceof KdcReqContainer )
{
if ( ((KdcReqContainer)container).getKdcReq().getMessageType() == messageType )
{
return;
}
}
else if ( container instanceof KdcRepContainer )
{
if ( ((KdcRepContainer)container).getKdcRep().getMessageType() == messageType )
{
return;
}
}
String message = I18n.err( I18n.ERR_04070, Strings.dumpBytes(value.getData()) );
LOG.error( message );
// This will generate a PROTOCOL_ERROR
throw new DecoderException( message );
}
}
catch ( IntegerDecoderException ide )
{
LOG.error( I18n.err( I18n.ERR_04070, Strings.dumpBytes(value.getData()), ide
.getLocalizedMessage() ) );
// This will generate a PROTOCOL_ERROR
throw new DecoderException( ide.getMessage() );
}