Servlet Filter issue

Hi,
In my project we have written custom filter which will intercept each request and check whether session is active or not. If not then redirect it to login page else user can do normal operation.
but the problem is, whenever i make a request, CustomFilter.doFilter() method is getting called 7-8 times. Ideally it should be called once, can anybody tell me what would be the root cause?
following are the configuration made for customfilter in web.xml
<filter>
<filter-name>customfilter</filter-name>
<filter-class>com.foo.CustomFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>customfilter</filter-name>
<url-pattern>*.jfsf</url-pattern>
</filter-mapping>
Apart from this, i do have faces-servlets default filter in web.xml
Am I am missing something in the filter configuration?>
Please advice.
Thanks
chintan

I have the same problem, but in my case its looping inside the doFilter and never terminationg from it, and becz of that I dont see the 1st page(Login page ) what could be the problem,
here is my web.xml..
     <filter>
          <filter-name>LoginFilter</filter-name>
          <filter-class>
               com.indemand.indab.architecture.LoginFilter
          </filter-class>
          <init-param>
               <param-name>error_page</param-name>
               <param-value>login.jsp</param-value>
          </init-param>
          <init-param>
               <param-name>login_page</param-name>
               <param-value>login.jsp</param-value>
          </init-param>
     </filter>
     <filter-mapping>
          <filter-name>LoginFilter</filter-name>
          <url-pattern>/*</url-pattern>
     </filter-mapping>
and here is filter class----
public void doFilter(ServletRequest request, ServletResponse response,
               FilterChain chain) throws IOException, ServletException {
          HttpSession session = ((HttpServletRequest) request).getSession(true);
          User currentUser = (User) session.getAttribute("user");
          String URI = ((HttpServletRequest) request).getRequestURI();
          System.out.println("Filter doFilter ......");
          if (filterConfig == null) {
               System.out.println("filterConfig null.");
               return;
          if (filterConfig.getInitParameter("error_page") != null) {
               errorPage = filterConfig.getInitParameter("error_page");
          } else {
               errorPage = "/indabch/login.jsp";
          if (filterConfig.getInitParameter("login_page") != null) {
               loginPage = filterConfig.getInitParameter("login_page");
          } else {
               loginPage = "/indabch/login.jsp";
          if (currentUser == null) {
               ((HttpServletResponse) response).sendRedirect(loginPage);
          } else {
               AuthorizationManager loginMan = new LoginManager();
               boolean authorized = loginMan.isUserAuthorized(currentUser
                         .getLoginName(), currentUser.getPassword());
               if (authorized) {
                    chain.doFilter(request, response);
               } else {
                    ((HttpServletResponse) response).sendRedirect(errorPage);
     }

Similar Messages

  • Implenting javax.servlet.Filter issue in Eclipse

    I received a java class from my team, and am trying to compile it in Eclipse. However, its complaining that I need to define getFilterConfig() and setFilterConfig().
    I mean, I can easily implement those methods, but the odd thing is, my teamates have been able to compile it fine without those two methods.
    Any ideas why this is happening?

    To implement a javax.servlet.Filter all you need to override are just the three methods mentioned in the Filter API: [http://java.sun.com/javaee/5/docs/api/javax/servlet/Filter.html].
    Is it actually a javax.servlet.Filter which you're implementing? Check the implements clause of your class.

  • Jrun Servlet Filter Issue

    Hi,
    I am using the below filter mapping
    <filter-mapping>
    <filter-name>jscomments</filter-name>
    <url-pattern>*.js</url-pattern>
    </filter-mapping>
    This Mapping works on my local linux dev box but I deploy it
    on our acceptance machines, the Filter does not kick in. I am not
    sure if all the static files(like js, html, etc) are being served
    by any Webservers like Apache, IIS or if there is any mistake with
    my mappings. I do not any Jrun Admin experience.
    If any one had any similar issues in the past, please let me
    know ASAP of any fix you might have.
    Thanks
    Alusac

    Yes, I am using 2.4.
    The filter that is not involed is defined:
    <filter>
    <filter-name>Authenticator</filter-name>
    <filter-class>com.authentication.Authenticate</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>Authenticator</filter-name>
    <servlet-name>UserService</servlet-name>
    </filter-mapping>
    and the servlet is:
    <servlet id="Servlet_1">
    <servlet-name>UserService</servlet-name>
    <display-name>User Services</display-name>
    <servlet-class>com.user.UserServices</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping id="Mapping_1">
    <servlet-name>UserService</servlet-name>
    <url-pattern>/User</url-pattern>
    </servlet-mapping>

  • Servlet filter - ClassNotFoundException

    Hi,
    I am trying to create and deploy a servlet filter in portal irj.
    Here is what I have done:
    1. Created filter class(TestFilter.java).
    2. Created a jar file for the above TestFilter.class.
    3. Copied the jar file to C:\usr\sap\DW1\JC00\j2ee\cluster\server0\apps\sap.com\irj\servlet_jsp\irj\root\WEB-INF\lib folder
    4. Modified the web.xml file under C:\usr\sap\DW1\JC00\j2ee\cluster\server0\apps\sap.com\irj\servlet_jsp\irj\root\WEB-INF folder with the following lines:
    <filter>
    <filter-name>TestFilter</filter-name>
    <display-name>TestFilter</display-name>
    <description>
    </description>
    <filter-class>com.test.TestFilter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>TestFilter</filter-name>
    <url-pattern>/irj/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
    <filter-name>TestFilter</filter-name>
    <servlet-name>prt</servlet-name>
    </filter-mapping>
    5.  I did reference the library in Visual Admin:  library:TestFilter
    6.  Also created the directory under ext/TestFilter and copied the jar file here.
    7. Restarted the engine.
    Exception the logs
    Cannot load filter <TestFilter>  The error is java.lang.ClassNotFoundException:  com.test.TestFilter
    Loader Info----
    I don't see my .jar displayed in the loader info.  irj didn't like my .jar.
    Any additional changes for irj to make it understand the new .jar file for classloader. 
    Appreciate your response.
    Message was edited by:
            Anant

    Hi I was wondering if you had any luck with this issues.
    Thank you.

  • SSO2Ticket within servlet filter - Orionserver

    Hi,
    I need to validate user that already logged in via SAP portal.
    So I get ticket as cookie.
    I read this cookie and try to validate it with SSO2Ticket.java that is JNI wrapper for C application.
    For this I put 2 files in system32 folder: sapssoext.dll and sapsecu.dll and I register first one with regsvr32.
    Now I try to run SSO2Ticket.java and it works perfectly. But I need this functionality inside my login servlet filter.
    So I still use SSO2Ticket.java but in stead of main method I put same calls into may filter.
    It seams to load sapssoext.dll but what ever method I call I get:
    java.lang.UnsatisfiedLinkError
    Here is method that performs calls. Method is called from filter doFilter method.
    There is SSO2Ticket.java attached here.
    private void checkSAPTicket(HttpServletRequest request) throws Exception
    System.out.println("checkSAPTicket");
    //Ticket is hardcoded and valid
    String ticket="AjExMDAgABNwb3J0YWw6U0VEQVZJRFNTT05QiAATYmFzaWNhdXRoZW50aWNhdGlvbgEADFNFREFWSURTU09OUAIAAzAwMAMAA0hTMQQADDIwMDYxMjE1MDgwOQUABAAAAAgKAAxTRURBVklEU1NPTlD/APUwgfIGCSqGSIb3DQEHAqCB5DCB4QIBATELMAkGBSsOAwIaBQAwCwYJKoZIhvcNAQcBMYHBMIGAgEBMBMwDjEMMAoGA1UEAxMDSFMxAgEAMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0wNjEyMTUwODA5NTFaMCMGCSqGSIb3DQEJBDEWBBRhLnWWaKW8yXyGSrs6gBTC97XnlTAJBgcqhkjOOAQDBC8wLQIUQrgjCpKQeEScuFP7rGWO7V76b5ICFQCT0WhSpqIB11L+HVLmyAjcWeUlw==";
    // get PAB (public key) of issuing system. It is in root of my app server
    File pab=new File("verify.pse");
    String pabFilePath=pab.getAbsolutePath();
    System.out.println("pabFilePath="+pabFilePath);
    Object [] o=null;
    File sapsecu=new File("sapsecu.dll");
    String ssf_library=sapsecu.getAbsolutePath();
    System.out.println("ssf_library="+ssf_library);
    try
    String version =SSO2Ticket.getVersion();
    //String ssf_library="sapsecu.dll";
    if(!SSO2Ticket.init(ssf_library)) {
    System.out.println ("Could not load library: " + ssf_library);
    return;
    System.out.println("evalLogonTicket call...");
    // Validate logon ticket.
    o = SSO2Ticket.evalLogonTicket (ticket, pabFilePath, null);
    } catch (Exception e) {
    System.out.println(e);
    } catch (Throwable te) {
    System.out.println(te);
    System.out.println("evalLogonTicket call ended...");
    And the log I get when I run this:
    checkSAPTicket
    pabFilePath=C:\project\GSS\orion-2.0.2\verify.pse
    ssf_library=C:\project\GSS\orion-2.0.2\sapsecu.dll
    SAPSSOEXT loaded.
    static part ends.
    java.lang.UnsatisfiedLinkError: getVersion
    evalLogonTicket call ended...
    Could not validate SAP login ticket from HTTP Header.
    If I omit call SSO2Ticket.getVersion(); than the same exception is for SSO2Ticket.init(ssf_library).

    Hi,
    I think java.lang.UnsatisfiedLinkError means that it cannot find the .dll files.
    I am not sure it will find them even if the are registered with regsvr32.
    Have you tried placing the .dll files somewhere in the classpath ?
    Dagfinn

  • Weblogic.utils.NestedRuntimeException when using javax.servlet.Filter

    IDE: JDev 10gR3.4 & JDev 11gR2.3
    ViewController technology: JSF/ADF Faces
    Example code flow:
    Run page2.jsf
    MyFilter intercepts request, checks for parameter on session.
    If parameter not null, goto page2.jsf
    Else redirect to page1.jsf
    page1.jsf has a button that sets the value on the session scope after clicking.
    In jdev 11gR2.3, I get an weblogic.utils.NestedRuntimeException after clicking the button on page1.jsf. This error does not occur in jdev 10gR3.5. Although the application continues to execute and proper info is displayed, I’m wondering why this occurs and also if I should be concerned. Has anyone experienced a similar issue when using javax.servlet.Filter in 11g?
    MyFilter code snipet:
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) {
            try {
                HttpServletRequest httpRequest = (HttpServletRequest)servletRequest;
                HttpServletResponse httpResponse = (HttpServletResponse)servletResponse;
                String redirect = httpRequest.getContextPath() + "/faces/page1.jsf"; //only difference here is 11g uses jsf, 10g uses jsp.
                String uri = httpRequest.getRequestURI().toString();
                Boolean mySessionAttribute = (Boolean)httpRequest.getSession().getAttribute("MYSESSIONATTRIBUTE");
                if (uri.endsWith(redirect) || mySessionAttribute != null) {
                    filterChain.doFilter(servletRequest, servletResponse);
                } else {
                    httpResponse.sendRedirect(redirect);
                    return;
            } catch (IOException e) {
                e.printStackTrace();
            } catch (ServletException e) {
                e.printStackTrace();
    page1.jsf/jsp
    <?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <f:view xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html">
        <h:form id="f1">
            <h:commandButton value="Submit" id="cb1" action="#{Page1Bean.clicked}" type="submit"/>
        </h:form>
    </f:view>page2.jsf/jsp
    <?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <f:view xmlns:f="http://java.sun.com/jsf/core" xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
        <af:document title="main.jsf" id="d1">
            <af:form id="f1">
                <af:outputText value="This is the main content" id="ot1"/>
            </af:form>
        </af:document>
    </f:view>Page1Bean.java
    public class Page1Bean {
        public void clicked() {       
            FacesContext context = FacesContext.getCurrentInstance();
            ExternalContext externalContext = context.getExternalContext();
            externalContext.getSessionMap().put("MYSESSIONATTRIBUTE", Boolean.TRUE);
            try {
                externalContext.redirect("/11gFilterExample-ViewController-context-root/faces/page2.jsf");
            } catch (IOException e) {
                    e.printStackTrace();
    }Full exception
    weblogic.utils.NestedRuntimeException: Cannot parse POST parameters of request: '/11gFilterExample-ViewController-context-root/faces/page1.jsf'
         at weblogic.servlet.internal.ServletRequestImpl$RequestParameters.mergePostParams(ServletRequestImpl.java:2144)
         at weblogic.servlet.internal.ServletRequestImpl$RequestParameters.parseQueryParams(ServletRequestImpl.java:2024)
         at weblogic.servlet.internal.ServletRequestImpl$RequestParameters.getQueryParams(ServletRequestImpl.java:1918)
         at weblogic.servlet.internal.ServletRequestImpl$RequestParameters.getParameter(ServletRequestImpl.java:1995)
         at weblogic.servlet.internal.ServletRequestImpl$RequestParameters.access$800(ServletRequestImpl.java:1817)
         at weblogic.servlet.internal.ServletRequestImpl.getParameter(ServletRequestImpl.java:804)
         at javax.servlet.ServletRequestWrapper.getParameter(ServletRequestWrapper.java:169)
         at org.apache.myfaces.trinidadinternal.context.external.ServletRequestParameterMap.getAttribute(ServletRequestParameterMap.java:43)
         at org.apache.myfaces.trinidadinternal.context.external.ServletRequestParameterMap.getAttribute(ServletRequestParameterMap.java:31)
         at org.apache.myfaces.trinidadinternal.context.external.AbstractAttributeMap.get(AbstractAttributeMap.java:73)
         at oracle.adfinternal.controller.state.ControllerState.getRootViewPortFromRequest(ControllerState.java:788)
         at oracle.adfinternal.controller.state.AdfcContext.initialize(AdfcContext.java:185)
         at oracle.adfinternal.controller.state.AdfcContext.initialize(AdfcContext.java:79)
         at oracle.adfinternal.controller.application.AdfcConfigurator.beginRequest(AdfcConfigurator.java:53)
         at org.apache.myfaces.trinidadinternal.config.GlobalConfiguratorImpl._startConfiguratorServiceRequest(GlobalConfiguratorImpl.java:562)
         at org.apache.myfaces.trinidadinternal.config.GlobalConfiguratorImpl.beginRequest(GlobalConfiguratorImpl.java:212)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:174)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Caused by: java.net.SocketException: Connection reset
         at java.net.SocketInputStream.read(SocketInputStream.java:168)
         at weblogic.servlet.internal.PostInputStream.read(PostInputStream.java:177)
         at weblogic.servlet.internal.ServletInputStreamImpl.read(ServletInputStreamImpl.java:228)
         at weblogic.servlet.internal.ServletRequestImpl$RequestParameters.mergePostParams(ServletRequestImpl.java:2118)
         ... 39 more
    <UIXEditableValue> <_isBeanValidationAvailable> A Bean Validation provider is not present, therefore bean validation is disabled

    I dont believe that solution pertains to my case. clicked() is invoked from standard jsf page and the adf controller is not acquired yet. i put a couple of print statements in the filter and it seems that the doFilter is called twice! This is not the case when running in 10g.
                if (uri.endsWith(redirect) || mySessionAttribute != null) {
                    System.out.println("URI dofilter: "+uri);
                    filterChain.doFilter(servletRequest, servletResponse);
                } else {
                    System.out.println("URI sendRedirect: "+uri);
                    httpResponse.sendRedirect(redirect);              
                }11g weblogic console log:
    URI sendRedirect: /11gFilterExample-ViewController-context-root/faces/page2
    URI dofilter: /11gFilterExample-ViewController-context-root/faces/page1.jsf
    URI dofilter: /11gFilterExample-ViewController-context-root/faces/page1.jsf
    10g oc4j console log:
    13/01/07 15:48:13 URI sendRedirect: /10gFilterExample-ViewController-context-root/faces/page2.jsp
    13/01/07 15:48:13 URI dofilter: /10gFilterExample-ViewController-context-root/faces/page1.jsp
    I believe whatever thats causing this occur could be why the exception is thrown...

  • Please Help!!! Deployment failure error Jps servlet filter creation failed.

    Hello All,
    We are trying to move from 10g to Jdev 11g. We are in the process of deploying the WAR application to weblogic server. However, we keep getting one error after another. This is the latest one:
    [12:40:02 PM] [Deployer:149193]Operation 'deploy' on application 'webapp1' has failed on 'AdminServer'
    [12:40:02 PM] [Deployer:149034]An exception occurred for task [Deployer:149026]deploy application webapp1 on AdminServer.: JPS-00063: Jps servlet filter creation failed. Reason: oracle.security.jps.JpsException: JPS-00065: Jps platform factory creation failed. Reason: java.security.PrivilegedActionException: oracle.security.jps.JpsException: JPS-00065: Jps platform factory creation failed. Reason: java.lang.ClassNotFoundException: oracle.security.jps.wls.JpsWlsPlatformFactory...:oracle.security.jps.JpsRuntimeException:JPS-00063: Jps servlet filter creation failed. Reason: oracle.security.jps.JpsException: JPS-00065: Jps platform factory creation failed. Reason: java.security.PrivilegedActionException: oracle.security.jps.JpsException: JPS-00065: Jps platform factory creation failed. Reason: java.lang.ClassNotFoundException: oracle.security.jps.wls.JpsWlsPlatformFactory....
    [12:40:02 PM] Weblogic Server Exception: weblogic.application.ModuleException: JPS-00063: Jps servlet filter creation failed. Reason: oracle.security.jps.JpsException: JPS-00065: Jps platform factory creation failed. Reason: java.security.PrivilegedActionException: oracle.security.jps.JpsException: JPS-00065: Jps platform factory creation failed. Reason: java.lang.ClassNotFoundException: oracle.security.jps.wls.JpsWlsPlatformFactory...:oracle.security.jps.JpsRuntimeException:JPS-00063: Jps servlet filter creation failed. Reason: oracle.security.jps.JpsException: JPS-00065: Jps platform factory creation failed. Reason: java.security.PrivilegedActionException: oracle.security.jps.JpsException: JPS-00065: Jps platform factory creation failed. Reason: java.lang.ClassNotFoundException: oracle.security.jps.wls.JpsWlsPlatformFactory...
    [12:40:02 PM] See server logs or server console for more details.
    [*12:40:02 PM] weblogic.application.ModuleException: JPS-00063: Jps servlet filter creation failed. Reason: oracle.security.jps.JpsException: JPS-00065: Jps platform factory creation failed. Reason: java.security.PrivilegedActionException: oracle.security.jps.JpsException: JPS-00065: Jps platform factory creation failed. Reason: java.lang.ClassNotFoundException: oracle.security.jps.wls.JpsWlsPlatformFactory...:oracle.security.jps.JpsRuntimeException:JPS-00063: Jps servlet filter creation failed. Reason: oracle.security.jps.JpsException: JPS-00065: Jps platform factory creation failed. Reason: java.security.PrivilegedActionException: oracle.security.jps.JpsException: JPS-00065: Jps platform factory creation failed. Reason: java.lang.ClassNotFoundException: oracle.security.jps.wls.JpsWlsPlatformFactory...*[12:40:02 PM] Deployment cancelled.
    I am sorry to have made the post title so eye catching, but we keep getting issues, one after the other and we are fast approaching the deadline for this upgrade. Thanks for being understanding.
    Please help!!!
    Edited by: user12054715 on Aug 29, 2011 7:16 PM

    UPDATE:
    I have been trying to find the class JpsWlsPlatformFactory and some sites say that it is present in the jar - jps-api.jar. So I looked in D:\Oracle\Middleware\oracle_common\modules\oracle.jps_11.1.1 and found a jar called jps-api.jar but the class JpsWlsPlatformFactory was not there. I also tried to find this class on the web but no success.
    This is very wierd that oracle.security.jps.wls.JpsWlsPlatformFactory is nowhere to be found on the internet!!!
    NOTE: Our application is based on JSF/ADF.
    Please help!
    Edited by: user12054715 on Aug 29, 2011 9:43 PM

  • Weblogic 7.0 and 6.1 javax.servlet.filter implementation

              Hi All,
              I was using weblogic 6.1 and as my organization wants to go for 7.0, we
              are in the process of evaluating 7.0 ver.
              WL6.1 javax.servlet.filter interface provides the methods doFilter(), setFilterConfig(),
              getFilterConfig(). We have an implementation for the Filter which also contains
              a private method init(FilterCongig filterConfig).
              In 7.0 javax.servlet.filter interface the methods are doFilter(), init(), destroy().
              Because of the obvious reason i have a private implementation of init(FilterConfig
              )in my code the build does not succeed. When i checked the java specifications
              from Sun site I found 1.3.1 and 1.4(beta) specs provide doFilter(), init() and
              destroy().
              Question is: Is weblogic 6.1, JDK 1.3.1 compliant, if so why there is not init()
              method in the filter interface??. (Otherwise its a bug)
              Because of this the porting has become a serious issue as in some cases we need
              to support both 6.1 and 7.0
              

    6.1 did not implement the final version of the Servlet 2.3 specification, that's
              why you see differences.
              http://edocs.bea.com/wls/docs61/notes/new.html#1064420
              Sanjeev <[email protected]> wrote:
              > Hi All,
              > I was using weblogic 6.1 and as my organization wants to go for 7.0, we
              > are in the process of evaluating 7.0 ver.
              > WL6.1 javax.servlet.filter interface provides the methods doFilter(), setFilterConfig(),
              > getFilterConfig(). We have an implementation for the Filter which also contains
              > a private method init(FilterCongig filterConfig).
              > In 7.0 javax.servlet.filter interface the methods are doFilter(), init(), destroy().
              > Because of the obvious reason i have a private implementation of init(FilterConfig
              > )in my code the build does not succeed. When i checked the java specifications
              > from Sun site I found 1.3.1 and 1.4(beta) specs provide doFilter(), init() and
              > destroy().
              > Question is: Is weblogic 6.1, JDK 1.3.1 compliant, if so why there is not init()
              > method in the filter interface??. (Otherwise its a bug)
              > Because of this the porting has become a serious issue as in some cases we need
              > to support both 6.1 and 7.0
              Dimitri
              

  • Strange behavior when using servlet filter with simple index.htm

    I am new to J2EE development so please tolerate my ignorance. I have a web application that starts with a simple index.htm file. I am using a servlet filter throughout the website to check for session timeout, redirecting the user to a session expiration page if the session has timed out. When I do something as simple as loading the index.htm page in the browser, the .css file and one image file that are associated, or referenced in the file are somehow corrupted and not being rendered. How do I get the filter to ignore css and image files??? Thank you!!
    The servlet filter:
    import java.io.IOException;
    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.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    public class SessionTimeoutFilter implements Filter {
         String[] excludedPages = {"SessionExpired.jsp","index.htm","index.jsp"};
         String timeoutPage = "SessionExpired.jsp";
         public void destroy() {
         public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
              if ((request instanceof HttpServletRequest) && (response instanceof HttpServletResponse)) {
                   HttpServletRequest httpServletRequest = (HttpServletRequest) request;
                   HttpServletResponse httpServletResponse = (HttpServletResponse) response;
                   //httpServletResponse.setHeader("Cache-Control","no-cache");
                   //httpServletResponse.setHeader("Pragma","no-cache");
                   //httpServletResponse.setDateHeader ("Expires", 0);
                   String requestPath = httpServletRequest.getRequestURI();
                   boolean sessionInvalid = httpServletRequest.getSession().getAttribute("loginFlag") != "loggedIn";               
                   System.out.println(sessionInvalid);
                   boolean requestExcluded = false;
                   System.out.println(requestExcluded);
                   for (int i=0;i<excludedPages.length;i++){
                        if(requestPath.contains(excludedPages)){
                             requestExcluded = true;
                   if (sessionInvalid && !requestExcluded){
                        System.out.println("redirecting");
                        httpServletResponse.sendRedirect(timeoutPage);
              // pass the request along the filter chain
              chain.doFilter(request, response);
         public void init(FilterConfig arg0) throws ServletException {
              //System.out.println(arg0.getInitParameter("test-param"));
    The index.htm file (or the relevant portion)<HTML>
    <Head>
    <META http-equiv="Content-Style-Type" content="text/css">
    <LINK href="RTEStyleSheet.css" rel="stylesheet" type="text/css">
    <TITLE>Login</TITLE>
    </HEAD>
    <BODY>
    <FORM NAME="Login" METHOD="POST" ACTION="rte.ServletLDAP"><!-- Branding information -->
    <table width="100%" border="0" cellpadding="0" cellspacing="0">
         <tr>
              <td width="30%" align="left"><img src="images/top_logo_new2.gif">
              </td>
              <td width="37%" align="center"></td>
              <td width="33%" align="right"></td>
         </tr>
    </table>
    My web.xml entry for the filter:     <filter>
              <description>
              Checks for a session timeout on each user request, redirects to logout if the session has expired.</description>
              <display-name>
              SessionTimeoutFilter</display-name>
              <filter-name>SessionTimeoutFilter</filter-name>
              <filter-class>SessionTimeoutFilter</filter-class>
              <init-param>
                   <param-name>test-param</param-name>
                   <param-value>this is a test parameter</param-value>
              </init-param>
         </filter>
         <filter-mapping>
              <filter-name>SessionTimeoutFilter</filter-name>
              <url-pattern>/*</url-pattern>
              <dispatcher>REQUEST</dispatcher>
              <dispatcher>FORWARD</dispatcher>
         </filter-mapping>

    Hi,
    Try adding CSS files and images to the excluded Pages.

  • Filter Issues in P6.2.1

    I am facing filter issues in P6.2.1. I used the customized filter for "Planned but Not Started". Below shown were the combination i used to create the filter. but when i run the filter no activities were shown under WBS, i mean empty WBS
    1. Early Start - within a range of - PS - DD
    Activity Status - Not Started.
    2. Early Start - less than or equal to - DD
    Activity Status - Not Started.

    Hi,
    My feeling is that perhaps you don't have any task that is late.
    If not, please try following filter:
    Start is less than or equals to DD
    Activity staus not started yet
    I hope it helps.
    Regards,
    Younus

  • Set Roles in servlet filter

    How can I set the user's role in the request object in a servlet filter
    so that in my action class, i can query the role using
    request.isUserInRole() and request.getUserPrinciple() methods.
    Any ideas...
    Thanks,

    How can I set the user's role in the request object
    in a servlet filter
    so that in my action class, i can query the role
    using
    request.isUserInRole() and request.getUserPrinciple()
    methods.You may want to check out JAAS in the Creator tutorial:
    http://developers.sun.com/prodtech/javatools/jscreator/ea/jsc2/reference/sampleapps/

  • Servlet filter problem

    I've written a simple servlet filter to intercept a request to another servlet. So when the user tries to access /servlet/ViewMetadata servlet, they first hit InterceptServlet, the filter configured in Tomcat.
    I need to access the name and URL of the target servlet ViewMetada within InterceptServlet but don't know how to do this. I am familiar with HttpServletRequest.getServletPath() but doFilter uses ServletRequest as its argument.
    Can I obtain the target servlet name inside the filter servlet? I know this is probably very basic!
    Arc

    If the filter is invoked by a HttpServletRequest, then the ServletRequest handle you've in the filter is just an instance of HttpServletRequest.
    Cast it back.

  • Servlet Filter not working in Oracel9iAS(9.2.0.3)

    Hi,
    May i know what cause the servlet filter not workinng in Oracle9iAS? Is there any library files missing? I have tried deploy the war file in Tomcat but is working fine but when i try to deploy in Oracle9iAS, the application seems like can't call the servlet filter.
    Please advice.
    Thanks.
    Regards,
    Ming Jade

    I'm not exactly sure what version you are using.
    Servlet Filters were introduced in Servlet 2.3 which was part of J2EE 1.3.
    Oracle9iAS 9.0.2.3 is J2EE 1.2 compatible .
    Oracle Application Server 10g 9.0.4.x and 10.1.2 is J2EE 1.3 compatible
    Oracle Application Server 10g 10.1.3 is J2EE 1.4 compatible.
    So the problem could be that the version of the product you are using does does not support the version of the servlet spec that covers Servlet Filters.
    Can you upgrade to/install the 10.1.2 release as a minimum?
    cheers
    -steve-

  • How to Add a Servlet Filter to Reports 11.1.1.2.0

    I am running Fusion Middleware 11g (Weblogic 10.3.2), with Oracle Forms/Reports 11.1.1.2.0. The installation is running the default managed servers WLS_FORMS and WLS_REPORTS.
    How can I add a Servlet Filter to the Reports 11.1.1.2.0 application which is running under the WLS_REPORTS managed server?
    I have read the Oracle Doc ID: 418366.1, which describes a process for adding a servlet filter to Reports Developer 10.1.2.2, but I am unclear as to which web.xml file I need to modify in weblogic and where to place the class file for the servlet filter.
    Thanks in advance for your help.

    I can provide some partial help.
    The set up I have was running it locally on Windows 7 (64 bit) laptop and running the reports server (version 11.1.1.4) in XP Mode as part of Windows 7 Professional.
    To find which web.xml file to change, I searched the directories for web.xml and then removed then renamed the web.xml files to something else to see which impacted the start up of the reports server.
    It turns out it was a web.xml file in web.war file in the following directory which impacted the start up:
    C:\Oracle\Middleware\user_projects\domains\ClassicDomain\servers\WLS_REPORTS\tmp\_WL_user\reports_11.1.1.2.0\1ww4ab
    So used winzip to extract files, update web.xml file and and java class as a jar file in the WEB-INF\lib directory and zipped back up to a web.war and put it in the above directory and restarted the Reports Server.
    Note the url pattern I used was slightly different to that shown in the oracle note (forward slash before asterix):
    <url-pattern>/rwservlet/*</url-pattern>
    Have not investigated how to do in for a production environment, but hopefully this information is of use.
    Les.

  • Memory leak in Servlet Filter handling?

    In Sun Web Server 6.1, I'm finding a memory leak when using servlet filters. I've even created a "no op" servlet filter. When it's registered, every 10000 hits or so to filtered static content will eat up about 5 to 10 MB of RAM. The JVM heap size doesn't increase.
    When I remove the filter, I've hit the same static page on the server 50000 times without seeing an increase in memory usage by the process.
    This is on Windows 2000, and I think the Sun Web Server 6.1 is SP1. I haven't tried SP2 yet.
    For reference, here's the filter I put in:
    public class NoOpFilter implements Filter
    public void init(FilterConfig arg0) throws ServletException {}
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
    chain.doFilter(request, response);
    public void destroy() {}
    }

    I found the bug. I get the memory leak if magnus.conf has either or both of the following entries:
    AdminLanguage en
    DefaultLanguage en
    If I delete the entries, the memory leak goes away. I suppose this should get fixed by Sun sometime. Maybe I'll figure out how to officially report the bug later.

Maybe you are looking for