Nathan,

I am a newbie to Java and Tomcat, and I did spend two days with two Tomcat
books I bought and Google trying to find some instructions I could
understand before posting a question to this list.  Please let me know if
there is a list more appropriate for new users.

Thanks,

Larry Nobs


----- Original Message ----- 
From: "Nathan Maves" <[EMAIL PROTECTED]>
To: "Tomcat Users List" <[EMAIL PROTECTED]>
Sent: Tuesday, May 11, 2004 8:56 AM
Subject: Re: Filter on url example - Filter out hack attempts


> First of this is not a Tomcat question.  This type of information is
> always available at http://java.sun.com or http://forum.java.sun.com/
>
> To answer your question....Yes.  in-fact you can place the class where
> ever you want as long as it is in your classpath.  Of course you will
> also have to change the <filter-class> attribute accordingly.
>
> Nathan
> On May 11, 2004, at 7:42 AM, lrnobs wrote:
>
> > Yoav,
> >
> > So from what I know so far my
> > /usr/local/tomcat/webapps/myapplication/WEB-INF/web.xml should look
> > like the
> > following:
> >
> > <web-app>
> >   <filter>
> >     <filter-name>UrlFilter</filter-name>
> >     <filter-class>UrlFilter</filter-class> *Don't know how this should
> > layout.*
> >   </filter>
> >
> >   <filter-mapping>
> >     <filter-name>UrlFilter</filter-name>
> >     <url-pattern>/*</url-pattern>
> >   </filter-mapping>
> >
> >   <welcome-file-list>
> >     <welcome-file>index.jsp</welcome-file>
> >     <welcome-file>index.html</welcome-file>
> >   </welcome-file-list>
> > </web-app>
> >
> >
> > Do I then create
> > /usr/local/tomcat/webapps/myapplication/WEB-INF/classes/URLFilter.java?
> >
> >
> >  public class UrlFilter implements Filter {
> >    ...
> >    public void doFilter(...) {
> >      if(req instance of HttpServletRequest) {
> >        HttpServletRequest hreq = (HttpServletRequest) req;
> >        String uri = hreq.getRequestURI();
> >        if(allow(uri)){
> >          chain.doFilter(req, res);
> >        } else {
> > ...........Send to Null
> >          // Do whatever: error page, redirect, etc.
> >        }
> >      } else {
> >        // Non-HTTP requests
> >        chain.doFilter(req, res);
> >      }
> >    }
> >
> >      private boolean allow(String uri) {
> >      // Look up allowed urls in a DB, Collection, whatever
> >
> >        SubstringTest = False;
> >     SubstringTest = string.indexOf("GET / HTTP/1.1") > 0;
> >      if(SubstringTest = True) return True;
> >      Do the same for the rest
> >      //GET / HTTP/1.0     //page1.jsp     //page2.jsp     //page3.jsp
> > //page4.jsp     //page5.jsp     //graphic1.gif     //graphic2.gif
> >      } }
> >
> > Thanks,
> >
> > Larry Nobs
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >>
> >> Hi,
> >> This is a trivial filter:
> >> public class URLFilter implements Filter {
> >>   ...
> >>   public void doFilter(...) {
> >>     if(req instance of HttpServletRequest) {
> >>       HttpServletRequest hreq = (HttpServletRequest) req;
> >>       String uri = hreq.getRequestURI();
> >>       if(allow(uri)){
> >>         chain.doFilter(req, res);
> >>       } else {
> >>         // Do whatever: error page, redirect, etc.
> >>       }
> >>     } else {
> >>       // Non-HTTP requests
> >>       chain.doFilter(req, res);
> >>     }
> >>   }
> >>
> >>     private boolean allow(String uri) {
> >>      // Look up allowed urls in a DB, Collection, whatever
> >>     }
> >> }
> >>
> >> I omitted full prototype declarations above due to laziness.  It's the
> >> javax.servlet.Filter interface.
> >>
> >> Take a look at the balancer webapp that ships with tomcat 5.  The
> >> URLStringMatchRule is pretty close to what you want, and can be easily
> >> extended with a list of allow patterns and/or deny patterns.  Tomcat
> >> has
> >> something similar as the base Valve for the RemoteAddr/RemoteHost
> >> valves.
> >>
> >> Yoav Shapira
> >> Millennium Research Informatics
> >>
> >>
> >>> -----Original Message-----
> >>> From: lrnobs [mailto:[EMAIL PROTECTED]
> >>> Sent: Saturday, May 08, 2004 9:11 PM
> >>> To: Tomcat Users List
> >>> Subject: Filter on url example - Filter out hack attempts
> >>>
> >>> I have had no luck Googling so far for an example on how to filter
> >> based on
> >>> urls.
> >>>
> >>> I thought I might put this in the AccessLogValve but will do whatever
> >>> works.
> >>>
> >>> I have a limited number of jsp's and graphics on my site and would
> >>> like
> >> to
> >>> filter out all of the hack attempts that fill up my logs.
> >>>
> >>> I would like to do something like this (in plain english)
> >>>
> >>> Accept
> >>> GET / HTTP/1.1
> >>> GET / HTTP/1.0
> >>> *page1.jsp*
> >>> *page2.jsp*
> >>> *page3.jsp*
> >>> *page4.jsp*
> >>> *page5.jsp*
> >>> *graphic1.gif*
> >>> *graphic2.gif*
> >>>
> >>> Drop All Other Requests - they are just hack attempts
> >>>
> >>> Thanks,
> >>>
> >>> Larry Nobs
> >>>
> >>>
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >>
> >>
> >> This e-mail, including any attachments, is a confidential business
> > communication, and may contain information that is confidential,
> > proprietary
> > and/or privileged.  This e-mail is intended only for the individual(s)
> > to
> > whom it is addressed, and may not be saved, copied, printed, disclosed
> > or
> > used by anyone else.  If you are not the(an) intended recipient, please
> > immediately delete this e-mail from your computer system and notify the
> > sender.  Thank you.
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >>
> >>
> >>
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to