#gg-9809: move GridSecurityContext to 
org.gridgain.grid.internal.processors.security.ent.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/f9f27f01
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/f9f27f01
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/f9f27f01

Branch: refs/heads/sprint-2
Commit: f9f27f01d0fdeea0f14d89f74545ad0b8cb7f280
Parents: 17fa00b
Author: ivasilinets <ivasilin...@gridgain.com>
Authored: Wed Feb 18 14:45:04 2015 +0300
Committer: ivasilinets <ivasilin...@gridgain.com>
Committed: Wed Feb 18 14:45:04 2015 +0300

----------------------------------------------------------------------
 .../security/GridSecurityContext.java           | 251 -------------------
 .../optimized/optimized-classnames.properties   |   1 -
 2 files changed, 252 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f9f27f01/modules/core/src/main/java/org/apache/ignite/internal/processors/security/GridSecurityContext.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/security/GridSecurityContext.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/security/GridSecurityContext.java
deleted file mode 100644
index ca92770..0000000
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/security/GridSecurityContext.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/*
- * 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.ignite.internal.processors.security;
-
-import org.apache.ignite.internal.util.typedef.internal.*;
-import org.apache.ignite.plugin.security.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Security context.
- */
-public class GridSecurityContext implements SecurityContext, Externalizable {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Visor ignite tasks prefix. */
-    private static final String VISOR_IGNITE_TASK_PREFIX = 
"org.apache.ignite.internal.visor.";
-
-    /** Visor gridgain tasks prefix. */
-    private static final String VISOR_GRIDGAIN_TASK_PREFIX = 
"org.gridgain.grid.internal.visor.";
-
-    /** Cache query task name. */
-    public static final String VISOR_CACHE_QUERY_TASK_NAME =
-        "org.apache.ignite.internal.visor.query.VisorQueryTask";
-
-    /** Cache load task name. */
-    public static final String VISOR_CACHE_LOAD_TASK_NAME =
-        "org.apache.ignite.internal.visor.cache.VisorCacheLoadTask";
-
-    /** Cache clear task name. */
-    public static final String VISOR_CACHE_CLEAR_TASK_NAME =
-        "org.apache.ignite.internal.visor.query.VisorQueryCleanupTask";
-
-    /** Security subject. */
-    private GridSecuritySubject subj;
-
-    /** String task permissions. */
-    private Map<String, Collection<GridSecurityPermission>> 
strictTaskPermissions = new LinkedHashMap<>();
-
-    /** String task permissions. */
-    private Map<String, Collection<GridSecurityPermission>> 
wildcardTaskPermissions = new LinkedHashMap<>();
-
-    /** String task permissions. */
-    private Map<String, Collection<GridSecurityPermission>> 
strictCachePermissions = new LinkedHashMap<>();
-
-    /** String task permissions. */
-    private Map<String, Collection<GridSecurityPermission>> 
wildcardCachePermissions = new LinkedHashMap<>();
-
-    /** System-wide permissions. */
-    private Collection<GridSecurityPermission> sysPermissions;
-
-    /**
-     * Empty constructor required by {@link Externalizable}.
-     */
-    public GridSecurityContext() {
-        // No-op.
-    }
-
-    /**
-     * @param subj Subject.
-     */
-    public GridSecurityContext(GridSecuritySubject subj) {
-        this.subj = subj;
-
-        initRules();
-    }
-
-    /**
-     * @return Security subject.
-     */
-    public GridSecuritySubject subject() {
-        return subj;
-    }
-
-    /**
-     * Checks whether task operation is allowed.
-     *
-     * @param taskClsName Task class name.
-     * @param perm Permission to check.
-     * @return {@code True} if task operation is allowed.
-     */
-    public boolean taskOperationAllowed(String taskClsName, 
GridSecurityPermission perm) {
-        assert perm == GridSecurityPermission.TASK_EXECUTE || perm == 
GridSecurityPermission.TASK_CANCEL;
-
-        if (visorTask(taskClsName))
-            return visorTaskAllowed(taskClsName);
-
-        Collection<GridSecurityPermission> p = 
strictTaskPermissions.get(taskClsName);
-
-        if (p != null)
-            return p.contains(perm);
-
-        for (Map.Entry<String, Collection<GridSecurityPermission>> entry : 
wildcardTaskPermissions.entrySet()) {
-            if (taskClsName.startsWith(entry.getKey()))
-                return entry.getValue().contains(perm);
-        }
-
-        return subj.permissions().defaultAllowAll();
-    }
-
-    /**
-     * Checks whether cache operation is allowed.
-     *
-     * @param cacheName Cache name.
-     * @param perm Permission to check.
-     * @return {@code True} if cache operation is allowed.
-     */
-    public boolean cacheOperationAllowed(String cacheName, 
GridSecurityPermission perm) {
-        assert perm == GridSecurityPermission.CACHE_PUT || perm == 
GridSecurityPermission.CACHE_READ ||
-            perm == GridSecurityPermission.CACHE_REMOVE;
-
-        Collection<GridSecurityPermission> p = 
strictCachePermissions.get(cacheName);
-
-        if (p != null)
-            return p.contains(perm);
-
-        for (Map.Entry<String, Collection<GridSecurityPermission>> entry : 
wildcardCachePermissions.entrySet()) {
-            if (cacheName != null) {
-                if (cacheName.startsWith(entry.getKey()))
-                    return entry.getValue().contains(perm);
-            }
-            else {
-                // Match null cache to '*'
-                if (entry.getKey().isEmpty())
-                    return entry.getValue().contains(perm);
-            }
-        }
-
-        return subj.permissions().defaultAllowAll();
-    }
-
-    /**
-     * Checks whether system-wide permission is allowed (excluding Visor task 
operations).
-     *
-     * @param perm Permission to check.
-     * @return {@code True} if system operation is allowed.
-     */
-    public boolean systemOperationAllowed(GridSecurityPermission perm) {
-        if (sysPermissions == null)
-            return subj.permissions().defaultAllowAll();
-
-        boolean ret = sysPermissions.contains(perm);
-
-        if (!ret && (perm == GridSecurityPermission.EVENTS_ENABLE || perm == 
GridSecurityPermission.EVENTS_DISABLE))
-            ret = sysPermissions.contains(GridSecurityPermission.ADMIN_VIEW);
-
-        return ret;
-    }
-
-    /**
-     * Checks if task is Visor task.
-     *
-     * @param taskCls Task class name.
-     * @return {@code True} if task is Visor task.
-     */
-    private boolean visorTask(String taskCls) {
-        return taskCls.startsWith(VISOR_IGNITE_TASK_PREFIX) || 
taskCls.startsWith(VISOR_GRIDGAIN_TASK_PREFIX);
-    }
-
-    /**
-     * Checks if Visor task is allowed for execution.
-     *
-     * @param taskName Task name.
-     * @return {@code True} if execution is allowed.
-     */
-    private boolean visorTaskAllowed(String taskName) {
-        if (sysPermissions == null)
-            return subj.permissions().defaultAllowAll();
-
-        switch (taskName) {
-            case VISOR_CACHE_QUERY_TASK_NAME:
-                return 
sysPermissions.contains(GridSecurityPermission.ADMIN_QUERY);
-            case VISOR_CACHE_LOAD_TASK_NAME:
-            case VISOR_CACHE_CLEAR_TASK_NAME:
-                return 
sysPermissions.contains(GridSecurityPermission.ADMIN_CACHE);
-            default:
-                return 
sysPermissions.contains(GridSecurityPermission.ADMIN_VIEW);
-        }
-    }
-
-    /**
-     * Init rules.
-     */
-    private void initRules() {
-        GridSecurityPermissionSet permSet = subj.permissions();
-
-        for (Map.Entry<String, Collection<GridSecurityPermission>> entry : 
permSet.taskPermissions().entrySet()) {
-            String ptrn = entry.getKey();
-
-            Collection<GridSecurityPermission> vals = 
Collections.unmodifiableCollection(entry.getValue());
-
-            if (ptrn.endsWith("*")) {
-                String noWildcard = ptrn.substring(0, ptrn.length() - 1);
-
-                wildcardTaskPermissions.put(noWildcard, vals);
-            }
-            else
-                strictTaskPermissions.put(ptrn, vals);
-        }
-
-        for (Map.Entry<String, Collection<GridSecurityPermission>> entry : 
permSet.cachePermissions().entrySet()) {
-            String ptrn = entry.getKey();
-
-            Collection<GridSecurityPermission> vals = 
Collections.unmodifiableCollection(entry.getValue());
-
-            if (ptrn != null && ptrn.endsWith("*")) {
-                String noWildcard = ptrn.substring(0, ptrn.length() - 1);
-
-                wildcardCachePermissions.put(noWildcard, vals);
-            }
-            else
-                strictCachePermissions.put(ptrn, vals);
-        }
-
-        sysPermissions = permSet.systemPermissions();
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        out.writeObject(subj);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, 
ClassNotFoundException {
-        subj = (GridSecuritySubject)in.readObject();
-
-        initRules();
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridSecurityContext.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f9f27f01/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/optimized-classnames.properties
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/optimized-classnames.properties
 
b/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/optimized-classnames.properties
index 5fa1c2c..59ee47f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/optimized-classnames.properties
+++ 
b/modules/core/src/main/java/org/apache/ignite/marshaller/optimized/optimized-classnames.properties
@@ -1016,7 +1016,6 @@ 
org.apache.ignite.internal.processors.rest.request.GridRestCacheQueryRequest
 org.apache.ignite.internal.processors.schedule.IgniteScheduleProcessor$1
 org.apache.ignite.internal.processors.schedule.ScheduleFutureImpl$3
 org.apache.ignite.internal.processors.schedule.ScheduleFutureImpl$4
-org.apache.ignite.internal.processors.security.GridSecurityContext
 org.apache.ignite.internal.processors.security.os.GridOsSecurityProcessor$1
 
org.apache.ignite.internal.processors.security.os.GridOsSecurityProcessor$GridSecuritySubjectAdapter
 org.apache.ignite.internal.processors.service.GridServiceAssignments

Reply via email to