Check for security error on responses and log a warning so there is a
record of the event
This commit is contained in:
Timothy Bish 2014-06-05 16:16:01 -04:00
parent 25f1fe8460
commit 707940f1a6

View File

@ -20,7 +20,13 @@ import java.io.EOFException;
import java.io.IOException; import java.io.IOException;
import java.net.SocketException; import java.net.SocketException;
import java.net.URI; import java.net.URI;
import java.util.*; import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
@ -31,10 +37,44 @@ import java.util.concurrent.atomic.AtomicReference;
import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock;
import javax.transaction.xa.XAResource; import javax.transaction.xa.XAResource;
import org.apache.activemq.advisory.AdvisorySupport; import org.apache.activemq.advisory.AdvisorySupport;
import org.apache.activemq.broker.region.ConnectionStatistics; import org.apache.activemq.broker.region.ConnectionStatistics;
import org.apache.activemq.broker.region.RegionBroker; import org.apache.activemq.broker.region.RegionBroker;
import org.apache.activemq.command.*; import org.apache.activemq.command.ActiveMQDestination;
import org.apache.activemq.command.BrokerInfo;
import org.apache.activemq.command.Command;
import org.apache.activemq.command.CommandTypes;
import org.apache.activemq.command.ConnectionControl;
import org.apache.activemq.command.ConnectionError;
import org.apache.activemq.command.ConnectionId;
import org.apache.activemq.command.ConnectionInfo;
import org.apache.activemq.command.ConsumerControl;
import org.apache.activemq.command.ConsumerId;
import org.apache.activemq.command.ConsumerInfo;
import org.apache.activemq.command.ControlCommand;
import org.apache.activemq.command.DataArrayResponse;
import org.apache.activemq.command.DestinationInfo;
import org.apache.activemq.command.ExceptionResponse;
import org.apache.activemq.command.FlushCommand;
import org.apache.activemq.command.IntegerResponse;
import org.apache.activemq.command.KeepAliveInfo;
import org.apache.activemq.command.Message;
import org.apache.activemq.command.MessageAck;
import org.apache.activemq.command.MessageDispatch;
import org.apache.activemq.command.MessageDispatchNotification;
import org.apache.activemq.command.MessagePull;
import org.apache.activemq.command.ProducerAck;
import org.apache.activemq.command.ProducerId;
import org.apache.activemq.command.ProducerInfo;
import org.apache.activemq.command.RemoveSubscriptionInfo;
import org.apache.activemq.command.Response;
import org.apache.activemq.command.SessionId;
import org.apache.activemq.command.SessionInfo;
import org.apache.activemq.command.ShutdownInfo;
import org.apache.activemq.command.TransactionId;
import org.apache.activemq.command.TransactionInfo;
import org.apache.activemq.command.WireFormatInfo;
import org.apache.activemq.network.DemandForwardingBridge; import org.apache.activemq.network.DemandForwardingBridge;
import org.apache.activemq.network.MBeanNetworkListener; import org.apache.activemq.network.MBeanNetworkListener;
import org.apache.activemq.network.NetworkBridgeConfiguration; import org.apache.activemq.network.NetworkBridgeConfiguration;
@ -307,6 +347,9 @@ public class TransportConnection implements Connection, Task, CommandVisitor {
} }
if (responseRequired) { if (responseRequired) {
if (e instanceof SecurityException || e.getCause() instanceof SecurityException) {
SERVICELOG.warn("Security Error occurred: {}", e.getMessage());
}
response = new ExceptionResponse(e); response = new ExceptionResponse(e);
} else { } else {
serviceException(e); serviceException(e);
@ -378,6 +421,7 @@ public class TransportConnection implements Connection, Task, CommandVisitor {
return null; return null;
} }
@Override
public int getActiveTransactionCount() { public int getActiveTransactionCount() {
int rc = 0; int rc = 0;
for (TransportConnectionState cs : connectionStateRegister.listConnectionStates()) { for (TransportConnectionState cs : connectionStateRegister.listConnectionStates()) {
@ -389,6 +433,7 @@ public class TransportConnection implements Connection, Task, CommandVisitor {
return rc; return rc;
} }
@Override
public Long getOldestActiveTransactionDuration() { public Long getOldestActiveTransactionDuration() {
TransactionState oldestTX = null; TransactionState oldestTX = null;
for (TransportConnectionState cs : connectionStateRegister.listConnectionStates()) { for (TransportConnectionState cs : connectionStateRegister.listConnectionStates()) {