1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.waarp.gateway.kernel;
21
22 import io.netty.handler.codec.http.HttpResponseStatus;
23 import io.netty.handler.codec.http.multipart.DefaultHttpDataFactory;
24 import io.netty.handler.codec.http.multipart.DiskAttribute;
25 import io.netty.handler.codec.http.multipart.DiskFileUpload;
26 import io.netty.handler.codec.http.multipart.HttpDataFactory;
27 import org.waarp.gateway.kernel.AbstractHttpField.FieldPosition;
28 import org.waarp.gateway.kernel.AbstractHttpField.FieldRole;
29 import org.waarp.gateway.kernel.HttpPage.PageRole;
30
31 import java.net.SocketAddress;
32 import java.util.LinkedHashMap;
33 import java.util.Map;
34
35
36
37
38 public abstract class HttpBusinessFactory {
39 public static final HttpDataFactory factory =
40 new DefaultHttpDataFactory(DefaultHttpDataFactory.MINSIZE);
41
42
43 public static String TempPath = "J:/GG/ARK/TMP";
44
45
46
47
48 public static void initialize(final String tempPath) {
49 TempPath = tempPath;
50 DiskFileUpload.deleteOnExitTemporaryFile = true;
51
52
53 DiskFileUpload.baseDirectory = TempPath;
54
55 DiskAttribute.deleteOnExitTemporaryFile = true;
56
57 DiskAttribute.baseDirectory = TempPath;
58 }
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 public abstract AbstractHttpBusinessRequest getNewHttpBusinessRequest(
75 SocketAddress remoteAddress, Map<String, AbstractHttpField> fields,
76 HttpPage page);
77
78
79
80
81
82
83
84
85 public static boolean addDefaultErrorPages(final HttpPageHandler pages,
86 final String title,
87 final Class<?> clasz) {
88 String pagename;
89 final String header;
90 final String footer;
91 final String beginform;
92 final String endform;
93 final String nextinform;
94 String uri;
95 final String errorpage;
96 final String classname;
97 final PageRole pageRole;
98 LinkedHashMap<String, AbstractHttpField> linkedHashMap;
99 final String fieldname;
100 final String fieldinfo;
101 String fieldvalue;
102 final FieldRole fieldRole;
103 final boolean fieldvisibility;
104 final boolean fieldmandatory;
105 final boolean fieldcookieset;
106 final boolean fieldtovalidate;
107 final int fieldrank;
108
109
110 try {
111 pageRole = PageRole.ERROR;
112 pagename = "400";
113 uri = "400";
114 header = "<HTML><HEAD><TITLE>" + title + "</TITLE></HEAD><BODY>";
115 footer = "</BODY></HTML>";
116 beginform = "<table border=\"0\"><tr><td><h1>" + title + "</h1>";
117 endform =
118 "</td></tr></table><br><CENTER><HR WIDTH=\"75%\" NOSHADE color=\"blue\"></CENTER>";
119 nextinform = "</td></tr><tr><td>";
120 classname = clasz.getName();
121 errorpage = null;
122 linkedHashMap = new LinkedHashMap<String, AbstractHttpField>();
123 fieldname = AbstractHttpField.ERRORINFO;
124 fieldinfo = "Error information";
125 fieldvalue = HttpResponseStatus.BAD_REQUEST.reasonPhrase();
126 fieldRole = FieldRole.BUSINESS_INPUT_TEXT;
127 fieldvisibility = true;
128 fieldmandatory = false;
129 fieldcookieset = false;
130 fieldtovalidate = false;
131 fieldrank = 1;
132 linkedHashMap.put(fieldname,
133 new DefaultHttpField(fieldname, fieldRole, fieldinfo,
134 fieldvalue, fieldvisibility,
135 fieldmandatory, fieldcookieset,
136 fieldtovalidate,
137 FieldPosition.BODY, fieldrank));
138 pages.getHashmap().put(uri, new HttpPage(pagename, null, header, footer,
139 beginform, endform, nextinform,
140 uri, pageRole, errorpage,
141 classname, linkedHashMap));
142
143 pagename = "401";
144 uri = "401";
145 linkedHashMap = new LinkedHashMap<String, AbstractHttpField>();
146 fieldvalue = HttpResponseStatus.UNAUTHORIZED.reasonPhrase();
147 linkedHashMap.put(fieldname,
148 new DefaultHttpField(fieldname, fieldRole, fieldinfo,
149 fieldvalue, fieldvisibility,
150 fieldmandatory, fieldcookieset,
151 fieldtovalidate,
152 FieldPosition.BODY, fieldrank));
153 pages.getHashmap().put(uri, new HttpPage(pagename, null, header, footer,
154 beginform, endform, nextinform,
155 uri, pageRole, errorpage,
156 classname, linkedHashMap));
157
158 pagename = "403";
159 uri = "403";
160 linkedHashMap = new LinkedHashMap<String, AbstractHttpField>();
161 fieldvalue = HttpResponseStatus.FORBIDDEN.reasonPhrase();
162 linkedHashMap.put(fieldname,
163 new DefaultHttpField(fieldname, fieldRole, fieldinfo,
164 fieldvalue, fieldvisibility,
165 fieldmandatory, fieldcookieset,
166 fieldtovalidate,
167 FieldPosition.BODY, fieldrank));
168 pages.getHashmap().put(uri, new HttpPage(pagename, null, header, footer,
169 beginform, endform, nextinform,
170 uri, pageRole, errorpage,
171 classname, linkedHashMap));
172
173 pagename = "404";
174 uri = "404";
175 linkedHashMap = new LinkedHashMap<String, AbstractHttpField>();
176 fieldvalue = HttpResponseStatus.NOT_FOUND.reasonPhrase();
177 linkedHashMap.put(fieldname,
178 new DefaultHttpField(fieldname, fieldRole, fieldinfo,
179 fieldvalue, fieldvisibility,
180 fieldmandatory, fieldcookieset,
181 fieldtovalidate,
182 FieldPosition.BODY, fieldrank));
183 pages.getHashmap().put(uri, new HttpPage(pagename, null, header, footer,
184 beginform, endform, nextinform,
185 uri, pageRole, errorpage,
186 classname, linkedHashMap));
187
188 pagename = "406";
189 uri = "406";
190 linkedHashMap = new LinkedHashMap<String, AbstractHttpField>();
191 fieldvalue = HttpResponseStatus.NOT_ACCEPTABLE.reasonPhrase();
192 linkedHashMap.put(fieldname,
193 new DefaultHttpField(fieldname, fieldRole, fieldinfo,
194 fieldvalue, fieldvisibility,
195 fieldmandatory, fieldcookieset,
196 fieldtovalidate,
197 FieldPosition.BODY, fieldrank));
198 pages.getHashmap().put(uri, new HttpPage(pagename, null, header, footer,
199 beginform, endform, nextinform,
200 uri, pageRole, errorpage,
201 classname, linkedHashMap));
202
203 pagename = "500";
204 uri = "500";
205 linkedHashMap = new LinkedHashMap<String, AbstractHttpField>();
206 fieldvalue = HttpResponseStatus.INTERNAL_SERVER_ERROR.reasonPhrase();
207 linkedHashMap.put(fieldname,
208 new DefaultHttpField(fieldname, fieldRole, fieldinfo,
209 fieldvalue, fieldvisibility,
210 fieldmandatory, fieldcookieset,
211 fieldtovalidate,
212 FieldPosition.BODY, fieldrank));
213 pages.getHashmap().put(uri, new HttpPage(pagename, null, header, footer,
214 beginform, endform, nextinform,
215 uri, pageRole, errorpage,
216 classname, linkedHashMap));
217 return true;
218 } catch (final ClassNotFoundException ignored) {
219
220 } catch (final InstantiationException ignored) {
221
222 } catch (final IllegalAccessException ignored) {
223
224 }
225 return false;
226 }
227 }