elasticsearch-analysis-ansj icon indicating copy to clipboard operation
elasticsearch-analysis-ansj copied to clipboard

配置自定义字典为jdbc方式,启动elasticsearch后报错

Open liangxuegang01 opened this issue 4 years ago • 5 comments

在插件目录下添加了mysql-connector-java-8.0.23.jar,打开了plugin-security.policy的权限,重新启动elasticsearch后报错如下:

Likely root cause: java.security.AccessControlException: access denied ("java.security.SecurityPermission" "putProviderProperty.MySQLScramShaSasl") at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:472) at java.base/java.security.AccessController.checkPermission(AccessController.java:1036) at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:408) at java.base/java.lang.SecurityManager.checkSecurityAccess(SecurityManager.java:1521) at java.base/java.security.Provider.check(Provider.java:852) at java.base/java.security.Provider.putService(Provider.java:1363) at com.mysql.cj.sasl.ScramShaSaslProvider.lambda$new$0(ScramShaSaslProvider.java:78) at java.base/java.security.AccessController.doPrivileged(AccessController.java:312) at com.mysql.cj.sasl.ScramShaSaslProvider.(ScramShaSaslProvider.java:77) at com.mysql.cj.protocol.a.authentication.AuthenticationLdapSaslClientPlugin.(AuthenticationLdapSaslClientPlugin.java:73) at com.mysql.cj.protocol.a.NativeAuthenticationProvider.loadAuthenticationPlugins(NativeAuthenticationProvider.java:246) at com.mysql.cj.protocol.a.NativeAuthenticationProvider.proceedHandshakeWithPluggableAuthentication(NativeAuthenticationProvider.java:387) at com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java:174) at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1350) at com.mysql.cj.NativeSession.connect(NativeSession.java:157) at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:953) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:823) at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:453) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228) at org.ansj.dic.impl.Jdbc2Stream.toStream(Jdbc2Stream.java:64) at org.ansj.dic.PathToStream.stream(PathToStream.java:24) at org.ansj.library.DicLibrary.init(DicLibrary.java:198) at org.ansj.library.DicLibrary.get(DicLibrary.java:142) at org.ansj.library.DicLibrary.get(DicLibrary.java:135) at org.ansj.elasticsearch.index.config.AnsjElasticConfigurator.lambda$initDic$2(AnsjElasticConfigurator.java:135) at java.base/java.security.AccessController.doPrivileged(AccessController.java:312) at org.ansj.elasticsearch.index.config.AnsjElasticConfigurator.initDic(AnsjElasticConfigurator.java:134) <<>>

请帮忙看看如何解决,谢谢

liangxuegang01 avatar Feb 02 '21 04:02 liangxuegang01

看错误提示,是需要在plugin-security.policy授权 permission java.security.SecurityPermission "putProviderProperty.MySQLScramShaSasl"

shi-yuan avatar Feb 02 '21 04:02 shi-yuan

配置成功,非常感谢

liangxuegang01 avatar Feb 02 '21 07:02 liangxuegang01

现在发现一个问题 调用/_ansj/flush/dic?key=dic_d3方法后,报错 Init dic library error :org.ansj.exception.LibraryException: err to load by jdbc 请帮忙看看什么原因 mysql驱动已经添加了

liangxuegang01 avatar Feb 03 '21 13:02 liangxuegang01

已经解决了,权限少了分号,谢谢

liangxuegang01 avatar Feb 03 '21 14:02 liangxuegang01

已经解决了,权限少了分号,谢谢

liangxuegang01 avatar Feb 03 '21 14:02 liangxuegang01