ConnectionPermission.java
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:2k
源码类别:

网格计算

开发平台:

Java

  1. /**
  2.  * Licensed to the Apache Software Foundation (ASF) under one
  3.  * or more contributor license agreements.  See the NOTICE file
  4.  * distributed with this work for additional information
  5.  * regarding copyright ownership.  The ASF licenses this file
  6.  * to you under the Apache License, Version 2.0 (the
  7.  * "License"); you may not use this file except in compliance
  8.  * with the License.  You may obtain a copy of the License at
  9.  *
  10.  *     http://www.apache.org/licenses/LICENSE-2.0
  11.  *
  12.  * Unless required by applicable law or agreed to in writing, software
  13.  * distributed under the License is distributed on an "AS IS" BASIS,
  14.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15.  * See the License for the specific language governing permissions and
  16.  * limitations under the License.
  17.  */
  18. package org.apache.hadoop.security.authorize;
  19. import java.security.Permission;
  20. import org.apache.hadoop.ipc.VersionedProtocol;
  21. /**
  22.  * {@link Permission} to initiate a connection to a given service.
  23.  */
  24. public class ConnectionPermission extends Permission {
  25.   private static final long serialVersionUID = 1L;
  26.   private final Class<?> protocol;
  27.   /**
  28.    * {@link ConnectionPermission} for a given service.
  29.    * @param protocol service to be accessed
  30.    */
  31.   public ConnectionPermission(Class<?> protocol) {
  32.     super(protocol.getName());
  33.     this.protocol = protocol;
  34.   }
  35.   @Override
  36.   public boolean equals(Object obj) {
  37.     if (obj instanceof ConnectionPermission) {
  38.       return protocol == ((ConnectionPermission)obj).protocol;
  39.     }
  40.     return false;
  41.   }
  42.   @Override
  43.   public String getActions() {
  44.     return "ALLOW";
  45.   }
  46.   @Override
  47.   public int hashCode() {
  48.     return protocol.hashCode();
  49.   }
  50.   @Override
  51.   public boolean implies(Permission permission) {
  52.     if (permission instanceof ConnectionPermission) {
  53.       ConnectionPermission that = (ConnectionPermission)permission;
  54.       if (that.protocol.equals(VersionedProtocol.class)) {
  55.         return true;
  56.       }
  57.       return this.protocol.equals(that.protocol);
  58.     }
  59.     return false;
  60.   }
  61.   public String toString() {
  62.     return "ConnectionPermission(" + protocol.getName() + ")";
  63.   }
  64. }