适用于Apache Ignite的自定义安全插件 [英] Custom Security Plugin for Apache Ignite
问题描述
我正在尝试将Apache Ignite用作内存数据库.
为了启用安全性,我通过以下链接 http:创建了自己的安全性插件://smartkey.co.uk/development/securing-an-apache-ignite-cluster/
I am trying to use Apache Ignite as in-memory database.
To enable the security, I created own security plugin by following link http://smartkey.co.uk/development/securing-an-apache-ignite-cluster/
public class IgniteSecurityConfiguration implements PluginConfiguration{
public class<? extends PluginProvider> providerClass(){
return IgniteSecurityProvider.class;
}
}
public class IgniteSecurityProvider implements PluginProvider{
@Override
public IgnitePlugin plugin(){
return new CASCachePlugin();
}
}
public Object createComponent(PluginContext pluginContext, Class aClass){
if(aClass.isAssignableFrom(GridSecuriytProcessor.class)){
return new PasswordSecurityProcessor();
} else {return null;}
}
public class PasswordSecurityProcessor implements GridSecurityProcessor,IgnitePlugin
{
@Override
public SecurityContext authenticateNode(ClusterNode clusterNode, SecurityCredentials securityCredentials){
return new SecurityContext(){
public SecuritySubject subject(){
return new SecuritySubjext(){
//implement methods
};
}
//other implementation methods
};
}
在我使用examples/config/example-ignite.xml开始点火时获取异常
getting exception when I am starting ignite using examples/config/example-ignite.xml
由以下原因引起:类org.apache.ignite.IgniteCheckedException:无法启动SPI:TcpDiscoverySpi
在org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:300)
...
...
原因:类org.apache.ignite.spi.IgniteSpiException:无法验证本地节点(将关闭本地节点).
在org.apache.ignite.spi.discovery.tcp.ServerImpl.localAuthentication(ServerImpl.java:975)
在org.apache.ignite.spi.discovery.tcp.ServerImpl.joinTopology(ServerImpl.java:863)
.....
由类org.apache.ignite.IgniteCheckedException导致:无法序列化objext:com.x.x.x.PasswordSecurityProcessor
在org.apache.ignite.marshaller.jdk.JdkMarshller.marshl0(JDkMarahsller.java:85)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start SPI: TcpDiscoverySpi
at org.apache.ignite.internal.managers.GridManagerAdapter.startSpi (GridManagerAdapter.java:300)
...
...
Caused by: class org.apache.ignite.spi.IgniteSpiException: Failed to authenticate local node( will shutdown local node).
at org.apache.ignite.spi.discovery.tcp.ServerImpl.localAuthentication(ServerImpl.java:975)
at org.apache.ignite.spi.discovery.tcp.ServerImpl.joinTopology(ServerImpl.java:863)
.....
Cuased by class org.apache.ignite.IgniteCheckedException: Failed to serialize objext: com.x.x.x.PasswordSecurityProcessor
at org.apache.ignite.marshaller.jdk.JdkMarshller.marshl0(JDkMarahsller.java:85)
对我所缺少的东西有任何想法吗?尝试使用PasswordSecurityProcessor类来实现Serializable,但仍无济于事.
Any idea on what I am missing? Tried the PasswordSecurityProcessor class to implement Serializable but still it did not help.
推荐答案
Ignite不提供开箱即用的安全功能,您需要为此实现一个插件.这是一个很好的博客,您可以作为示例: http://smartkey.co.uk/development/securing-an-apache-ignite-cluster/
Ignite does not provide security capabilities out of the box, you need to implement a plugin for this. Here is a good blog about this that you can use as an example: http://smartkey.co.uk/development/securing-an-apache-ignite-cluster/
要获得安全支持,您需要查看基于Ignite构建的商业产品: https://docs.gridgain.com/docs/security-and-audit
To get the security support you need to look at commercial products built on top of Ignite: https://docs.gridgain.com/docs/security-and-audit
这篇关于适用于Apache Ignite的自定义安全插件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!