HSTS-фильтр, показывающий ошибку NoClassDefFound - PullRequest
0 голосов
/ 26 декабря 2018

HSTSFilter

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.annotation.WebFilter;
import javax.servlet.http.HttpServletResponse;

import com.adp.gli.common.logging.ILogger;
import com.adp.gli.common.logging.LogMessageContext;
import com.adp.gli.common.logging.LoggerManager; 

      public class HSTSfilter implements Filter {
            static LogMessageContext ctx = new LogMessageContext();
            static ILogger log = LoggerManager.getLogger(
                    HSTSfilter.class.getName(), ctx);

            /**
             * Default constructor. 
             */
            public HSTSfilter() {
                // TODO Auto-generated constructor stub
            }


            /**
             * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
             */
            public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
                // TODO Auto-generated method stub
                try{
                    log.debug("HSTS header added to response");
                HttpServletResponse res = (HttpServletResponse) response;
                res.addHeader("Strict-Transport-Security", "max-age=31556926; includeSubDomains");
                // pass the request along the filter chain
                chain.doFilter(request, res);
                }catch(Exception exc){
                    log.error(this.getClass().getName() + " : Exception while adding HTTP Strict Transport Security header", exc);
                }
            }

            /**
             * @see Filter#init(FilterConfig)
             */
            public void init(FilterConfig fConfig) throws ServletException {
        }

web.xml

  <filter>
        <filter-name>HSTSFilter</filter-name>
        <filter-class>com.gli.web.filters.HSTSFilter</filter-class>
      </filter>
     <filter-mapping>
        <filter-name>HSTSFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>

Я даже пытался использовать шаблон URL * .faces, а также использовать @webfilter (), но не работает иЯ получаю эту ошибку:

Исключение страницы ошибки
SRVE0260E: Сервер не может использовать страницу ошибки, указанную для вашего приложения, для обработки оригинального исключения, напечатанного ниже.

Original Exception:  
Error Message: javax.servlet.ServletException: Filter [HSTSFilter]: com.gli.web.filters.HSTSFilter was found, but is missing another required class.   
Error Code: 500  
Target Servlet: Faces Servlet  
Error Stack: 
java.lang.NoClassDefFoundError: com/gli/web/filters/HSTSFilter (wrong name: com/gli/web/filters/HSTSfilter)   
     at java.lang.ClassLoader.defineClassImpl(Native Method)   
     at java.lang.ClassLoader.defineClass(ClassLoader.java:346)   
     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:154)   
     at com.ibm.ws.classloader.CompoundClassLoader._defineClass(CompoundClassLoader.java:856)   
     at com.ibm.ws.classloader.CompoundClassLoader.localFindClass(CompoundClassLoader.java:764)   
     at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:587)   
     at java.lang.ClassLoader.loadClass(ClassLoader.java:805)   
     at java.lang.Class.forNameImpl(Native Method)   
     at java.lang.Class.forName(Class.java:348)   
     at com.sun.beans.finder.ClassFinder.findClass(ClassFinder.java:115)   
     at java.beans.Beans.instantiate(Beans.java:220)   
     at java.beans.Beans.instantiate(Beans.java:88)   
     at com.ibm.ws.webcontainer.filter.WebAppFilterManager._loadFilter(WebAppFilterManager.java:572)   
     at com.ibm.ws.webcontainer.filter.WebAppFilterManager.loadFilter(WebAppFilterManager.java:514)   
     at com.ibm.ws.webcontainer.filter.WebAppFilterManager.getFilterInstanceWrapper(WebAppFilterManager.java:319)   
     at com.ibm.ws.webcontainer.filter.WebAppFilterManager.getFilterChain(WebAppFilterManager.java:392)   
     at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:931)   
     at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1107)   
     at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)   
     at  com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:940)   
     at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1817)   
     at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)   
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463)   
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530)   
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316)   
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:287)   
     at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)   
     at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)   
     at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)   
     at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)   
     at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) 
     at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) 
     at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) 
     at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) 
     at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) 
     at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1881) 



Error Page Exception:   
Error Message: java.lang.RuntimeException: FacesContext not found  
Error Code: 0  
Target Servlet:   
Error Stack:   
java.lang.RuntimeException: FacesContext not found   
     at javax.faces.webapp.UIComponentClassicTagBase.getFacesContext(UIComponentClassicTagBase.java:324)   
     at javax.faces.webapp.UIComponentClassicTagBase.setJspId(UIComponentClassicTagBase.java:226)   
     at com.ibm._jsp._error._jspx_meth_f_view_0(_error.java:291)   
     at com.ibm._jsp._error._jspService(_error.java:107)   
     at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:99)   
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)   
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1232)   
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:781 )   
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:480)   
     at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)   
     at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122)   
     at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:220)   
     at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)   
     at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:79)   
     at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:967)   
     at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1107)   
     at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:1385)   
     at  com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:194)   
     at com.ibm.ws.webcontainer.webapp.WebApp.sendError(WebApp.java:3411) 
     at com.ibm.ws.webcontainer.webapp.WebApp.handleException(WebApp.java:3958) 
     at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:89)   
     at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:940) 
     at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1817) 
     at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200) 
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463) 
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530)   
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316)   
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:287)   
     at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)   
     at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)   
     at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)   
     at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)   
     at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)   
     at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) 
     at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) 
     at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)   
     at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)   
     at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1881)  

думал, что я добавил еще один фильтр, который не показывает такой ошибки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...