Я работаю над приложением, которое пропускает ФИЛЬТРЫ, настроенные в приложении, при подключении к URL-адресу http через код. Одним из фильтров является UTF8Filter, настроенный с шаблоном URL /*
. Ниже приведен фрагмент кода моего URL-соединения.HttpURLConnection, пропускающий FILTER в приложении J2EE
String protocol = "http";
String port = "50000";
String host = "localhost";
URL url = new URL(protocol + "://" + host + ":" + port + path + "/"
+ fs + "_" + fsv + ".jspx?id=" + wid + "&rt=pdf");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.disconnect();
conn.setUseCaches(false);
conn.setDefaultUseCaches(false);
conn.setDoOutput(true);
if (jsessionid != null) {
conn.addRequestProperty("Cookie", jsessionid.getName() + "="
+ jsessionid.getValue());
}
logger.info("Before connect....");
conn.connect();
logger.info("After connect...");
logger.info("get response code : " + conn.getResponseCode());//200
Ниже приведен журнал, записанный в приложении.
INFO GPBean:201 - Before connect....
INFO GPBean:203 - After connect...
INFO GPBean:207 - get response code : 200
--- It has skipped the filters. Request hasn't gone through the UTF8Filter.
Наша заявка использует проверку подлинности на основе форм. Я вижу, что есть некоторая проблема с отображением изображений входа в систему, потому что он ищет эти изображения в другой папке, но не уверен в этом.
Я попытался удалить модуль аутентификации и протестировать приложение. Он работает нормально.
Ниже приведено видеоизображение, в котором отключена аутентификация на основе форм.
19 Feb 2015 12:32:19,289 INFO GPBean:201 - Before connect....
19 Feb 2015 12:32:19,292 INFO GPBean:203 - After connect...
19 Feb 2015 12:32:19,363 INFO UTF8Filter:38 - In UTF8Filter class, doFilter() method...
19 Feb 2015 12:32:19,365 INFO UTF8Filter:41 - In UTF8 Filter, Filtering the request
-----some other log messages
19 Feb 2015 12:32:27,017 INFO GPBean:207 - get response code : 200
На данный момент, я не уверен, чтобы решить, если проблема с аутентификацией, основанной на форме или с HTTPUrl кодом соединения или какой-либо другой конфигурации. Любая помощь приветствуется.
UPDATE: В соответствии с просьбой, я обновление с фрагментом моей web.xml
<filter>
<filter-name>RF</filter-name>
<filter-class>com.srk.filters.RF</filter-class>
</filter>
<filter>
<filter-name>UTF8Filter</filter-name>
<filter-class>com.srk.filters.UTF8Filter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>RF</filter-name>
<servlet-name>Persistent Faces Servlet</servlet-name>
</filter-mapping>
<filter-mapping>
<filter-name>RF</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<filter-mapping>
<filter-name>UTF8Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet>
<servlet-name>Persistent Faces Servlet</servlet-name>
<servlet-class>com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet>
<servlet-name>Blocking Servlet</servlet-name>
<servlet-class>com.icesoft.faces.webapp.xmlhttp.BlockingServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet>
<servlet-name>uploadServlet</servlet-name>
<servlet-class>com.icesoft.faces.component.inputfile.FileUploadServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Persistent Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Persistent Faces Servlet</servlet-name>
<url-pattern>*.jspx</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Persistent Faces Servlet</servlet-name>
<url-pattern>*.iface</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Persistent Faces Servlet</servlet-name>
<url-pattern>/xmlhttp/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Blocking Servlet</servlet-name>
<url-pattern>/block/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>uploadServlet</servlet-name>
<url-pattern>/uploadHtml</url-pattern>
</servlet-mapping>
Что вы конфигурируете 'UTF8Filter' - вы используете web.xml или аннотации? Если я не ошибаюсь, вам нужно добавить «FORWARD» -Dispatcher к вашему картографированию фильтров. – chearius
Я использую web.xml, никаких аннотаций. – srk