@Override public AddressInfo createAddress(AddressInfo addressInfo, boolean autoCreated) throws Exception { AddressInfo art = getAddressAndRoutingType(addressInfo); securityCheck(art.getName(), CheckType.CREATE_ADDRESS, this); server.addOrUpdateAddressInfo(art.setAutoCreated(autoCreated)); return server.getAddressInfo(art.getName()); }
private RoutingStatus handleManagementMessage(final Transaction tx, final Message message, final boolean direct) throws Exception { try { securityCheck(removePrefix(message.getAddressSimpleString()), CheckType.MANAGE, this); } catch (ActiveMQException e) { if (!autoCommitSends) { tx.markAsRollbackOnly(e); } throw e; } Message reply = managementService.handleMessage(message); SimpleString replyTo = message.getReplyTo(); if (replyTo != null) { // TODO: move this check somewhere else? this is a JMS-specific bit of logic in the core impl if (replyTo.toString().startsWith("queue://") || replyTo.toString().startsWith("topic://")) { replyTo = SimpleString.toSimpleString(replyTo.toString().substring(8)); } else if (replyTo.toString().startsWith("temp-queue://") || replyTo.toString().startsWith("temp-topic://")) { replyTo = SimpleString.toSimpleString(replyTo.toString().substring(13)); } reply.setAddress(replyTo); doSend(tx, reply, null, direct, false, routingContext); } return RoutingStatus.OK; }
@Override public AddressInfo createAddress(final SimpleString address, EnumSet<RoutingType> routingTypes, final boolean autoCreated) throws Exception { SimpleString realAddress = CompositeAddress.extractAddressName(address); Pair<SimpleString, EnumSet<RoutingType>> art = getAddressAndRoutingTypes(realAddress, routingTypes); securityCheck(art.getA(), CheckType.CREATE_ADDRESS, this); server.addOrUpdateAddressInfo(new AddressInfo(art.getA(), art.getB()).setAutoCreated(autoCreated)); return server.getAddressInfo(art.getA()); }
securityCheck(art.getName(), CheckType.SEND, this); } catch (ActiveMQException e) { if (!autoCommitSends && tx != null) {
securityCheck(addressInfo.getName(), name, CheckType.CREATE_DURABLE_QUEUE, this); } else { securityCheck(addressInfo.getName(), name, CheckType.CREATE_NON_DURABLE_QUEUE, this); securityCheck(addressInfo.getName(), name, CheckType.CREATE_ADDRESS, this);
if (browseOnly) { try { securityCheck(address, queueName, CheckType.BROWSE, this); } catch (Exception e) { securityCheck(address.concat(".").concat(unPrefixedQueueName), queueName, CheckType.BROWSE, this); securityCheck(address, queueName, CheckType.CONSUME, this); } catch (Exception e) { securityCheck(address.concat(".").concat(unPrefixedQueueName), queueName, CheckType.CONSUME, this);
@Override public void createSharedQueue(SimpleString address, SimpleString name, RoutingType routingType, SimpleString filterString, boolean durable, Integer maxConsumers, Boolean purgeOnNoConsumers, Boolean exclusive, Boolean lastValue, SimpleString lastValueKey, Boolean nonDestructive, Integer consumersBeforeDispatch, Long delayBeforeDispatch) throws Exception { address = removePrefix(address); securityCheck(address, name, durable ? CheckType.CREATE_DURABLE_QUEUE : CheckType.CREATE_NON_DURABLE_QUEUE, this); server.checkQueueCreationLimit(getUsername()); AddressSettings as = server.getAddressSettingsRepository().getMatch(address.toString()); server.createSharedQueue(address, routingType, name, filterString, SimpleString.toSimpleString(getUsername()), durable, maxConsumers == null ? as.getDefaultMaxConsumers() : maxConsumers, purgeOnNoConsumers == null ? as.isDefaultPurgeOnNoConsumers() : purgeOnNoConsumers, exclusive == null ? as.isDefaultExclusiveQueue() : exclusive, lastValue == null ? as.isDefaultLastValueQueue() : lastValue, lastValueKey == null ? as.getDefaultLastValueKey() : lastValueKey, nonDestructive == null ? as.isDefaultNonDestructive() : nonDestructive, consumersBeforeDispatch == null ? as.getDefaultConsumersBeforeDispatch() : consumersBeforeDispatch, delayBeforeDispatch == null ? as.getDefaultDelayBeforeDispatch() : delayBeforeDispatch); }