#ignite-189: wip

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

Branch: refs/heads/ignite-189
Commit: 54f90f893112a47ec75ca7365e2d06ae818bd9d4
Parents: 24b46dc
Author: ivasilinets <ivasilin...@gridgain.com>
Authored: Wed Feb 11 19:04:46 2015 +0300
Committer: ivasilinets <ivasilin...@gridgain.com>
Committed: Wed Feb 11 19:04:46 2015 +0300

----------------------------------------------------------------------
 .../configuration/IgniteConfiguration.java      |  29 -----
 .../apache/ignite/internal/IgniteKernal.java    |  14 --
 .../ignite/internal/IgniteNodeAttributes.java   |   4 +
 .../org/apache/ignite/internal/IgnitionEx.java  |   8 --
 .../processors/GridProcessorAdapter.java        |   3 +
 .../ignite/internal/util/IgniteUtils.java       |  12 ++
 .../visor/node/VisorSpisConfiguration.java      |   1 -
 .../org/apache/ignite/mxbean/IgniteMXBean.java  |   9 --
 .../org/apache/ignite/spi/IgniteSpiAdapter.java | 128 +++++++++++++++++++
 .../spi/securesession/SecureSessionSpi.java     |  92 -------------
 .../noop/NoopSecureSessionMBean.java            |  29 +++++
 .../noop/NoopSecureSessionSpi.java              | 123 ------------------
 .../noop/NoopSecureSessionSpiMBean.java         |  29 -----
 13 files changed, 176 insertions(+), 305 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/54f90f89/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 d207115..4467a76 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
@@ -31,7 +31,6 @@ import org.apache.ignite.streamer.*;
 import org.apache.ignite.plugin.security.*;
 import org.apache.ignite.plugin.segmentation.*;
 import org.apache.ignite.services.*;
-import org.apache.ignite.spi.authentication.*;
 import org.apache.ignite.spi.checkpoint.*;
 import org.apache.ignite.spi.collision.*;
 import org.apache.ignite.spi.communication.*;
@@ -39,11 +38,8 @@ import org.apache.ignite.spi.deployment.*;
 import org.apache.ignite.spi.discovery.*;
 import org.apache.ignite.spi.eventstorage.*;
 import org.apache.ignite.spi.failover.*;
-import org.apache.ignite.spi.indexing.*;
 import org.apache.ignite.spi.loadbalancing.*;
-import org.apache.ignite.spi.securesession.*;
 import org.apache.ignite.spi.swapspace.*;
-import org.apache.ignite.streamer.*;
 
 import javax.management.*;
 import java.lang.management.*;
@@ -299,9 +295,6 @@ public class IgniteConfiguration {
     /** Collision SPI. */
     private CollisionSpi colSpi;
 
-    /** Secure session SPI. */
-    private SecureSessionSpi sesSpi;
-
     /** Deployment SPI. */
     private DeploymentSpi deploySpi;
 
@@ -439,7 +432,6 @@ public class IgniteConfiguration {
         cpSpi = cfg.getCheckpointSpi();
         colSpi = cfg.getCollisionSpi();
         failSpi = cfg.getFailoverSpi();
-        sesSpi = cfg.getSecureSessionSpi();
         loadBalancingSpi = cfg.getLoadBalancingSpi();
         swapSpaceSpi = cfg.getSwapSpaceSpi();
         indexingSpi = cfg.getIndexingSpi();
@@ -1676,27 +1668,6 @@ public class IgniteConfiguration {
     }
 
     /**
-     * Should return fully configured secure session SPI implementation. If 
not provided,
-     * {@link org.apache.ignite.spi.securesession.noop.NoopSecureSessionSpi} 
will be used.
-     *
-     * @return Grid secure session SPI implementation or {@code null} to use 
default implementation.
-     */
-    public SecureSessionSpi getSecureSessionSpi() {
-        return sesSpi;
-    }
-
-    /**
-     * Sets fully configured instance of {@link 
org.apache.ignite.spi.securesession.SecureSessionSpi}.
-     *
-     * @param sesSpi Fully configured instance of {@link 
org.apache.ignite.spi.securesession.SecureSessionSpi} or
-     * {@code null} if no SPI provided.
-     * @see IgniteConfiguration#getSecureSessionSpi()
-     */
-    public void setSecureSessionSpi(SecureSessionSpi sesSpi) {
-        this.sesSpi = sesSpi;
-    }
-
-    /**
      * Should return fully configured deployment SPI implementation. If not 
provided,
      * {@link org.apache.ignite.spi.deployment.local.LocalDeploymentSpi} will 
be used.
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/54f90f89/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java 
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
index 7baad5b..792f80b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
@@ -378,13 +378,6 @@ public class IgniteKernal extends ClusterGroupAdapter 
implements IgniteEx, Ignit
     }
 
     /** {@inheritDoc} */
-    @Override public String getSecureSessionSpiFormatted() {
-        assert cfg != null;
-
-        return cfg.getSecureSessionSpi().toString();
-    }
-
-    /** {@inheritDoc} */
     @Override public String getOsInformation() {
         return U.osString();
     }
@@ -1118,8 +1111,6 @@ public class IgniteKernal extends ClusterGroupAdapter 
implements IgniteEx, Ignit
         A.notNull(cfg.getCommunicationSpi(), "cfg.getCommunicationSpi()");
         A.notNull(cfg.getDeploymentSpi(), "cfg.getDeploymentSpi()");
         A.notNull(cfg.getDiscoverySpi(), "cfg.getDiscoverySpi()");
-        A.notNull(cfg.getEventStorageSpi(), "cfg.getEventStorageSpi()");
-        A.notNull(cfg.getSecureSessionSpi(), "cfg.getSecureSessionSpi()");
         A.notNull(cfg.getCollisionSpi(), "cfg.getCollisionSpi()");
         A.notNull(cfg.getFailoverSpi(), "cfg.getFailoverSpi()");
         A.notNull(cfg.getLoadBalancingSpi(), "cfg.getLoadBalancingSpi()");
@@ -1201,9 +1192,6 @@ public class IgniteKernal extends ClusterGroupAdapter 
implements IgniteEx, Ignit
         if (!F.isEmpty(cfg.getSegmentationResolvers()))
             msgs.add("Network segmentation detection.");
 
-        if (cfg.getSecureSessionSpi() != null && !(cfg.getSecureSessionSpi() 
instanceof NoopSecureSessionSpi))
-            msgs.add("Secure session SPI.");
-
         if (!F.isEmpty(msgs)) {
             U.quietAndInfo(log, "The following features are not supported in 
open source edition, " +
                 "related configuration settings will be ignored " +
@@ -1358,7 +1346,6 @@ public class IgniteKernal extends ClusterGroupAdapter 
implements IgniteEx, Ignit
         addAttributes(attrs, cfg.getEventStorageSpi());
         addAttributes(attrs, cfg.getCheckpointSpi());
         addAttributes(attrs, cfg.getLoadBalancingSpi());
-        addAttributes(attrs, cfg.getSecureSessionSpi());
         addAttributes(attrs, cfg.getDeploymentSpi());
 
 
@@ -2241,7 +2228,6 @@ public class IgniteKernal extends ClusterGroupAdapter 
implements IgniteEx, Ignit
             log.debug("Grid event storage SPI  : " + cfg.getEventStorageSpi());
             log.debug("Grid failover SPI       : " + 
Arrays.toString(cfg.getFailoverSpi()));
             log.debug("Grid load balancing SPI : " + 
Arrays.toString(cfg.getLoadBalancingSpi()));
-            log.debug("Grid secure session SPI : " + 
cfg.getSecureSessionSpi());
             log.debug("Grid swap space SPI     : " + cfg.getSwapSpaceSpi());
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/54f90f89/modules/core/src/main/java/org/apache/ignite/internal/IgniteNodeAttributes.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteNodeAttributes.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteNodeAttributes.java
index eab6b37..a2d8d3c 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteNodeAttributes.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteNodeAttributes.java
@@ -57,6 +57,10 @@ public final class IgniteNodeAttributes {
     /** Internal attribute name postfix constant. */
     public static final String ATTR_SPI_CLASS = ATTR_PREFIX + ".spi.class";
 
+    public static final String ATTR_AUTHENTICATION_CLASS = ATTR_PREFIX + 
".authentication.class";
+
+    public static final String ATTR_SECURE_SESSION_CLASS = ATTR_PREFIX + 
".securesession.class";
+
     /** Internal attribute name constant. */
     public static final String ATTR_CACHE = ATTR_PREFIX + ".cache";
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/54f90f89/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java 
b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
index 1044246..d9bda2e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
@@ -52,8 +52,6 @@ import org.apache.ignite.spi.failover.always.*;
 import org.apache.ignite.spi.indexing.*;
 import org.apache.ignite.spi.loadbalancing.*;
 import org.apache.ignite.spi.loadbalancing.roundrobin.*;
-import org.apache.ignite.spi.securesession.*;
-import org.apache.ignite.spi.securesession.noop.*;
 import org.apache.ignite.spi.swapspace.*;
 import org.apache.ignite.spi.swapspace.file.*;
 import org.apache.ignite.spi.swapspace.noop.*;
@@ -1445,7 +1443,6 @@ public class IgnitionEx {
             DiscoverySpi discoSpi = cfg.getDiscoverySpi();
             EventStorageSpi evtSpi = cfg.getEventStorageSpi();
             CollisionSpi colSpi = cfg.getCollisionSpi();
-            SecureSessionSpi sesSpi = cfg.getSecureSessionSpi();
             DeploymentSpi deploySpi = cfg.getDeploymentSpi();
             CheckpointSpi[] cpSpi = cfg.getCheckpointSpi();
             FailoverSpi[] failSpi = cfg.getFailoverSpi();
@@ -1607,9 +1604,6 @@ public class IgnitionEx {
             if (colSpi == null)
                 colSpi = new NoopCollisionSpi();
 
-            if (sesSpi == null)
-                sesSpi = new NoopSecureSessionSpi();
-
             if (deploySpi == null)
                 deploySpi = new LocalDeploymentSpi();
 
@@ -1647,7 +1641,6 @@ public class IgnitionEx {
             myCfg.setDiscoverySpi(discoSpi);
             myCfg.setCheckpointSpi(cpSpi);
             myCfg.setEventStorageSpi(evtSpi);
-            myCfg.setSecureSessionSpi(sesSpi);
             myCfg.setDeploymentSpi(deploySpi);
             myCfg.setFailoverSpi(failSpi);
             myCfg.setCollisionSpi(colSpi);
@@ -1820,7 +1813,6 @@ public class IgnitionEx {
                 ensureMultiInstanceSupport(evtSpi);
                 ensureMultiInstanceSupport(colSpi);
                 ensureMultiInstanceSupport(failSpi);
-                ensureMultiInstanceSupport(sesSpi);
                 ensureMultiInstanceSupport(loadBalancingSpi);
                 ensureMultiInstanceSupport(swapspaceSpi);
             }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/54f90f89/modules/core/src/main/java/org/apache/ignite/internal/processors/GridProcessorAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/GridProcessorAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/GridProcessorAdapter.java
index d91802a..0c67dae 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/GridProcessorAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/GridProcessorAdapter.java
@@ -21,12 +21,15 @@ import org.apache.ignite.*;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.util.tostring.*;
+import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.spi.*;
 import org.jetbrains.annotations.*;
 
 import java.util.*;
 
+import static 
org.apache.ignite.IgniteSystemProperties.IGNITE_SKIP_CONFIGURATION_CONSISTENCY_CHECK;
+
 /**
  * Advanced parent adapter for all processor.
  */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/54f90f89/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java 
b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index c1657fe..23775ad 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -9194,4 +9194,16 @@ public abstract class IgniteUtils {
 
         return cnt;
     }
+
+    /**
+     * Throws exception with uniform error message if given parameter's 
assertion condition
+     * is {@code false}.
+     *
+     * @param cond Assertion condition to check.
+     * @param condDesc Description of failed condition.
+     */
+    public static void assertParameter(boolean cond, String condDesc) throws 
IgniteException {
+        if (!cond)
+            throw new IgniteException("SPI parameter failed condition check: " 
+ condDesc);
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/54f90f89/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorSpisConfiguration.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorSpisConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorSpisConfiguration.java
index d9525bb..ff27163 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorSpisConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorSpisConfiguration.java
@@ -147,7 +147,6 @@ public class VisorSpisConfiguration implements Serializable 
{
         cfg.communicationSpi(collectSpiInfo(c.getCommunicationSpi()));
         cfg.eventStorageSpi(collectSpiInfo(c.getEventStorageSpi()));
         cfg.collisionSpi(collectSpiInfo(c.getCollisionSpi()));
-        cfg.secureSessionSpi(collectSpiInfo(c.getSecureSessionSpi()));
         cfg.deploymentSpi(collectSpiInfo(c.getDeploymentSpi()));
         cfg.checkpointSpis(collectSpiInfo(c.getCheckpointSpi()));
         cfg.failoverSpis(collectSpiInfo(c.getFailoverSpi()));

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/54f90f89/modules/core/src/main/java/org/apache/ignite/mxbean/IgniteMXBean.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/mxbean/IgniteMXBean.java 
b/modules/core/src/main/java/org/apache/ignite/mxbean/IgniteMXBean.java
index fbd6606..15dfde5 100644
--- a/modules/core/src/main/java/org/apache/ignite/mxbean/IgniteMXBean.java
+++ b/modules/core/src/main/java/org/apache/ignite/mxbean/IgniteMXBean.java
@@ -320,15 +320,6 @@ public interface IgniteMXBean {
     @MXBeanDescription("Formatted instance of fully configured load balancing 
SPI implementations.")
     public String getLoadBalancingSpiFormatted();
 
-
-    /**
-     * Gets a formatted instance of fully configured secure session SPI 
implementation.
-     *
-     * @return Grid secure session SPI implementation.
-     */
-    @MXBeanDescription("Formatted instance of fully configured secure session 
SPI implementation.")
-    public String getSecureSessionSpiFormatted();
-
     /**
      * Gets OS information.
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/54f90f89/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 a57b319..eabec8d 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
@@ -272,7 +272,27 @@ public abstract class IgniteSpiAdapter implements 
IgniteSpi, IgniteSpiManagement
         return "Using parameter [" + name + '=' + val + ']';
     }
 
+    /**
+     * @param msg Error message.
+     * @param locVal Local node value.
+     * @return Error text.
+     */
+    private static String format(String msg, Object locVal) {
+        return msg + U.nl() +
+            ">>> => Local node:  " + locVal + U.nl();
+    }
 
+    /**
+     * @param msg Error message.
+     * @param locVal Local node value.
+     * @param rmtVal Remote node value.
+     * @return Error text.
+     */
+    private static String format(String msg, Object locVal, Object rmtVal) {
+        return msg + U.nl() +
+            ">>> => Local node:  " + locVal + U.nl() +
+            ">>> => Remote node: " + rmtVal + U.nl();
+    }
 
     /**
      * Registers SPI MBean. Note that SPI can only register one MBean.
@@ -326,7 +346,14 @@ public abstract class IgniteSpiAdapter implements 
IgniteSpi, IgniteSpiManagement
         }
     }
 
+    /**
+     * @return {@code true} if this check is optional.
+     */
+    private boolean checkOptional() {
+        IgniteSpiConsistencyChecked ann = U.getAnnotation(getClass(), 
IgniteSpiConsistencyChecked.class);
 
+        return ann != null && ann.optional();
+    }
 
     /**
      * @return {@code true} if this check is optional.
@@ -338,6 +365,13 @@ public abstract class IgniteSpiAdapter implements 
IgniteSpi, IgniteSpiManagement
     }
 
     /**
+     * @return {@code true} if this check is enabled.
+     */
+    private boolean checkEnabled() {
+        return U.getAnnotation(getClass(), IgniteSpiConsistencyChecked.class) 
!= null;
+    }
+
+    /**
      * Method which is called in the end of checkConfigurationConsistency() 
method. May be overriden in SPIs.
      *
      * @param spiCtx SPI context.
@@ -370,6 +404,100 @@ public abstract class IgniteSpiAdapter implements 
IgniteSpi, IgniteSpiManagement
 
             return;
         }
+
+        /*
+         * Optional SPI means that we should not print warning if SPIs are 
different but
+         * still need to compare attributes if SPIs are the same.
+         */
+        boolean optional = checkOptional();
+        boolean enabled = checkEnabled();
+
+        if (!enabled)
+            return;
+
+        String clsAttr = 
createSpiAttributeName(IgniteNodeAttributes.ATTR_SPI_CLASS);
+
+        String name = getName();
+
+        SB sb = new SB();
+
+        /*
+         * If there are any attributes do compare class and version
+         * (do not print warning for the optional SPIs).
+         */
+
+        /* Check SPI class and version. */
+        String locCls = spiCtx.localNode().attribute(clsAttr);
+        String rmtCls = node.attribute(clsAttr);
+
+        assert locCls != null : "Local SPI class name attribute not found: " + 
clsAttr;
+
+        boolean isSpiConsistent = false;
+
+        String tipStr = " (fix configuration or set " + "-D" + 
IGNITE_SKIP_CONFIGURATION_CONSISTENCY_CHECK + "=true system property)";
+
+        if (rmtCls == null) {
+            if (!optional && starting)
+                throw new IgniteSpiException("Remote SPI with the same name is 
not configured" + tipStr + " [name=" + name +
+                    ", loc=" + locCls + ']');
+
+            sb.a(format(">>> Remote SPI with the same name is not configured: 
" + name, locCls));
+        }
+        else if (!locCls.equals(rmtCls)) {
+            if (!optional && starting)
+                throw new IgniteSpiException("Remote SPI with the same name is 
of different type" + tipStr + " [name=" + name +
+                    ", loc=" + locCls + ", rmt=" + rmtCls + ']');
+
+            sb.a(format(">>> Remote SPI with the same name is of different 
type: " + name, locCls, rmtCls));
+        }
+        else
+            isSpiConsistent = true;
+
+        if (optional && !isSpiConsistent)
+            return;
+
+        // It makes no sense to compare inconsistent SPIs attributes.
+        if (isSpiConsistent) {
+            List<String> attrs = getConsistentAttributeNames();
+
+            // Process all SPI specific attributes.
+            for (String attr : attrs) {
+                // Ignore class and version attributes processed above.
+                if (!attr.equals(clsAttr)) {
+                    // This check is considered as optional if no attributes
+                    Object rmtVal = node.attribute(attr);
+                    Object locVal = spiCtx.localNode().attribute(attr);
+
+                    if (locVal == null && rmtVal == null)
+                        continue;
+
+                    if (locVal == null || rmtVal == null || 
!locVal.equals(rmtVal))
+                        sb.a(format(">>> Remote node has different " + 
getName() + " SPI attribute " +
+                            attr, locVal, rmtVal));
+                }
+            }
+        }
+
+        if (sb.length() > 0) {
+            String msg;
+
+            if (starting)
+                msg = U.nl() + U.nl() +
+                    ">>> 
+--------------------------------------------------------------------+" + 
U.nl() +
+                    ">>> + Courtesy notice that starting node has inconsistent 
configuration. +" + U.nl() +
+                    ">>> + Ignore this message if you are sure that this is 
done on purpose.  +" + U.nl() +
+                    ">>> 
+--------------------------------------------------------------------+" + 
U.nl() +
+                    ">>> Remote Node ID: " + 
node.id().toString().toUpperCase() + U.nl() + sb;
+            else
+                msg = U.nl() + U.nl() +
+                    ">>> 
+-------------------------------------------------------------------+" + U.nl() 
+
+                    ">>> + Courtesy notice that joining node has inconsistent 
configuration. +" + U.nl() +
+                    ">>> + Ignore this message if you are sure that this is 
done on purpose. +" + U.nl() +
+                    ">>> 
+-------------------------------------------------------------------+" + U.nl() 
+
+                    ">>> Remote Node ID: " + 
node.id().toString().toUpperCase() + U.nl() + sb;
+
+            U.courtesy(log, msg);
+        }
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/54f90f89/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
deleted file mode 100644
index ba4cef9..0000000
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/securesession/SecureSessionSpi.java
+++ /dev/null
@@ -1,92 +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.spi.securesession;
-
-import org.apache.ignite.plugin.security.*;
-import org.apache.ignite.spi.*;
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-
-/**
- * Secure session SPI allows for session creation and validation, typically 
after authentication
- * has successfully happened. The main purpose of this SPI is to ensure that 
remote clients are
- * authenticated only once and upon successful authentication get issued a 
secure session token
- * to reuse for consequent requests (very much the same way like HTTP sessions 
work).
- * <p>
- * The default secure session SPI is {@link 
org.apache.ignite.spi.securesession.noop.NoopSecureSessionSpi}
- * which permits any request.
- * <p>
- * Ignite provides the following {@code GridSecureSessionSpi} implementations:
- * <ul>
- * <li>
- *     {@link org.apache.ignite.spi.securesession.noop.NoopSecureSessionSpi} - 
permits any request.
- * </li>
- * <li>
- *     {@code GridRememberMeSecureSessionSpi} -
- *     validates client session with remember-me session token.
- * </li>
- * </ul>
- * <p>
- * <b>NOTE:</b> that multiple secure session SPIs may be started on the same 
grid node. In this case
- * Ignite will differentiate between them based on {@link 
#supported(GridSecuritySubjectType)}
- * value. The first SPI which returns {@code true} for a given subject type 
will be used for
- * session validation.
- * <p>
- * <b>NOTE:</b> this SPI (i.e. methods in this interface) should never be used 
directly. SPIs provide
- * internal view on the subsystem and is used internally by Ignite kernal. In 
rare use cases when
- * access to a specific implementation of this SPI is required - an instance 
of this SPI can be obtained
- * via {@link org.apache.ignite.Ignite#configuration()} method to check its 
configuration properties or call other non-SPI
- * methods. Note again that calling methods from this interface on the 
obtained instance can lead
- * to undefined behavior and explicitly not supported.
- */
-public interface SecureSessionSpi extends IgniteSpi {
-    /**
-     * Checks if given subject is supported by this SPI. If not, then next 
secure session SPI
-     * in the list will be checked.
-     *
-     * @param subjType Subject type.
-     * @return {@code True} if subject type is supported, {@code false} 
otherwise.
-     */
-    public boolean supported(GridSecuritySubjectType subjType);
-
-    /**
-     * Validates given session token.
-     *
-     * @param subjType Subject type.
-     * @param subjId Unique subject ID such as local or remote node ID, client 
ID, etc.
-     * @param tok Token to validate.
-     * @param params Additional implementation-specific parameters.
-     * @return {@code True} if session token is valid, {@code false} otherwise.
-     * @throws IgniteSpiException If validation resulted in system error. Note 
that
-     *      bad credentials should not cause this exception.
-     */
-    public boolean validate(GridSecuritySubjectType subjType, UUID subjId, 
byte[] tok,
-        @Nullable Object params) throws IgniteSpiException;
-
-    /**
-     * Generates new session token.
-     *
-     * @param subjType Subject type.
-     * @param subjId Unique subject ID such as local or remote node ID, client 
ID, etc.
-     * @param params Additional implementation-specific parameters.
-     * @return Session token that should be used for further validation.
-     */
-    public byte[] generateSessionToken(GridSecuritySubjectType subjType, UUID 
subjId, @Nullable Object params)
-        throws IgniteSpiException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/54f90f89/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionMBean.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionMBean.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionMBean.java
new file mode 100644
index 0000000..f05c75b
--- /dev/null
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionMBean.java
@@ -0,0 +1,29 @@
+/*
+ * 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.spi.securesession.noop;
+
+import org.apache.ignite.mxbean.*;
+import org.apache.ignite.spi.*;
+
+/**
+ * Management bean for {@link NoopSecureSession}.
+ */
+@MXBeanDescription("MBean that provides access to no-op secure session SPI 
configuration.")
+public interface NoopSecureSessionMBean extends IgniteSpiManagementMBean {
+    // No-op.
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/54f90f89/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
deleted file mode 100644
index 3da96e1..0000000
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionSpi.java
+++ /dev/null
@@ -1,123 +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.spi.securesession.noop;
-
-import org.apache.ignite.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
-import org.apache.ignite.plugin.security.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.spi.*;
-import org.apache.ignite.spi.securesession.*;
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-
-/**
- * Default no-op implementation of the secure session SPI which supports all 
subject types and denies any token.
- * <p>
- * <h1 class="header">Configuration</h1>
- * <h2 class="header">Mandatory</h2>
- * This SPI has no mandatory configuration parameters.
- * <h2 class="header">Optional</h2>
- * This SPI has no optional configuration parameters.
- * <h2 class="header">Java Example</h2>
- * GridNoopSecureSessionSpi is used by default and has no parameters to be 
explicitly configured.
- * <pre name="code" class="java">
- * GridNoopSecureSessionSpi spi = new GridNoopSecureSessionSpi();
- *
- * GridConfiguration cfg = new GridConfiguration();
- *
- * // Override default SecureSession SPI.
- * cfg.setSecureSessionSpi(spi);
- *
- * // Start grid.
- * Ignition.start(cfg);
- * </pre>
- * <h2 class="header">Spring Example</h2>
- * GridNoopSecureSessionSpi can be configured from Spring XML configuration 
file:
- * <pre name="code" class="xml">
- * &lt;bean id="grid.custom.cfg" 
class="org.apache.ignite.configuration.IgniteConfiguration" singleton="true"&gt;
- *         ...
- *         &lt;property name="secureSessionSpi"&gt;
- *             &lt;bean 
class="org.apache.ignite.spi.SecureSession.noop.GridNoopSecureSessionSpi"/&gt;
- *         &lt;/property&gt;
- *         ...
- * &lt;/bean&gt;
- * </pre>
- * <p>
- * <img src="http://www.gridgain.com/images/spring-small.png";>
- * <br>
- * For information about Spring framework visit <a 
href="http://www.springframework.org/";>www.springframework.org</a>
- * @see org.apache.ignite.spi.securesession.SecureSessionSpi
- */
-@IgniteSpiNoop
-@IgniteSpiMultipleInstancesSupport(true)
-public class NoopSecureSessionSpi extends IgniteSpiAdapter
-    implements SecureSessionSpi, NoopSecureSessionSpiMBean {
-    /** Empty bytes array. */
-    private static final byte[] EMPTY_BYTE_ARRAY = new byte[0];
-
-    /** Injected grid logger. */
-    @LoggerResource
-    private IgniteLogger log;
-
-    /** {@inheritDoc} */
-    @Override public boolean supported(GridSecuritySubjectType subjType) {
-        // If this SPI is included, then session management is disabled.
-        return true;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean validate(GridSecuritySubjectType subjType, UUID 
subjId, @Nullable byte[] tok,
-        @Nullable Object params) throws IgniteSpiException {
-        // Never validate any token - all tokens are invalid.
-        return false;
-    }
-
-    /** {@inheritDoc} */
-    @Override public byte[] generateSessionToken(GridSecuritySubjectType 
subjType, UUID subjId,
-        @Nullable Object params) {
-        return EMPTY_BYTE_ARRAY;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStart(String gridName) throws IgniteSpiException {
-        // Start SPI start stopwatch.
-        startStopwatch();
-
-        registerMBean(gridName, this, NoopSecureSessionSpiMBean.class);
-
-        // Ack ok start.
-        if (log.isDebugEnabled())
-            log.debug(startInfo());
-    }
-
-    /** {@inheritDoc} */
-    @Override public void spiStop() throws IgniteSpiException {
-        unregisterMBean();
-
-        // Ack ok stop.
-        if (log.isDebugEnabled())
-            log.debug(stopInfo());
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(NoopSecureSessionSpi.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/54f90f89/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionSpiMBean.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionSpiMBean.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionSpiMBean.java
deleted file mode 100644
index abbfc2f..0000000
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/securesession/noop/NoopSecureSessionSpiMBean.java
+++ /dev/null
@@ -1,29 +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.spi.securesession.noop;
-
-import org.apache.ignite.mxbean.*;
-import org.apache.ignite.spi.*;
-
-/**
- * Management bean for {@link NoopSecureSessionSpi}.
- */
-@MXBeanDescription("MBean that provides access to no-op secure session SPI 
configuration.")
-public interface NoopSecureSessionSpiMBean extends IgniteSpiManagementMBean {
-    // No-op.
-}

Reply via email to