我正在尝试使用 Apache Ignite 作为内存数据库。
为了启用安全性,我通过以下链接创建了自己的安全插件: 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
};
}
Run Code Online (Sandbox Code Playgroud)
当我使用 example/config/example-ignite.xml 开始 ignite 时出现异常
引起:类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.xxxPasswordSecurityProcessor
at org.apache.ignite.marshaller.jdk.JdkMarshller.marshl0(JDkMarahsller.java:85)
你知道我缺少什么吗? 尝试使用PasswordSecurityProcessor类来实现Serialized,但仍然没有帮助。
Ignite 不提供开箱即用的安全功能,您需要为此实现一个插件。这是一个关于此的很好的博客,您可以用作示例:http ://smartkey.co.uk/development/securing-an-apache-ignite-cluster/
要获得安全支持,您需要查看基于 Ignite 构建的商业产品: https://docs.gridgain.com/docs/security-and-audit
| 归档时间: |
|
| 查看次数: |
1842 次 |
| 最近记录: |