|
From: <ian...@us...> - 2007-12-13 01:58:02
|
Revision: 632
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=632&view=rev
Author: iansmith
Date: 2007-12-12 17:58:05 -0800 (Wed, 12 Dec 2007)
Log Message:
-----------
First stage of allowing folks that want to protect their sims with a servlet filter.
Developers need to add this to their servlet.xml
<Environment name="simFilter" value="false" type="java.lang.String"/>
<!-- simFilterPortDoesn't matter unless simFilter is true and developers don't want that-->
<!-- but you want to keep in here so that tools that examine this file can find it -->
<Environment name="simFilterPort" value="0" type="java.lang.String"/>
With this, filtering is turned off for the development machine.
Modified Paths:
--------------
maven/trunk/ogoglio-server/src/main/webapp/META-INF/context.xml
maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web.xml
Added Paths:
-----------
maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/site/SimFilter.java
Removed Paths:
-------------
maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web-all.xml
maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web-app.xml
maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web-media.xml
maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web-sim.xml
Added: 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 (rev 0)
+++ maven/trunk/ogoglio-server/src/main/java/com/ogoglio/sim/site/SimFilter.java 2007-12-13 01:58:05 UTC (rev 632)
@@ -0,0 +1,67 @@
+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/META-INF/context.xml
===================================================================
--- maven/trunk/ogoglio-server/src/main/webapp/META-INF/context.xml 2007-12-13 01:46:16 UTC (rev 631)
+++ maven/trunk/ogoglio-server/src/main/webapp/META-INF/context.xml 2007-12-13 01:58:05 UTC (rev 632)
@@ -19,4 +19,7 @@
<ResourceLink name="ogoglio/isMediaServer" global="isMediaServer" type="java.lang.String"/>
<ResourceLink name="ogoglio/isWebappServer" global="isWebappServer" type="java.lang.String"/>
+ <ResourceLink name="ogoglio/simFilter" global="simFilterPort" type="java.lang.String"/>
+ <ResourceLink name="ogoglio/simFilterPort" global="simFilterPort" type="java.lang.String"/>
+
</Context>
Deleted: maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web-all.xml
===================================================================
--- maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web-all.xml 2007-12-13 01:46:16 UTC (rev 631)
+++ maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web-all.xml 2007-12-13 01:58:05 UTC (rev 632)
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
- <servlet>
- <servlet-name>AccountServlet</servlet-name>
- <servlet-class>com.ogoglio.site.AccountServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <servlet>
- <servlet-name>AuthServlet</servlet-name>
- <servlet-class>com.ogoglio.site.AuthServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <servlet>
- <servlet-name>SpaceServlet</servlet-name>
- <servlet-class>com.ogoglio.site.SpaceServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <servlet>
- <servlet-name>MediaServlet</servlet-name>
- <servlet-class>com.ogoglio.media.site.MediaServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <servlet>
- <servlet-name>SimServlet</servlet-name>
- <servlet-class>com.ogoglio.sim.site.SimServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>AccountServlet</servlet-name>
- <url-pattern>/account/*</url-pattern>
- </servlet-mapping>
-
- <servlet-mapping>
- <servlet-name>AuthServlet</servlet-name>
- <url-pattern>/auth/*</url-pattern>
- </servlet-mapping>
-
- <servlet-mapping>
- <servlet-name>SpaceServlet</servlet-name>
- <url-pattern>/space/*</url-pattern>
- </servlet-mapping>
-
- <servlet-mapping>
- <servlet-name>SimServlet</servlet-name>
- <url-pattern>/sim/*</url-pattern>
- </servlet-mapping>
-
- <servlet-mapping>
- <servlet-name>MediaServlet</servlet-name>
- <url-pattern>/media/*</url-pattern>
- </servlet-mapping>
-
- <error-page>
- <error-code>404</error-code>
- <location>/notFound.html</location>
- </error-page>
-</web-app>
Deleted: maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web-app.xml
===================================================================
--- maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web-app.xml 2007-12-13 01:46:16 UTC (rev 631)
+++ maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web-app.xml 2007-12-13 01:58:05 UTC (rev 632)
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
- <servlet>
- <servlet-name>AccountServlet</servlet-name>
- <servlet-class>com.ogoglio.site.AccountServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <servlet>
- <servlet-name>AuthServlet</servlet-name>
- <servlet-class>com.ogoglio.site.AuthServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <servlet>
- <servlet-name>SpaceServlet</servlet-name>
- <servlet-class>com.ogoglio.site.SpaceServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>AccountServlet</servlet-name>
- <url-pattern>/account/*</url-pattern>
- </servlet-mapping>
-
- <servlet-mapping>
- <servlet-name>AuthServlet</servlet-name>
- <url-pattern>/auth/*</url-pattern>
- </servlet-mapping>
-
- <servlet-mapping>
- <servlet-name>SpaceServlet</servlet-name>
- <url-pattern>/space/*</url-pattern>
- </servlet-mapping>
-
- <error-page>
- <error-code>404</error-code>
- <location>/notFound.html</location>
- </error-page>
-</web-app>
Deleted: maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web-media.xml
===================================================================
--- maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web-media.xml 2007-12-13 01:46:16 UTC (rev 631)
+++ maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web-media.xml 2007-12-13 01:58:05 UTC (rev 632)
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
- <servlet>
- <servlet-name>MediaServlet</servlet-name>
- <servlet-class>com.ogoglio.media.site.MediaServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>MediaServlet</servlet-name>
- <url-pattern>/media/*</url-pattern>
- </servlet-mapping>
-
- <error-page>
- <error-code>404</error-code>
- <location>/notFound.html</location>
- </error-page>
-</web-app>
Deleted: maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web-sim.xml
===================================================================
--- maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web-sim.xml 2007-12-13 01:46:16 UTC (rev 631)
+++ maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web-sim.xml 2007-12-13 01:58:05 UTC (rev 632)
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
- <servlet>
- <servlet-name>SimServlet</servlet-name>
- <servlet-class>com.ogoglio.sim.site.SimServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>SimServlet</servlet-name>
- <url-pattern>/sim/*</url-pattern>
- </servlet-mapping>
-
- <error-page>
- <error-code>404</error-code>
- <location>/notFound.html</location>
- </error-page>
-</web-app>
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-13 01:46:16 UTC (rev 631)
+++ maven/trunk/ogoglio-server/src/main/webapp/WEB-INF/web.xml 2007-12-13 01:58:05 UTC (rev 632)
@@ -42,6 +42,12 @@
<load-on-startup>1</load-on-startup>
</servlet>
+ <filter>
+ <filter-name>SimFilter</filter-name>
+ <filter-class>com.ogoglio.sim.site.SimFilter</filter-class>
+ </filter>
+
+
<servlet-mapping>
<servlet-name>AccountServlet</servlet-name>
<url-pattern>/account/*</url-pattern>
@@ -62,6 +68,11 @@
<url-pattern>/sim/*</url-pattern>
</servlet-mapping>
+ <filter-mapping>
+ <filter-name>SimFilter</filter-name>
+ <url-pattern>/sim/*</url-pattern>
+ </filter-mapping>
+
<servlet-mapping>
<servlet-name>MediaServlet</servlet-name>
<url-pattern>/media/*</url-pattern>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|