diff options
Diffstat (limited to 'framework/src/onos/core/api/src/main/java/org/onosproject/security/AppPermission.java')
-rw-r--r-- | framework/src/onos/core/api/src/main/java/org/onosproject/security/AppPermission.java | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/security/AppPermission.java b/framework/src/onos/core/api/src/main/java/org/onosproject/security/AppPermission.java new file mode 100644 index 00000000..21a70d2b --- /dev/null +++ b/framework/src/onos/core/api/src/main/java/org/onosproject/security/AppPermission.java @@ -0,0 +1,110 @@ +/* + * Copyright 2015 Open Networking Laboratory + * + * Licensed 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.onosproject.security; + +import java.security.BasicPermission; + +/** + * Implementation of API access permission. + */ +public class AppPermission extends BasicPermission { + + public enum Type { + APP_READ, + APP_EVENT, + CONFIG_READ, + CONFIG_WRITE, + CLUSTER_READ, + CLUSTER_WRITE, + CLUSTER_EVENT, + DEVICE_READ, + DEVICE_EVENT, + DRIVER_READ, + DRIVER_WRITE, + FLOWRULE_READ, + FLOWRULE_WRITE, + FLOWRULE_EVENT, + GROUP_READ, + GROUP_WRITE, + GROUP_EVENT, + HOST_READ, + HOST_WRITE, + HOST_EVENT, + INTENT_READ, + INTENT_WRITE, + INTENT_EVENT, + LINK_READ, + LINK_WRITE, + LINK_EVENT, + PACKET_READ, + PACKET_WRITE, + PACKET_EVENT, + STATISTIC_READ, + TOPOLOGY_READ, + TOPOLOGY_EVENT, + TUNNEL_READ, + TUNNEL_WRITE, + TUNNEL_EVENT, + STORAGE_WRITE + } + + protected Type type; + /** + * Creates new application permission using the supplied data. + * @param name permission name + */ + public AppPermission(String name) { + super(name.toUpperCase(), ""); + try { + type = Type.valueOf(name); + } catch (IllegalArgumentException e) { + type = null; + } + } + + /** + * Creates new application permission using the supplied data. + * @param name permission name + * @param actions permission action + */ + public AppPermission(String name, String actions) { + super(name.toUpperCase(), actions); + try { + type = Type.valueOf(name); + } catch (IllegalArgumentException e) { + type = null; + } + } + + /** + * Crates new application permission using the supplied data. + * @param type permission type + */ + public AppPermission(Type type) { + super(type.name(), ""); + this.type = type; + } + + /** + * Returns type of permission. + * @return application permission type + */ + public Type getType() { + return this.type; + } + +} |