You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2014/12/05 15:22:56 UTC

[20/20] incubator-ignite git commit: # Renaming

# Renaming


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

Branch: refs/heads/master
Commit: 8c20bddb3ddc4beaaace880e5dc744e59a878bc5
Parents: ef258ec
Author: sboikov <sb...@gridgain.com>
Authored: Fri Dec 5 17:17:20 2014 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Dec 5 17:17:20 2014 +0300

----------------------------------------------------------------------
 .../src/main/java/org/apache/ignite/Ignite.java |   2 +-
 .../java/org/apache/ignite/IgniteState.java     |   2 +-
 .../configuration/IgniteConfiguration.java      |   6 +-
 .../events/IgniteAuthenticationEvent.java       |   2 +-
 .../ignite/events/IgniteAuthorizationEvent.java |   2 +-
 .../ignite/events/IgniteSecureSessionEvent.java |   2 +-
 .../ignite/plugin/security/GridSecurity.java    |  89 +++++++++
 .../security/GridSecurityCredentials.java       | 196 +++++++++++++++++++
 .../GridSecurityCredentialsBasicProvider.java   |  36 ++++
 .../GridSecurityCredentialsProvider.java        |  41 ++++
 .../plugin/security/GridSecurityException.java  |  50 +++++
 .../plugin/security/GridSecurityPermission.java |  61 ++++++
 .../security/GridSecurityPermissionSet.java     |  58 ++++++
 .../plugin/security/GridSecuritySubject.java    |  55 ++++++
 .../security/GridSecuritySubjectType.java       |  40 ++++
 .../apache/ignite/plugin/security/package.html  |  15 ++
 .../segmentation/GridSegmentationPolicy.java    |  40 ++++
 .../segmentation/GridSegmentationResolver.java  |  56 ++++++
 .../ignite/plugin/segmentation/package.html     |  15 ++
 .../org/apache/ignite/spi/IgniteSpiAdapter.java |   2 +-
 .../org/apache/ignite/spi/IgniteSpiContext.java |   2 +-
 .../AuthenticationAclProvider.java              |   2 +-
 .../authentication/AuthenticationContext.java   |   2 +-
 .../AuthenticationContextAdapter.java           |   2 +-
 .../spi/authentication/AuthenticationSpi.java   |   2 +-
 .../noop/NoopAuthenticationSpi.java             |   2 +-
 .../DiscoverySpiNodeAuthenticator.java          |   2 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |   2 +-
 .../java/org/apache/ignite/spi/package.html     |  15 ++
 .../spi/securesession/SecureSessionSpi.java     |   2 +-
 .../noop/NoopSecureSessionSpi.java              |   2 +-
 .../client/GridClientConfiguration.java         |   2 +-
 .../GridClientConnectionManagerAdapter.java     |   2 +-
 .../router/GridTcpRouterConfiguration.java      |   2 +-
 .../org/gridgain/grid/kernal/GridGainEx.java    |   4 +-
 .../org/gridgain/grid/kernal/GridKernal.java    |   2 +-
 .../grid/kernal/GridTaskFutureImpl.java         |   2 +-
 .../kernal/managers/GridManagerAdapter.java     |   2 +-
 .../discovery/GridDiscoveryManager.java         |   6 +-
 .../eventstorage/GridEventStorageManager.java   |   2 +-
 .../securesession/GridSecureSessionManager.java |   2 +-
 .../os/GridOsSecureSessionManager.java          |   2 +-
 .../security/GridAllowAllPermissionSet.java     |   2 +-
 .../managers/security/GridSecurityContext.java  |   2 +-
 .../managers/security/GridSecurityImpl.java     |   2 +-
 .../managers/security/GridSecurityManager.java  |   2 +-
 .../security/GridSecuritySubjectAdapter.java    |   2 +-
 .../security/os/GridOsSecurityManager.java      |   2 +-
 .../processors/cache/GridCacheAdapter.java      |   2 +-
 .../processors/cache/GridCacheContext.java      |   2 +-
 .../cache/GridCacheTxLocalAdapter.java          |   2 +-
 .../dht/atomic/GridDhtAtomicCache.java          |   2 +-
 .../dht/colocated/GridDhtColocatedCache.java    |   2 +-
 .../distributed/near/GridNearAtomicCache.java   |   2 +-
 .../near/GridNearTransactionalCache.java        |   2 +-
 .../local/atomic/GridLocalAtomicCache.java      |   2 +-
 .../cache/query/GridCacheQueryAdapter.java      |   2 +-
 .../GridCacheContinuousQueryAdapter.java        |   2 +-
 .../processors/rest/GridRestProcessor.java      |   4 +-
 .../processors/task/GridTaskProcessor.java      |   2 +-
 .../event/VisorGridAuthenticationEvent.java     |   2 +-
 .../event/VisorGridAuthorizationEvent.java      |   2 +-
 .../event/VisorGridSecuritySessionEvent.java    |   2 +-
 .../node/VisorSegmentationConfiguration.java    |   2 +-
 .../gridgain/grid/security/GridSecurity.java    |  89 ---------
 .../grid/security/GridSecurityCredentials.java  | 196 -------------------
 .../GridSecurityCredentialsBasicProvider.java   |  36 ----
 .../GridSecurityCredentialsProvider.java        |  41 ----
 .../grid/security/GridSecurityException.java    |  50 -----
 .../grid/security/GridSecurityPermission.java   |  61 ------
 .../security/GridSecurityPermissionSet.java     |  58 ------
 .../grid/security/GridSecuritySubject.java      |  55 ------
 .../grid/security/GridSecuritySubjectType.java  |  40 ----
 .../org/gridgain/grid/security/package.html     |  15 --
 .../segmentation/GridSegmentationPolicy.java    |  40 ----
 .../segmentation/GridSegmentationResolver.java  |  56 ------
 .../org/gridgain/grid/segmentation/package.html |  15 --
 .../java/org/gridgain/grid/spi/package.html     |  15 --
 .../GridAbstractDiscoverySelfTest.java          |   2 +-
 .../GridTcpDiscoverySpiStartStopSelfTest.java   |   2 +-
 .../grid/kernal/GridLifecycleAwareSelfTest.java |   2 +-
 .../testframework/GridSpiTestContext.java       |   2 +-
 .../junits/spi/GridSpiAbstractTest.java         |   2 +-
 .../http/jetty/GridJettyRestHandler.java        |   2 +-
 .../java/org/gridgain/grid/GridSpringBean.java  |   2 +-
 pom.xml                                         |   8 +-
 86 files changed, 834 insertions(+), 834 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/Ignite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/Ignite.java b/modules/core/src/main/java/org/apache/ignite/Ignite.java
index a6ff544..8b550f1 100644
--- a/modules/core/src/main/java/org/apache/ignite/Ignite.java
+++ b/modules/core/src/main/java/org/apache/ignite/Ignite.java
@@ -16,7 +16,7 @@ import org.apache.ignite.product.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.hadoop.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.typedef.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/IgniteState.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteState.java b/modules/core/src/main/java/org/apache/ignite/IgniteState.java
index 5a067ae..4c3905e 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteState.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteState.java
@@ -9,7 +9,7 @@
 
 package org.apache.ignite;
 
-import org.gridgain.grid.segmentation.*;
+import org.apache.ignite.plugin.segmentation.*;
 import org.jetbrains.annotations.*;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
index 73233e4..92bcdab 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
@@ -26,8 +26,8 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.dotnet.*;
 import org.gridgain.grid.hadoop.*;
 import org.gridgain.grid.kernal.managers.eventstorage.*;
-import org.gridgain.grid.security.*;
-import org.gridgain.grid.segmentation.*;
+import org.apache.ignite.plugin.security.*;
+import org.apache.ignite.plugin.segmentation.*;
 import org.apache.ignite.spi.checkpoint.*;
 import org.apache.ignite.spi.collision.*;
 import org.apache.ignite.spi.communication.*;
@@ -47,7 +47,7 @@ import java.net.*;
 import java.util.*;
 import java.util.concurrent.*;
 
-import static org.gridgain.grid.segmentation.GridSegmentationPolicy.*;
+import static org.apache.ignite.plugin.segmentation.GridSegmentationPolicy.*;
 
 /**
  * This class defines grid runtime configuration. This configuration is passed to

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/events/IgniteAuthenticationEvent.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/events/IgniteAuthenticationEvent.java b/modules/core/src/main/java/org/apache/ignite/events/IgniteAuthenticationEvent.java
index 3c7e8d1..08922e8 100644
--- a/modules/core/src/main/java/org/apache/ignite/events/IgniteAuthenticationEvent.java
+++ b/modules/core/src/main/java/org/apache/ignite/events/IgniteAuthenticationEvent.java
@@ -10,7 +10,7 @@
 package org.apache.ignite.events;
 
 import org.apache.ignite.cluster.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.tostring.*;
 import org.gridgain.grid.util.typedef.internal.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/events/IgniteAuthorizationEvent.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/events/IgniteAuthorizationEvent.java b/modules/core/src/main/java/org/apache/ignite/events/IgniteAuthorizationEvent.java
index 7722c02..3156a79 100644
--- a/modules/core/src/main/java/org/apache/ignite/events/IgniteAuthorizationEvent.java
+++ b/modules/core/src/main/java/org/apache/ignite/events/IgniteAuthorizationEvent.java
@@ -10,7 +10,7 @@
 package org.apache.ignite.events;
 
 import org.apache.ignite.cluster.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.typedef.internal.*;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/events/IgniteSecureSessionEvent.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/events/IgniteSecureSessionEvent.java b/modules/core/src/main/java/org/apache/ignite/events/IgniteSecureSessionEvent.java
index 482ea8f..87aa34d 100644
--- a/modules/core/src/main/java/org/apache/ignite/events/IgniteSecureSessionEvent.java
+++ b/modules/core/src/main/java/org/apache/ignite/events/IgniteSecureSessionEvent.java
@@ -10,7 +10,7 @@
 package org.apache.ignite.events;
 
 import org.apache.ignite.cluster.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.typedef.internal.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurity.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurity.java b/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurity.java
new file mode 100644
index 0000000..bff63e9
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurity.java
@@ -0,0 +1,89 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.plugin.security;
+
+import org.gridgain.grid.*;
+
+import java.util.*;
+
+/**
+ * Grid security facade. This facade contains information about authenticated subjects
+ * currently logged in to grid together with their permission sets.
+ * <p>
+ * You can get an instance of security facade from {@link org.apache.ignite.Ignite#security()} method.
+ * <h1 class="header">Grid Nodes vs Remote Clients</h1>
+ * When security is enabled, both grid nodes and remote clients must be authenticated.
+ * For grid nodes, authentication parameters are specified in grid configuration via
+ * {@link org.apache.ignite.configuration.IgniteConfiguration#getSecurityCredentialsProvider()} provider. Here is an example
+ * of how a simple user name and password may be provided:
+ * <pre class="brush: java">
+ *     GridConfiguration cfg = new GridConfiguration();
+ *
+ *     GridSecurityCredentials creds = new GridSecurityCredentials("username", "password");
+ *
+ *     cfg.setSecurityCredentialsProvider(new GridSecurityCredentialsBasicProvider(creds));
+ *
+ *     Grid grid = GridGain.start(cfg);
+ * </pre>
+ * For remote Java client, configuration is provided in a similar way by specifying
+ * {@code GridClientConfiguration.setSecurityCredentialsProvider(...)} property.
+ * <p>
+ * For remote C++ and .NET clients, security credentials are provided in configuration
+ * as well in the form of {@code "username:password"} string.
+ * <h1 class="header">Authentication And Authorization</h1>
+ * Node or client authentication happens in {@link org.apache.ignite.spi.authentication.AuthenticationSpi}. Upon successful
+ * authentication, the SPI will return list of permissions for authenticated subject.
+ * <p>
+ * GridGain ships with following authentication SPIs out of the box:
+ * <ul>
+ * <li>{@code GridJaasAuthenticationSpi} - provides authentication based on JAAS standard.</li>
+ * <li>{@code GridPasscodeAuthenticationSpi} - basic username and password authentication.</li>
+ * </ul>
+ * All permissions supported by GridGain are provided in {@link GridSecurityPermission} enum. Permissions
+ * are specified on per-cache or per-task level (wildcards are allowed). Authentication SPIs should usually
+ * (although not required) specify security permissions in the following JSON format:
+ * <pre class="brush: text">
+ * {
+ *     {
+ *         "cache":"partitioned",
+ *         "permissions":["CACHE_PUT", "CACHE_REMOVE", "CACHE_READ"]
+ *     },
+ *     {
+ *         "cache":"*",
+ *         "permissions":["CACHE_READ"]
+ *     },
+ *     {
+ *         "task":"org.mytasks.*",
+ *         "permissions":["TASK_EXECUTE"]
+ *     },
+ *     {
+ *         "system":["EVENTS_ENABLE", "ADMIN_VIEW"]
+ *     }
+ *     "defaultAllow":"false"
+ * }
+ * </pre>
+ * Refer to documentation of available authentication SPIs for more information.
+ */
+public interface GridSecurity {
+    /**
+     * Gets collection of authenticated subjects together with their permissions.
+     *
+     * @return Collection of authenticated subjects.
+     */
+    public Collection<GridSecuritySubject> authenticatedSubjects() throws GridException;
+
+    /**
+     * Gets security subject based on subject ID.
+     *
+     * @param subjId Subject ID.
+     * @return Authorized security subject.
+     */
+    public GridSecuritySubject authenticatedSubject(UUID subjId) throws GridException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityCredentials.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityCredentials.java b/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityCredentials.java
new file mode 100644
index 0000000..2f8a885
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityCredentials.java
@@ -0,0 +1,196 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.plugin.security;
+
+import org.apache.ignite.portables.*;
+import org.gridgain.grid.util.tostring.*;
+import org.gridgain.grid.util.typedef.*;
+import org.gridgain.grid.util.typedef.internal.*;
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+
+/**
+ * Security credentials used for client or node authentication. Security credentials
+ * are provided by {@link GridSecurityCredentialsProvider} which is specified on
+ * client or node startup in configuration.
+ * <p>
+ * For grid node, security credentials provider is specified in
+ * {@link org.apache.ignite.configuration.IgniteConfiguration#setSecurityCredentialsProvider(GridSecurityCredentialsProvider)}
+ * configuration property. For Java clients, you can provide credentials in
+ * {@code GridClientConfiguration.setSecurityCredentialsProvider(...)} method.
+ * <p>
+ * Getting credentials through {@link GridSecurityCredentialsProvider} abstraction allows
+ * users to provide custom implementations for storing user names and passwords in their
+ * environment, possibly in encrypted format. GridGain comes with
+ * {@link GridSecurityCredentialsBasicProvider} which simply provides
+ * the passed in {@code login} and {@code password} when encryption or custom logic is not required.
+ * <p>
+ * In addition to {@code login} and {@code password}, security credentials allow for
+ * specifying {@link #setUserObject(Object) userObject} as well, which can be used
+ * to pass in any additional information required for authentication.
+ */
+public class GridSecurityCredentials implements Externalizable, PortableMarshalAware {
+    /** */
+    private static final long serialVersionUID = -2655741071578326256L;
+
+    /** Login. */
+    private Object login;
+
+    /** Password. */
+    @GridToStringExclude
+    private Object password;
+
+    /** Additional user object. */
+    @GridToStringExclude
+    private Object userObj;
+
+    /**
+     * Empty constructor required by {@link Externalizable}.
+     */
+    public GridSecurityCredentials() {
+        // No-op.
+    }
+
+    /**
+     * Constructs security credentials based on {@code login} and {@code password}.
+     *
+     * @param login Login.
+     * @param password Password.
+     */
+    public GridSecurityCredentials(String login, String password) {
+        this.login = login;
+        this.password = password;
+    }
+
+    /**
+     * Constructs security credentials based on {@code login}, {@code password},
+     * and custom user object.
+     *
+     * @param login Login.
+     * @param password Password.
+     * @param userObj User object.
+     */
+    public GridSecurityCredentials(String login, String password, @Nullable Object userObj) {
+        this.login = login;
+        this.password = password;
+        this.userObj = userObj;
+    }
+
+    /**
+     * Gets login.
+     *
+     * @return Login.
+     */
+    public Object getLogin() {
+        return login;
+    }
+
+    /**
+     * Sets login.
+     *
+     * @param login Login.
+     */
+    public void setLogin(Object login) {
+        this.login = login;
+    }
+
+    /**
+     * Gets password.
+     *
+     * @return Password.
+     */
+    public Object getPassword() {
+        return password;
+    }
+
+    /**
+     * Sets password.
+     *
+     * @param password Password.
+     */
+    public void setPassword(Object password) {
+        this.password = password;
+    }
+
+    /**
+     * Gets user-specific object.
+     *
+     * @return User object.
+     */
+    @Nullable public Object getUserObject() {
+        return userObj;
+    }
+
+    /**
+     * Sets user-specific object.
+     *
+     * @param userObj User object.
+     */
+    public void setUserObject(@Nullable Object userObj) {
+        this.userObj = userObj;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        out.writeObject(login);
+        out.writeObject(password);
+        out.writeObject(userObj);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        login = in.readObject();
+        password = in.readObject();
+        userObj = in.readObject();
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean equals(Object o) {
+        if (this == o)
+            return true;
+
+        if (!(o instanceof GridSecurityCredentials))
+            return false;
+
+        GridSecurityCredentials that = (GridSecurityCredentials)o;
+
+        return F.eq(login, that.login) && F.eq(password, that.password) && F.eq(userObj, that.userObj);
+    }
+
+    /** {@inheritDoc} */
+    @Override public int hashCode() {
+        int res = login != null ? login.hashCode() : 0;
+
+        res = 31 * res + (password != null ? password.hashCode() : 0);
+        res = 31 * res + (userObj != null ? userObj.hashCode() : 0);
+
+        return res;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writePortable(PortableWriter writer) throws PortableException {
+        writer.rawWriter().writeObject(login);
+        writer.rawWriter().writeObject(password);
+        writer.rawWriter().writeObject(userObj);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readPortable(PortableReader reader) throws PortableException {
+        login = reader.rawReader().readObject();
+        password = reader.rawReader().readObject();
+        userObj = reader.rawReader().readObject();
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(GridSecurityCredentials.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityCredentialsBasicProvider.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityCredentialsBasicProvider.java b/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityCredentialsBasicProvider.java
new file mode 100644
index 0000000..1cc184b
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityCredentialsBasicProvider.java
@@ -0,0 +1,36 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.plugin.security;
+
+import org.gridgain.grid.*;
+
+/**
+ * Basic implementation for {@link GridSecurityCredentialsProvider}. Use it
+ * when custom logic for storing security credentials is not required and it
+ * is OK to specify credentials directly in configuration.
+ */
+public class GridSecurityCredentialsBasicProvider implements GridSecurityCredentialsProvider {
+    /** */
+    private GridSecurityCredentials cred;
+
+    /**
+     * Constructs security credentials provider based on security credentials passed in.
+     *
+     * @param cred Security credentials.
+     */
+    public GridSecurityCredentialsBasicProvider(GridSecurityCredentials cred) {
+        this.cred = cred;
+    }
+
+    /** {@inheritDoc} */
+    @Override public GridSecurityCredentials credentials() throws GridException {
+        return cred;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityCredentialsProvider.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityCredentialsProvider.java b/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityCredentialsProvider.java
new file mode 100644
index 0000000..2cfb328
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityCredentialsProvider.java
@@ -0,0 +1,41 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.plugin.security;
+
+import org.gridgain.grid.*;
+
+/**
+ * Security credentials provider for specifying security credentials.
+ * Security credentials used for client or node authentication.
+ * <p>
+ * For grid node, security credentials provider is specified in
+ * {@link org.apache.ignite.configuration.IgniteConfiguration#setSecurityCredentialsProvider(GridSecurityCredentialsProvider)}
+ * configuration property. For Java clients, you can provide credentials in
+ * {@code GridClientConfiguration.setSecurityCredentialsProvider(...)} method.
+ * <p>
+ * Getting credentials through {@link GridSecurityCredentialsProvider} abstraction allows
+ * users to provide custom implementations for storing user names and passwords in their
+ * environment, possibly in encrypted format. GridGain comes with
+ * {@link GridSecurityCredentialsBasicProvider} which simply provides
+ * the passed in {@code login} and {@code password} when encryption or custom logic is not required.
+ * <p>
+ * In addition to {@code login} and {@code password}, security credentials allow for
+ * specifying {@link GridSecurityCredentials#setUserObject(Object) userObject} as well, which can be used
+ * to pass in any additional information required for authentication.
+ */
+public interface GridSecurityCredentialsProvider {
+    /**
+     * Gets security credentials.
+     *
+     * @return Security credentials.
+     * @throws GridException If failed.
+     */
+    public GridSecurityCredentials credentials() throws GridException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityException.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityException.java b/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityException.java
new file mode 100644
index 0000000..b8899df
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityException.java
@@ -0,0 +1,50 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.plugin.security;
+
+import org.gridgain.grid.*;
+import org.jetbrains.annotations.*;
+
+/**
+ * Common security exception for the grid.
+ */
+public class GridSecurityException extends GridRuntimeException {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /**
+     * Constructs security grid exception with given message and cause.
+     *
+     * @param msg Exception message.
+     * @param cause Exception cause.
+     */
+    public GridSecurityException(String msg, @Nullable Throwable cause) {
+        super(msg, cause);
+    }
+
+    /**
+     * Creates new security grid exception given throwable as a cause and
+     * source of error message.
+     *
+     * @param cause Non-null throwable cause.
+     */
+    public GridSecurityException(Throwable cause) {
+        this(cause.getMessage(), cause);
+    }
+
+    /**
+     * Constructs security grid exception with given message.
+     *
+     * @param msg Exception message.
+     */
+    public GridSecurityException(String msg) {
+        super(msg);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityPermission.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityPermission.java b/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityPermission.java
new file mode 100644
index 0000000..fcb43fe
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityPermission.java
@@ -0,0 +1,61 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.plugin.security;
+
+import org.jetbrains.annotations.*;
+
+/**
+ * Supported security permissions within grid. Permissions
+ * are specified on per-cache or per-task level.
+ */
+public enum GridSecurityPermission {
+    /** Cache {@code read} permission. */
+    CACHE_READ,
+
+    /** Cache {@code put} permission. */
+    CACHE_PUT,
+
+    /** Cache {@code remove} permission. */
+    CACHE_REMOVE,
+
+    /** Task {@code execute} permission. */
+    TASK_EXECUTE,
+
+    /** Task {@code cancel} permission. */
+    TASK_CANCEL,
+
+    /** Events {@code enable} permission. */
+    EVENTS_ENABLE,
+
+    /** Events {@code disable} permission. */
+    EVENTS_DISABLE,
+
+    /** Common visor tasks permission. */
+    ADMIN_VIEW,
+
+    /** Visor cache read (query) permission. */
+    ADMIN_QUERY,
+
+    /** Visor cache load permission. */
+    ADMIN_CACHE;
+
+    /** Enumerated values. */
+    private static final GridSecurityPermission[] VALS = values();
+
+    /**
+     * Efficiently gets enumerated value from its ordinal.
+     *
+     * @param ord Ordinal value.
+     * @return Enumerated value or {@code null} if ordinal out of range.
+     */
+    @Nullable public static GridSecurityPermission fromOrdinal(int ord) {
+        return ord >= 0 && ord < VALS.length ? VALS[ord] : null;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityPermissionSet.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityPermissionSet.java b/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityPermissionSet.java
new file mode 100644
index 0000000..8e7a534
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecurityPermissionSet.java
@@ -0,0 +1,58 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.plugin.security;
+
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Security permission set for authorized security subjects. Permission set
+ * allows to specify task permissions for every task and cache permissions
+ * for every cache. While cards are supported at the end of task or
+ * cache name.
+ * <p>
+ * Property {@link #defaultAllowAll()} specifies whether to allow or deny
+ * cache and task operations if they were not explicitly specified.
+ */
+public interface GridSecurityPermissionSet extends Serializable {
+    /**
+     * Flag indicating whether to allow or deny cache and task operations
+     * if they were not explicitly specified.
+     *
+     * @return {@code True} to allow all cache task operations if they were
+     *      not explicitly specified, {@code false} otherwise.
+     */
+    public boolean defaultAllowAll();
+
+    /**
+     * Map of task names to task permissions. Wildcards are allowed at the
+     * end of task names.
+     *
+     * @return Map of task names to task permissions.
+     */
+    public Map<String, Collection<GridSecurityPermission>> taskPermissions();
+
+    /**
+     * Map of cache names to cache permissions. Wildcards are allowed at the
+     * end of cache names.
+     *
+     * @return Map of cache names to cache permissions.
+     */
+    public Map<String, Collection<GridSecurityPermission>> cachePermissions();
+
+    /**
+     * Collection of system-wide permissions (events enable/disable, Visor task execution).
+     *
+     * @return Collection of system-wide permissions.
+     */
+    @Nullable public Collection<GridSecurityPermission> systemPermissions();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecuritySubject.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecuritySubject.java b/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecuritySubject.java
new file mode 100644
index 0000000..74ca013
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecuritySubject.java
@@ -0,0 +1,55 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.plugin.security;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+/**
+ * Security subject representing authenticated node or client with a set of permissions.
+ * List of authenticated subjects can be retrieved from {@link GridSecurity#authenticatedSubjects()} method.
+ */
+public interface GridSecuritySubject extends Serializable {
+    /**
+     * Gets subject ID.
+     *
+     * @return Subject ID.
+     */
+    public UUID id();
+
+    /**
+     * Gets subject type, either node or client.
+     *
+     * @return Subject type.
+     */
+    public GridSecuritySubjectType type();
+
+    /**
+     * Login provided via subject security credentials.
+     *
+     * @return Login object.
+     */
+    public Object login();
+
+    /**
+     * Gets subject connection address. Usually {@link InetSocketAddress} representing connection IP and port.
+     *
+     * @return Subject connection address.
+     */
+    public InetSocketAddress address();
+
+    /**
+     * Authorized permission set for the subject.
+     *
+     * @return Authorized permission set for the subject.
+     */
+    public GridSecurityPermissionSet permissions();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecuritySubjectType.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecuritySubjectType.java b/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecuritySubjectType.java
new file mode 100644
index 0000000..5b912c2
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/plugin/security/GridSecuritySubjectType.java
@@ -0,0 +1,40 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.plugin.security;
+
+import org.jetbrains.annotations.*;
+
+/**
+ * Supported security subject types. Subject type can be retrieved form {@link GridSecuritySubject#type()} method.
+ */
+public enum GridSecuritySubjectType {
+    /**
+     * Subject type for a remote {@link org.apache.ignite.cluster.ClusterNode}.
+     */
+    REMOTE_NODE,
+
+    /**
+     * Subject type for remote client.
+     */
+    REMOTE_CLIENT;
+
+    /** Enumerated values. */
+    private static final GridSecuritySubjectType[] VALS = values();
+
+    /**
+     * Efficiently gets enumerated value from its ordinal.
+     *
+     * @param ord Ordinal value.
+     * @return Enumerated value.
+     */
+    @Nullable public static GridSecuritySubjectType fromOrdinal(byte ord) {
+        return ord >= 0 && ord < VALS.length ? VALS[ord] : null;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/plugin/security/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/security/package.html b/modules/core/src/main/java/org/apache/ignite/plugin/security/package.html
new file mode 100644
index 0000000..bd468a3
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/plugin/security/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains APIs for security, authentication, and authorization.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/GridSegmentationPolicy.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/GridSegmentationPolicy.java b/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/GridSegmentationPolicy.java
new file mode 100644
index 0000000..fb7afda
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/GridSegmentationPolicy.java
@@ -0,0 +1,40 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.plugin.segmentation;
+
+/**
+ * Policy that defines how node will react on topology segmentation. Note that default
+ * segmentation policy is defined by {@link org.apache.ignite.configuration.IgniteConfiguration#DFLT_SEG_PLC} property.
+ * @see GridSegmentationResolver
+ */
+public enum GridSegmentationPolicy {
+    /**
+     * When segmentation policy is {@code RESTART_JVM}, all listeners will receive
+     * {@link org.apache.ignite.events.IgniteEventType#EVT_NODE_SEGMENTED} event and then JVM will be restarted.
+     * Note, that this will work <b>only</b> if GridGain is started with {@link org.apache.ignite.startup.cmdline.CommandLineStartup}
+     * via standard {@code ggstart.{sh|bat}} shell script.
+     */
+    RESTART_JVM,
+
+    /**
+     * When segmentation policy is {@code STOP}, all listeners will receive
+     * {@link org.apache.ignite.events.IgniteEventType#EVT_NODE_SEGMENTED} event and then particular grid node
+     * will be stopped via call to {@link org.apache.ignite.Ignition#stop(String, boolean)}.
+     */
+    STOP,
+
+    /**
+     * When segmentation policy is {@code NOOP}, all listeners will receive
+     * {@link org.apache.ignite.events.IgniteEventType#EVT_NODE_SEGMENTED} event and it is up to user to
+     * implement logic to handle this event.
+     */
+    NOOP
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/GridSegmentationResolver.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/GridSegmentationResolver.java b/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/GridSegmentationResolver.java
new file mode 100644
index 0000000..6b8418b
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/GridSegmentationResolver.java
@@ -0,0 +1,56 @@
+/* @java.file.header */
+
+/*  _________        _____ __________________        _____
+ *  __  ____/___________(_)______  /__  ____/______ ____(_)_______
+ *  _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+ *  / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+ *  \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+ */
+
+package org.apache.ignite.plugin.segmentation;
+
+import org.gridgain.grid.*;
+
+import java.io.*;
+
+/**
+ * This is interface for segmentation (a.k.a "split-brain" problem) resolvers.
+ * <p>
+ * Each segmentation resolver checks segment for validity, using its inner logic.
+ * Typically, resolver should run light-weight single check (i.e. one IP address or
+ * one shared folder). Compound segment checks may be performed using several
+ * resolvers.
+ * <p>
+ * Note that GridGain support a logical segmentation and not limited to network
+ * related segmentation only. For example, a particular segmentation resolver
+ * can check for specific application or service present on the network and
+ * mark the topology as segmented in case it is not available. In other words
+ * you can equate the service outage with network outage via segmentation resolution
+ * and employ the unified approach in dealing with these types of problems.
+ * @see org.apache.ignite.configuration.IgniteConfiguration#getSegmentationResolvers()
+ * @see org.apache.ignite.configuration.IgniteConfiguration#getSegmentationPolicy()
+ * @see org.apache.ignite.configuration.IgniteConfiguration#getSegmentCheckFrequency()
+ * @see org.apache.ignite.configuration.IgniteConfiguration#isAllSegmentationResolversPassRequired()
+ * @see org.apache.ignite.configuration.IgniteConfiguration#isWaitForSegmentOnStart()
+ * @see GridSegmentationPolicy
+ */
+public interface GridSegmentationResolver extends Serializable {
+    /**
+     * Checks whether segment is valid.
+     * <p>
+     * When segmentation happens every node ends up in either one of two segments:
+     * <ul>
+     *     <li>Correct segment</li>
+     *     <li>Invalid segment</li>
+     * </ul>
+     * Nodes in correct segment will continue operate as if nodes in the invalid segment
+     * simply left the topology (i.e. the topology just got "smaller"). Nodes in the
+     * invalid segment will realized that were "left out or disconnected" from the correct segment
+     * and will try to reconnect via {@link GridSegmentationPolicy segmentation policy} set
+     * in configuration.
+     *
+     * @return {@code True} if segment is correct, {@code false} otherwise.
+     * @throws GridException If an error occurred.
+     */
+    public abstract boolean isValidSegment() throws GridException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/package.html b/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/package.html
new file mode 100644
index 0000000..a4754a1
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains segmentation "split-brain" related classes.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java
index 561414b..3d73650 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java
@@ -18,7 +18,7 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.managers.communication.*;
 import org.gridgain.grid.kernal.managers.eventstorage.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.apache.ignite.spi.securesession.*;
 import org.apache.ignite.spi.swapspace.*;
 import org.gridgain.grid.util.direct.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiContext.java b/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiContext.java
index 39b281f..5d5dfb7 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiContext.java
@@ -14,7 +14,7 @@ import org.apache.ignite.events.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.kernal.managers.communication.*;
 import org.gridgain.grid.kernal.managers.eventstorage.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.apache.ignite.spi.swapspace.*;
 import org.gridgain.grid.util.direct.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/spi/authentication/AuthenticationAclProvider.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/authentication/AuthenticationAclProvider.java b/modules/core/src/main/java/org/apache/ignite/spi/authentication/AuthenticationAclProvider.java
index c05e5db..e8c2b84 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/authentication/AuthenticationAclProvider.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/authentication/AuthenticationAclProvider.java
@@ -10,7 +10,7 @@
 package org.apache.ignite.spi.authentication;
 
 import org.gridgain.grid.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 
 import java.util.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/spi/authentication/AuthenticationContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/authentication/AuthenticationContext.java b/modules/core/src/main/java/org/apache/ignite/spi/authentication/AuthenticationContext.java
index eb9dc8b..4e37ef9 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/authentication/AuthenticationContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/authentication/AuthenticationContext.java
@@ -9,7 +9,7 @@
 
 package org.apache.ignite.spi.authentication;
 
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 
 import java.net.*;
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/spi/authentication/AuthenticationContextAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/authentication/AuthenticationContextAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/authentication/AuthenticationContextAdapter.java
index e5bffb7..e53f2c6 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/authentication/AuthenticationContextAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/authentication/AuthenticationContextAdapter.java
@@ -9,7 +9,7 @@
 
 package org.apache.ignite.spi.authentication;
 
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 
 import java.net.*;
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/spi/authentication/AuthenticationSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/authentication/AuthenticationSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/authentication/AuthenticationSpi.java
index 7698508..6945ac2 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/authentication/AuthenticationSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/authentication/AuthenticationSpi.java
@@ -10,7 +10,7 @@
 package org.apache.ignite.spi.authentication;
 
 import org.apache.ignite.spi.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 
 /**
  * Authentication SPI used for authenticating grid nodes and remote clients. This SPI

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/spi/authentication/noop/NoopAuthenticationSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/authentication/noop/NoopAuthenticationSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/authentication/noop/NoopAuthenticationSpi.java
index 3ef7ced..3fb9404 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/authentication/noop/NoopAuthenticationSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/authentication/noop/NoopAuthenticationSpi.java
@@ -14,7 +14,7 @@ import org.apache.ignite.resources.*;
 import org.apache.ignite.spi.*;
 import org.apache.ignite.spi.authentication.*;
 import org.gridgain.grid.kernal.managers.security.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.tostring.*;
 import org.gridgain.grid.util.typedef.internal.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiNodeAuthenticator.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiNodeAuthenticator.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiNodeAuthenticator.java
index dd9fc3a..456d6a3 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiNodeAuthenticator.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/DiscoverySpiNodeAuthenticator.java
@@ -12,7 +12,7 @@ package org.apache.ignite.spi.discovery;
 import org.apache.ignite.cluster.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.kernal.managers.security.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 
 /**
  * Node authenticator.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 32d3f54..7f6d5c1 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -19,7 +19,7 @@ import org.apache.ignite.spi.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.managers.security.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.apache.ignite.spi.discovery.*;
 import org.apache.ignite.spi.discovery.tcp.internal.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/spi/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/package.html b/modules/core/src/main/java/org/apache/ignite/spi/package.html
new file mode 100644
index 0000000..72117f8
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/spi/package.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+    @html.file.header
+    _________        _____ __________________        _____
+    __  ____/___________(_)______  /__  ____/______ ____(_)_______
+    _  / __  __  ___/__  / _  __  / _  / __  _  __ `/__  / __  __ \
+    / /_/ /  _  /    _  /  / /_/ /  / /_/ /  / /_/ / _  /  _  / / /
+    \____/   /_/     /_/   \_,__/   \____/   \__,_/  /_/   /_/ /_/
+-->
+<html>
+<body>
+    <!-- Package description. -->
+    Contains common classes and interfaces for SPI implementations.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/spi/securesession/SecureSessionSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/securesession/SecureSessionSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/securesession/SecureSessionSpi.java
index 4fbff22..85ee7dd 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/securesession/SecureSessionSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/securesession/SecureSessionSpi.java
@@ -10,7 +10,7 @@
 package org.apache.ignite.spi.securesession;
 
 import org.apache.ignite.spi.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.jetbrains.annotations.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionSpi.java
index e281f02..35cd089 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionSpi.java
@@ -12,7 +12,7 @@ package org.apache.ignite.spi.securesession.noop;
 import org.apache.ignite.*;
 import org.apache.ignite.resources.*;
 import org.apache.ignite.spi.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.apache.ignite.spi.securesession.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/client/GridClientConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/client/GridClientConfiguration.java b/modules/core/src/main/java/org/gridgain/client/GridClientConfiguration.java
index 12ae587..3555f05 100644
--- a/modules/core/src/main/java/org/gridgain/client/GridClientConfiguration.java
+++ b/modules/core/src/main/java/org/gridgain/client/GridClientConfiguration.java
@@ -15,7 +15,7 @@ import org.gridgain.client.marshaller.*;
 import org.gridgain.client.marshaller.jdk.*;
 import org.gridgain.client.marshaller.optimized.*;
 import org.gridgain.client.ssl.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/client/impl/connection/GridClientConnectionManagerAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/client/impl/connection/GridClientConnectionManagerAdapter.java b/modules/core/src/main/java/org/gridgain/client/impl/connection/GridClientConnectionManagerAdapter.java
index c181141..273bbfa 100644
--- a/modules/core/src/main/java/org/gridgain/client/impl/connection/GridClientConnectionManagerAdapter.java
+++ b/modules/core/src/main/java/org/gridgain/client/impl/connection/GridClientConnectionManagerAdapter.java
@@ -16,7 +16,7 @@ import org.gridgain.client.impl.*;
 import org.gridgain.client.util.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.kernal.processors.rest.client.message.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.direct.*;
 import org.gridgain.grid.util.nio.*;
 import org.gridgain.grid.util.nio.ssl.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/client/router/GridTcpRouterConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/client/router/GridTcpRouterConfiguration.java b/modules/core/src/main/java/org/gridgain/client/router/GridTcpRouterConfiguration.java
index b2ebb52..ee89c84 100644
--- a/modules/core/src/main/java/org/gridgain/client/router/GridTcpRouterConfiguration.java
+++ b/modules/core/src/main/java/org/gridgain/client/router/GridTcpRouterConfiguration.java
@@ -3,7 +3,7 @@ package org.gridgain.client.router;
 import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.gridgain.client.ssl.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java b/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
index 1401e06..9d72e65 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/GridGainEx.java
@@ -32,7 +32,7 @@ import org.gridgain.grid.cache.affinity.rendezvous.*;
 import org.gridgain.grid.kernal.processors.interop.*;
 import org.gridgain.grid.kernal.processors.resource.*;
 import org.gridgain.grid.kernal.processors.spring.*;
-import org.gridgain.grid.segmentation.*;
+import org.apache.ignite.plugin.segmentation.*;
 import org.apache.ignite.spi.checkpoint.*;
 import org.apache.ignite.spi.checkpoint.noop.*;
 import org.apache.ignite.spi.collision.*;
@@ -81,7 +81,7 @@ import static org.gridgain.grid.cache.GridCacheMode.*;
 import static org.gridgain.grid.cache.GridCachePreloadMode.*;
 import static org.gridgain.grid.cache.GridCacheWriteSynchronizationMode.*;
 import static org.gridgain.grid.kernal.GridComponentType.*;
-import static org.gridgain.grid.segmentation.GridSegmentationPolicy.*;
+import static org.apache.ignite.plugin.segmentation.GridSegmentationPolicy.*;
 
 /**
  * This class defines a factory for the main GridGain API. It controls Grid life cycle

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernal.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernal.java b/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernal.java
index 1f64654..d913605 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernal.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/GridKernal.java
@@ -62,7 +62,7 @@ import org.gridgain.grid.kernal.processors.session.*;
 import org.gridgain.grid.kernal.processors.streamer.*;
 import org.gridgain.grid.kernal.processors.task.*;
 import org.gridgain.grid.kernal.processors.timeout.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.apache.ignite.spi.securesession.noop.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.future.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/GridTaskFutureImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/GridTaskFutureImpl.java b/modules/core/src/main/java/org/gridgain/grid/kernal/GridTaskFutureImpl.java
index e82761a..0117f9c 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/GridTaskFutureImpl.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/GridTaskFutureImpl.java
@@ -12,7 +12,7 @@ package org.gridgain.grid.kernal;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.compute.*;
 import org.gridgain.grid.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.future.*;
 import org.gridgain.grid.util.typedef.internal.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/managers/GridManagerAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/GridManagerAdapter.java b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/GridManagerAdapter.java
index 152952b..4ceed98 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/GridManagerAdapter.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/GridManagerAdapter.java
@@ -21,7 +21,7 @@ import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.managers.communication.*;
 import org.gridgain.grid.kernal.managers.eventstorage.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.apache.ignite.spi.swapspace.*;
 import org.gridgain.grid.util.direct.*;
 import org.gridgain.grid.util.tostring.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManager.java
index 1acd9d5..48fee0d 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/discovery/GridDiscoveryManager.java
@@ -25,8 +25,8 @@ import org.gridgain.grid.kernal.managers.security.*;
 import org.gridgain.grid.kernal.processors.cache.*;
 import org.gridgain.grid.kernal.processors.jobmetrics.*;
 import org.gridgain.grid.kernal.processors.service.*;
-import org.gridgain.grid.security.*;
-import org.gridgain.grid.segmentation.*;
+import org.apache.ignite.plugin.security.*;
+import org.apache.ignite.plugin.segmentation.*;
 import org.apache.ignite.spi.discovery.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.future.*;
@@ -47,7 +47,7 @@ import java.util.zip.*;
 import static java.util.concurrent.TimeUnit.*;
 import static org.apache.ignite.events.IgniteEventType.*;
 import static org.gridgain.grid.kernal.GridNodeAttributes.*;
-import static org.gridgain.grid.segmentation.GridSegmentationPolicy.*;
+import static org.apache.ignite.plugin.segmentation.GridSegmentationPolicy.*;
 
 /**
  * Discovery SPI manager.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/managers/eventstorage/GridEventStorageManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/eventstorage/GridEventStorageManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/eventstorage/GridEventStorageManager.java
index db12d53..ade9c52 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/eventstorage/GridEventStorageManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/eventstorage/GridEventStorageManager.java
@@ -19,7 +19,7 @@ import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.managers.*;
 import org.gridgain.grid.kernal.managers.communication.*;
 import org.gridgain.grid.kernal.managers.deployment.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.apache.ignite.spi.eventstorage.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.future.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/managers/securesession/GridSecureSessionManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/securesession/GridSecureSessionManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/securesession/GridSecureSessionManager.java
index d9e9dd5..703a74b 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/securesession/GridSecureSessionManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/securesession/GridSecureSessionManager.java
@@ -12,7 +12,7 @@ package org.gridgain.grid.kernal.managers.securesession;
 import org.gridgain.grid.*;
 import org.gridgain.grid.kernal.managers.*;
 import org.gridgain.grid.kernal.managers.security.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.jetbrains.annotations.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/managers/securesession/os/GridOsSecureSessionManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/securesession/os/GridOsSecureSessionManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/securesession/os/GridOsSecureSessionManager.java
index b0350ec..a3fe176 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/securesession/os/GridOsSecureSessionManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/securesession/os/GridOsSecureSessionManager.java
@@ -14,7 +14,7 @@ import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.managers.*;
 import org.gridgain.grid.kernal.managers.securesession.*;
 import org.gridgain.grid.kernal.managers.security.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.jetbrains.annotations.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridAllowAllPermissionSet.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridAllowAllPermissionSet.java b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridAllowAllPermissionSet.java
index 80d7af1..23dd83a 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridAllowAllPermissionSet.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridAllowAllPermissionSet.java
@@ -9,7 +9,7 @@
 
 package org.gridgain.grid.kernal.managers.security;
 
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 
 import java.util.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridSecurityContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridSecurityContext.java b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridSecurityContext.java
index 678cf24..b8e93d6 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridSecurityContext.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridSecurityContext.java
@@ -9,7 +9,7 @@
 
 package org.gridgain.grid.kernal.managers.security;
 
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.typedef.internal.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridSecurityImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridSecurityImpl.java b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridSecurityImpl.java
index 789df1e..efb4df1 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridSecurityImpl.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridSecurityImpl.java
@@ -11,7 +11,7 @@ package org.gridgain.grid.kernal.managers.security;
 
 import org.gridgain.grid.*;
 import org.gridgain.grid.kernal.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 
 import java.io.*;
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridSecurityManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridSecurityManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridSecurityManager.java
index e4d79dd..28f3337 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridSecurityManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridSecurityManager.java
@@ -13,7 +13,7 @@ import org.apache.ignite.cluster.*;
 import org.apache.ignite.spi.authentication.*;
 import org.gridgain.grid.*;
 import org.gridgain.grid.kernal.managers.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.jetbrains.annotations.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridSecuritySubjectAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridSecuritySubjectAdapter.java b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridSecuritySubjectAdapter.java
index 5453ac2..8b62e08 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridSecuritySubjectAdapter.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/GridSecuritySubjectAdapter.java
@@ -9,7 +9,7 @@
 
 package org.gridgain.grid.kernal.managers.security;
 
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.tostring.*;
 import org.gridgain.grid.util.typedef.internal.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/os/GridOsSecurityManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/os/GridOsSecurityManager.java b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/os/GridOsSecurityManager.java
index ad12b79..3831148 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/os/GridOsSecurityManager.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/managers/security/os/GridOsSecurityManager.java
@@ -15,7 +15,7 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.kernal.*;
 import org.gridgain.grid.kernal.managers.*;
 import org.gridgain.grid.kernal.managers.security.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.typedef.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheAdapter.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheAdapter.java
index a7e01da..35bec68 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheAdapter.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheAdapter.java
@@ -31,7 +31,7 @@ import org.gridgain.grid.kernal.processors.cache.dr.*;
 import org.gridgain.grid.kernal.processors.cache.query.*;
 import org.gridgain.grid.kernal.processors.dr.*;
 import org.gridgain.grid.kernal.processors.task.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.future.*;
 import org.gridgain.grid.util.lang.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheContext.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheContext.java
index e62b86d..f7e4471 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheContext.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheContext.java
@@ -37,7 +37,7 @@ import org.gridgain.grid.kernal.processors.closure.*;
 import org.gridgain.grid.kernal.processors.offheap.*;
 import org.gridgain.grid.kernal.processors.portable.*;
 import org.gridgain.grid.kernal.processors.timeout.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.grid.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxLocalAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxLocalAdapter.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxLocalAdapter.java
index 26b85cb..93ed43f 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxLocalAdapter.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheTxLocalAdapter.java
@@ -16,7 +16,7 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.near.*;
 import org.gridgain.grid.kernal.processors.cache.dr.*;
 import org.gridgain.grid.kernal.processors.dr.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.future.*;
 import org.gridgain.grid.util.lang.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
index b78eda0..a6bc796 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
@@ -21,7 +21,7 @@ import org.gridgain.grid.kernal.processors.cache.distributed.dht.preloader.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.near.*;
 import org.gridgain.grid.kernal.processors.cache.dr.*;
 import org.gridgain.grid.kernal.processors.timeout.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.future.*;
 import org.gridgain.grid.util.lang.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
index cd737a8..96d837c 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
@@ -18,7 +18,7 @@ import org.gridgain.grid.kernal.processors.cache.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.near.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.grid.util.future.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridNearAtomicCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridNearAtomicCache.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridNearAtomicCache.java
index 7815538..7abba50 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridNearAtomicCache.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridNearAtomicCache.java
@@ -16,7 +16,7 @@ import org.gridgain.grid.kernal.processors.cache.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.atomic.*;
 import org.gridgain.grid.kernal.processors.cache.dr.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.future.*;
 import org.gridgain.grid.util.typedef.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridNearTransactionalCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridNearTransactionalCache.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridNearTransactionalCache.java
index 576a547..918eec1 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridNearTransactionalCache.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridNearTransactionalCache.java
@@ -16,7 +16,7 @@ import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.cache.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.*;
 import org.gridgain.grid.kernal.processors.cache.distributed.dht.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.grid.util.future.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/local/atomic/GridLocalAtomicCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/local/atomic/GridLocalAtomicCache.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/local/atomic/GridLocalAtomicCache.java
index 802e772..46cc579 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/local/atomic/GridLocalAtomicCache.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/local/atomic/GridLocalAtomicCache.java
@@ -14,7 +14,7 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.kernal.processors.cache.*;
 import org.gridgain.grid.kernal.processors.cache.local.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.future.*;
 import org.gridgain.grid.util.typedef.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryAdapter.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryAdapter.java
index 4931e04..470ed24 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryAdapter.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/GridCacheQueryAdapter.java
@@ -16,7 +16,7 @@ import org.gridgain.grid.*;
 import org.gridgain.grid.cache.*;
 import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.kernal.processors.cache.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryAdapter.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryAdapter.java
index 6384cd8..910f563 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryAdapter.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/query/continuous/GridCacheContinuousQueryAdapter.java
@@ -18,7 +18,7 @@ import org.gridgain.grid.cache.query.*;
 import org.gridgain.grid.cache.query.GridCacheContinuousQueryEntry;
 import org.gridgain.grid.kernal.processors.cache.*;
 import org.gridgain.grid.kernal.processors.continuous.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.typedef.*;
 import org.gridgain.grid.util.typedef.internal.*;
 import org.gridgain.grid.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/processors/rest/GridRestProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/rest/GridRestProcessor.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/rest/GridRestProcessor.java
index 360af76..1f696ba 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/rest/GridRestProcessor.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/rest/GridRestProcessor.java
@@ -27,7 +27,7 @@ import org.gridgain.grid.kernal.processors.rest.handlers.top.*;
 import org.gridgain.grid.kernal.processors.rest.handlers.version.*;
 import org.gridgain.grid.kernal.processors.rest.protocols.tcp.*;
 import org.gridgain.grid.kernal.processors.rest.request.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.future.*;
 import org.gridgain.grid.util.typedef.*;
@@ -40,7 +40,7 @@ import java.util.*;
 import java.util.concurrent.*;
 
 import static org.gridgain.grid.kernal.processors.rest.GridRestResponse.*;
-import static org.gridgain.grid.security.GridSecuritySubjectType.*;
+import static org.apache.ignite.plugin.security.GridSecuritySubjectType.*;
 
 /**
  * Rest processor implementation.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8c20bddb/modules/core/src/main/java/org/gridgain/grid/kernal/processors/task/GridTaskProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/task/GridTaskProcessor.java b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/task/GridTaskProcessor.java
index d58717e..0874db1 100644
--- a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/task/GridTaskProcessor.java
+++ b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/task/GridTaskProcessor.java
@@ -21,7 +21,7 @@ import org.gridgain.grid.kernal.managers.communication.*;
 import org.gridgain.grid.kernal.managers.deployment.*;
 import org.gridgain.grid.kernal.managers.eventstorage.*;
 import org.gridgain.grid.kernal.processors.*;
-import org.gridgain.grid.security.*;
+import org.apache.ignite.plugin.security.*;
 import org.gridgain.grid.util.*;
 import org.gridgain.grid.util.lang.*;
 import org.gridgain.grid.util.typedef.*;