1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package net.fckeditor.handlers;
22
23 import java.util.HashMap;
24 import java.util.Map;
25 import java.util.Set;
26
27 import net.fckeditor.tool.Utils;
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 public class ExtensionsHandler {
43
44 private static Map<ResourceTypeHandler, Set<String>> extensionsAllowed = new HashMap<ResourceTypeHandler, Set<String>>();
45 private static Map<ResourceTypeHandler, Set<String>> extensionsDenied = new HashMap<ResourceTypeHandler, Set<String>>();
46
47 static {
48
49 extensionsAllowed.put(ResourceTypeHandler.FILE, Utils.getSet(PropertiesLoader
50 .getProperty("connector.resourceType.file.extensions.allowed")));
51 extensionsDenied.put(ResourceTypeHandler.FILE, Utils.getSet(PropertiesLoader
52 .getProperty("connector.resourceType.file.extensions.denied")));
53 extensionsAllowed.put(ResourceTypeHandler.MEDIA, Utils.getSet(PropertiesLoader
54 .getProperty("connector.resourceType.media.extensions.allowed")));
55 extensionsDenied.put(ResourceTypeHandler.MEDIA, Utils.getSet(PropertiesLoader
56 .getProperty("connector.resourceType.media.extensions.denied")));
57 extensionsAllowed.put(ResourceTypeHandler.IMAGE, Utils.getSet(PropertiesLoader
58 .getProperty("connector.resourceType.image.extensions.allowed")));
59 extensionsDenied.put(ResourceTypeHandler.IMAGE, Utils.getSet(PropertiesLoader
60 .getProperty("connector.resourceType.image.extensions.denied")));
61 extensionsAllowed.put(ResourceTypeHandler.FLASH, Utils.getSet(PropertiesLoader
62 .getProperty("connector.resourceType.flash.extensions.allowed")));
63 extensionsDenied.put(ResourceTypeHandler.FLASH, Utils.getSet(PropertiesLoader
64 .getProperty("connector.resourceType.flash.extensions.denied")));
65 }
66
67
68
69
70
71
72
73
74 public static Set<String> getExtensionsAllowed(final ResourceTypeHandler type) {
75 return extensionsAllowed.get(type);
76 }
77
78
79
80
81
82
83
84
85
86
87
88
89 public static void setExtensionsAllowed(final ResourceTypeHandler type, final String extensionsList) {
90 if (extensionsList != null) {
91 extensionsAllowed.put(type, Utils.getSet(extensionsList));
92 extensionsDenied.get(type).clear();
93 }
94 }
95
96
97
98
99
100
101
102
103 public static Set<String> getExtensionsDenied(final ResourceTypeHandler type) {
104 return extensionsDenied.get(type);
105 }
106
107
108
109
110
111
112
113
114
115
116
117
118 public static void setExtensionsDenied(final ResourceTypeHandler type, final String extensionsList) {
119 if (extensionsList != null) {
120 extensionsDenied.put(type, Utils.getSet(extensionsList));
121 extensionsAllowed.get(type).clear();
122 }
123 }
124
125
126
127
128
129
130
131
132
133
134
135
136 public static boolean isAllowed(final ResourceTypeHandler type, final String extension) {
137 if (type == null || extension == null)
138 return false;
139 String ext = extension.toLowerCase();
140 Set<String> allowed = extensionsAllowed.get(type);
141 Set<String> denied = extensionsDenied.get(type);
142 if (allowed.isEmpty())
143 return !denied.contains(ext);
144 if (denied.isEmpty())
145 return allowed.contains(ext);
146 return false;
147 }
148 }