org.apache.activemq.shiro.authz.DestinationAction Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of activemq-shiro Show documentation
Show all versions of activemq-shiro Show documentation
ActiveMQ secured by Apache Shiro
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.activemq.shiro.authz;
import org.apache.activemq.broker.ConnectionContext;
import org.apache.activemq.command.ActiveMQDestination;
/**
* A {@code DestinationAction} represents behavior being taken on a particular {@link ActiveMQDestination}, such as
* creation, removal, and reading messages from it or writing messages to it. The exact behavior being taken on the
* specific {@link #getDestination() destination} is represented as a {@link #getVerb() verb} property, which is one of
* the following string tokens:
*
*
* Verb
* Description
*
*
* {@code create}
* Create a specific destination.
*
*
* {@code remove}
* Remove a specific destination.
*
*
* {@code read}
* Read (consume) messages from a specific destination.
*
*
* {@code write}
* Write messages to a specific destination.
*
*
*
* @since 5.10.0
*/
public class DestinationAction implements Action {
private final ConnectionContext connectionContext;
private final ActiveMQDestination destination;
private final String verb;
public DestinationAction(ConnectionContext connectionContext, ActiveMQDestination destination, String verb) {
if (connectionContext == null) {
throw new IllegalArgumentException("ConnectionContext argument cannot be null.");
}
if (destination == null) {
throw new IllegalArgumentException("ActiveMQDestination argument cannot be null.");
}
if (verb == null) {
throw new IllegalArgumentException("verb argument cannot be null.");
}
this.connectionContext = connectionContext;
this.destination = destination;
this.verb = verb;
}
public ConnectionContext getConnectionContext() {
return connectionContext;
}
public ActiveMQDestination getDestination() {
return destination;
}
public String getVerb() {
return verb;
}
@Override
public String toString() {
return this.verb + " destination: " + destination;
}
}