Commit 5190dba 1 parent 83fa2ff commit 5190dba Copy full SHA for 5190dba
File tree 4 files changed +33
-2
lines changed
java/org/wltea/analyzer/dic
4 files changed +33
-2
lines changed Original file line number Diff line number Diff line change 18
18
<outputDirectory />
19
19
<filtered >true</filtered >
20
20
</file >
21
+ <file >
22
+ <source >${project.basedir}/src/main/resources/plugin-security.policy</source >
23
+ <outputDirectory />
24
+ <filtered >true</filtered >
25
+ </file >
21
26
</files >
22
27
<dependencySets >
23
28
<dependencySet >
Original file line number Diff line number Diff line change 36
36
import java .nio .file .FileVisitResult ;
37
37
import java .nio .file .Path ;
38
38
import java .nio .file .SimpleFileVisitor ;
39
+ import java .security .AccessController ;
40
+ import java .security .PrivilegedAction ;
39
41
import java .util .*;
40
42
import java .util .concurrent .Executors ;
41
43
import java .util .concurrent .ScheduledExecutorService ;
47
49
import org .apache .http .client .methods .HttpGet ;
48
50
import org .apache .http .impl .client .CloseableHttpClient ;
49
51
import org .apache .http .impl .client .HttpClients ;
52
+ import org .elasticsearch .SpecialPermission ;
50
53
import org .elasticsearch .common .io .PathUtils ;
51
54
import org .elasticsearch .common .logging .ESLoggerFactory ;
52
55
import org .elasticsearch .plugin .analysis .ik .AnalysisIkPlugin ;
@@ -439,10 +442,17 @@ private void loadRemoteExtDict() {
439
442
440
443
}
441
444
445
+ private static List <String > getRemoteWords (String location ) {
446
+ SpecialPermission .check ();
447
+ return AccessController .doPrivileged ((PrivilegedAction <List <String >>) () -> {
448
+ return getRemoteWordsUnprivileged (location );
449
+ });
450
+ }
451
+
442
452
/**
443
453
* 从远程服务器上下载自定义词条
444
454
*/
445
- private static List <String > getRemoteWords (String location ) {
455
+ private static List <String > getRemoteWordsUnprivileged (String location ) {
446
456
447
457
List <String > buffer = new ArrayList <String >();
448
458
RequestConfig rc = RequestConfig .custom ().setConnectionRequestTimeout (10 * 1000 ).setConnectTimeout (10 * 1000 )
Original file line number Diff line number Diff line change 1
1
package org .wltea .analyzer .dic ;
2
2
3
3
import java .io .IOException ;
4
+ import java .security .AccessController ;
5
+ import java .security .PrivilegedAction ;
4
6
5
7
import org .apache .http .client .config .RequestConfig ;
6
8
import org .apache .http .client .methods .CloseableHttpResponse ;
7
9
import org .apache .http .client .methods .HttpHead ;
8
10
import org .apache .http .impl .client .CloseableHttpClient ;
9
11
import org .apache .http .impl .client .HttpClients ;
10
12
import org .apache .logging .log4j .Logger ;
13
+ import org .elasticsearch .SpecialPermission ;
11
14
import org .elasticsearch .common .logging .ESLoggerFactory ;
12
15
13
16
public class Monitor implements Runnable {
@@ -34,6 +37,15 @@ public Monitor(String location) {
34
37
this .last_modified = null ;
35
38
this .eTags = null ;
36
39
}
40
+
41
+ public void run () {
42
+ SpecialPermission .check ();
43
+ AccessController .doPrivileged ((PrivilegedAction <Void >) () -> {
44
+ this .runUnprivileged ();
45
+ return null ;
46
+ });
47
+ }
48
+
37
49
/**
38
50
* 监控流程:
39
51
* ①向词库服务器发送Head请求
@@ -43,7 +55,7 @@ public Monitor(String location) {
43
55
* ⑤休眠1min,返回第①步
44
56
*/
45
57
46
- public void run () {
58
+ public void runUnprivileged () {
47
59
48
60
//超时设置
49
61
RequestConfig rc = RequestConfig .custom ().setConnectionRequestTimeout (10 *1000 )
Original file line number Diff line number Diff line change
1
+ grant {
2
+ // needed because of the hot reload functionality
3
+ permission java.net.SocketPermission "*", "connect,resolve";
4
+ };
You can’t perform that action at this time.
0 commit comments