|
From: <ian...@us...> - 2007-12-14 18:17:24
|
Revision: 634
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=634&view=rev
Author: iansmith
Date: 2007-12-14 10:17:28 -0800 (Fri, 14 Dec 2007)
Log Message:
-----------
Renamed the filter to be more sensible. It is also now available (via web.xml) to the status
servlet as well, if you want to protect that servlet. For developers, this is all turned
OFF by default.
Modified Paths:
--------------
maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web.xml
Added Paths:
-----------
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/site/FilterByPort.java
Removed Paths:
-------------
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/site/SimFilter.java
Copied: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/site/FilterByPort.java (from rev 632, maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/site/SimFilter.java)
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/site/FilterByPort.java (rev 0)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/site/FilterByPort.java 2007-12-14 18:17:28 UTC (rev 634)
@@ -0,0 +1,68 @@
+package com.ogoglio.sim.site;
+
+import java.io.IOException;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ogoglio.util.Log;
+
+public class FilterByPort implements Filter {
+
+ private boolean filterNeeded=false;
+ private int okPort=8888;
+
+ public void destroy() {
+ }
+
+ public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
+ //do we even need to bother?
+ if (!filterNeeded) {
+ chain.doFilter(req, resp);
+ return;
+ }
+
+ //ok, now do the checking
+ if (req.getLocalPort()!=okPort) {
+ if (resp instanceof HttpServletResponse) {
+ Log.info("Refusing to allow connection to sim on port "+req.getLocalPort());
+ HttpServletResponse httpResp=(HttpServletResponse)resp;
+ httpResp.setStatus(HttpServletResponse.SC_FORBIDDEN);
+ } else {
+ Log.warn("Configuration is almost certainly messed up, got a non HTTP servlet response:"+
+ resp.getClass().getName());
+ }
+ } else {
+ chain.doFilter(req,resp);
+ }
+ }
+
+ public void init(FilterConfig config) throws ServletException {
+ try {
+ Context initCtx = new InitialContext();
+ Context envCtx = (Context) initCtx.lookup("java:comp/env");
+ String useMe = (String) envCtx.lookup("ogoglio/simFilter");
+ if ("true".equals(useMe.toLowerCase())) {
+ filterNeeded=true;
+ String port=(String)envCtx.lookup("ogoglio/simFilterPort");
+ try {
+ okPort=Integer.parseInt(port);
+ } catch (NumberFormatException ex) {
+ Log.error("Whoa! Couldn't understand ogoglio/simFilterPort: "+port+" using "+okPort+" instead!");
+ }
+ }
+ Log.info("Filtering by port? "+useMe+" [port = "+okPort+"] and needed?"+filterNeeded);
+ } catch (NamingException e) {
+ throw new ServletException("Initialization time exception from Naming (JNDI):"+e.getMessage());
+ }
+ }
+}
+
Deleted: maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/site/SimFilter.java
===================================================================
--- maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/site/SimFilter.java 2007-12-14 17:28:46 UTC (rev 633)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/site/SimFilter.java 2007-12-14 18:17:28 UTC (rev 634)
@@ -1,67 +0,0 @@
-package com.ogoglio.sim.site;
-
-import java.io.IOException;
-
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletResponse;
-
-import com.ogoglio.util.Log;
-
-public class SimFilter implements Filter {
-
- private boolean filterNeeded=false;
- private int okPort=8888;
-
- public void destroy() {
- }
-
- public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
- //do we even need to bother?
- if (!filterNeeded) {
- chain.doFilter(req, resp);
- return;
- }
-
- //ok, now do the checking
- if (req.getLocalPort()!=okPort) {
- if (resp instanceof HttpServletResponse) {
- Log.info("Refusing to allow connection to sim on port "+req.getLocalPort());
- HttpServletResponse httpResp=(HttpServletResponse)resp;
- httpResp.setStatus(HttpServletResponse.SC_FORBIDDEN);
- } else {
- Log.warn("Configuration is almost certainly messed up, got a non HTTP servlet response:"+
- resp.getClass().getName());
- }
- } else {
- chain.doFilter(req,resp);
- }
- }
-
- public void init(FilterConfig config) throws ServletException {
- try {
- Context initCtx = new InitialContext();
- Context envCtx = (Context) initCtx.lookup("java:comp/env");
- String useMe = (String) envCtx.lookup("ogoglio/simFilter");
- if ("true".equals(useMe.toLowerCase())) {
- filterNeeded=true;
- String port=(String)envCtx.lookup("ogoglio/simFilterPort");
- try {
- okPort=Integer.parseInt(port);
- } catch (NumberFormatException ex) {
- Log.error("Whoa! Couldn't understand ogoglio/simFilterPort: "+port+" using "+okPort+" instead!");
- }
- }
- } catch (NamingException e) {
- throw new ServletException("Initialization time exception from Naming (JNDI):"+e.getMessage());
- }
- }
-}
-
Modified: maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web.xml
===================================================================
--- maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web.xml 2007-12-14 17:28:46 UTC (rev 633)
+++ maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web.xml 2007-12-14 18:17:28 UTC (rev 634)
@@ -43,8 +43,8 @@
</servlet>
<filter>
- <filter-name>SimFilter</filter-name>
- <filter-class>com.ogoglio.sim.site.SimFilter</filter-class>
+ <filter-name>PortFilter</filter-name>
+ <filter-class>com.ogoglio.sim.site.FilterByPort</filter-class>
</filter>
@@ -69,7 +69,7 @@
</servlet-mapping>
<filter-mapping>
- <filter-name>SimFilter</filter-name>
+ <filter-name>PortFilter</filter-name>
<url-pattern>/sim/*</url-pattern>
</filter-mapping>
@@ -88,6 +88,11 @@
<url-pattern>/status/*</url-pattern>
</servlet-mapping>
+ <filter-mapping>
+ <filter-name>PortFilter</filter-name>
+ <url-pattern>/status/*</url-pattern>
+ </filter-mapping>
+
<error-page>
<error-code>404</error-code>
<location>/notFound.html</location>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|