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 public class ExtensionsHandler {
40
41 private static Map<ResourceTypeHandler, Set<String>> extensionsAllowed = new HashMap<ResourceTypeHandler, Set<String>>();
42 private static Map<ResourceTypeHandler, Set<String>> extensionsDenied = new HashMap<ResourceTypeHandler, Set<String>>();
43
44 static {
45
46 extensionsAllowed.put(ResourceTypeHandler.FILE, Utils.getSet(PropertiesLoader
47 .getProperty("connector.resourceType.file.extensions.allowed")));
48 extensionsDenied.put(ResourceTypeHandler.FILE, Utils.getSet(PropertiesLoader
49 .getProperty("connector.resourceType.file.extensions.denied")));
50 extensionsAllowed.put(ResourceTypeHandler.MEDIA, Utils.getSet(PropertiesLoader
51 .getProperty("connector.resourceType.media.extensions.allowed")));
52 extensionsDenied.put(ResourceTypeHandler.MEDIA, Utils.getSet(PropertiesLoader
53 .getProperty("connector.resourceType.media.extensions.denied")));
54 extensionsAllowed.put(ResourceTypeHandler.IMAGE, Utils.getSet(PropertiesLoader
55 .getProperty("connector.resourceType.image.extensions.allowed")));
56 extensionsDenied.put(ResourceTypeHandler.IMAGE, Utils.getSet(PropertiesLoader
57 .getProperty("connector.resourceType.image.extensions.denied")));
58 extensionsAllowed.put(ResourceTypeHandler.FLASH, Utils.getSet(PropertiesLoader
59 .getProperty("connector.resourceType.flash.extensions.allowed")));
60 extensionsDenied.put(ResourceTypeHandler.FLASH, Utils.getSet(PropertiesLoader
61 .getProperty("connector.resourceType.flash.extensions.denied")));
62 }
63
64
65
66
67
68
69
70
71 public static Set<String> getExtensionsAllowed(final ResourceTypeHandler type) {
72 return extensionsAllowed.get(type);
73 }
74
75
76
77
78
79
80
81
82
83
84 public static void setExtensionsAllowed(final ResourceTypeHandler type, final String extensionsList) {
85 if (extensionsList != null) {
86 extensionsAllowed.put(type, Utils.getSet(extensionsList));
87 extensionsDenied.get(type).clear();
88 }
89 }
90
91
92
93
94
95
96
97
98 public static Set<String> getExtensionsDenied(final ResourceTypeHandler type) {
99 return extensionsDenied.get(type);
100 }
101
102
103
104
105
106
107
108
109
110
111 public static void setExtensionsDenied(final ResourceTypeHandler type, final String extensionsList) {
112 if (extensionsList != null) {
113 extensionsDenied.put(type, Utils.getSet(extensionsList));
114 extensionsAllowed.get(type).clear();
115 }
116 }
117
118
119
120
121
122
123
124
125 public static boolean isAllowed(final ResourceTypeHandler type, final String extension) {
126 if (type == null || extension == null)
127 return false;
128 String ext = extension.toLowerCase();
129 Set<String> allowed = extensionsAllowed.get(type);
130 Set<String> denied = extensionsDenied.get(type);
131 if (allowed.isEmpty())
132 return !denied.contains(ext);
133 if (denied.isEmpty())
134 return allowed.contains(ext);
135 return false;
136 }
137 }