2012-03-03 45 views
14

tôi có một dự án JavaEE litte, và tôi phải bảo vệ nó với OWASP ESAPIOWASP ESAPI SimpleTest trong một dự án Maven Java EE

i tích hợp ESAPI như thế này trong Maven:

<!-- ESAPI Version 2.0.1 --> 
<dependency> 
    <groupId>org.owasp.esapi</groupId> 
    <artifactId>esapi</artifactId> 
    <version>2.0.1</version> 
</dependency> 

Vì vậy, sau này tôi có thể sử dụng các lớp ESAPI để lập trình.

tôi cũng bao gồm các thư mục .esapi trong start server:

-Dorg.owasp.esapi.resources=/home/joergi/.esapi/ 

Tôi cũng sao chép ESAPI.propertiesvalidation.properties vào

src/main/resources 

(Tôi không chắc chắn nếu nó hoạt động, nhưng tôi không gặp lỗi khi khởi động máy chủ)

Tôi đã xem ESAPI install guide (pdf) (thực sự có tài liệu xấu) và đã sao chép e xample

"Để kiểm tra nếu ESAPI đã được tích hợp thành công và được cấu hình, tạo ra một tập tin gọi là EsapiIntegrationTest.java và dán vào:"

import org.owasp.esapi.ESAPI; 
public class EsapiTest { 
    public static void main(String[] args){ 
     System.out.println("ESAPI.accessController found: " 
           + ESAPI.accessController()); 
    } 
} 

"Nếu bạn có thể chạy tập tin này và xem đầu ra println, sau đó ESAPI đã được cài đặt và cấu hình thành công! Bây giờ bạn có thể bắt đầu sử dụng chức năng ESAPI để bảo đảm các ứng dụng web của bạn "

tôi "dịch" nó cho ví dụ của tôi:

@ManagedBean(name="testController") 
@RequestScoped 
public class TestController { 

    public String esapiTest(){ 

    System.out.println("ESAPI.accessController found: " 
           + ESAPI.accessController()); 

    return "ESAPI.accessController found: " + ESAPI.accessController(); 
    } 
} 

và tôi có một tập tin test.xhtml:

<?xml version="1.0" encoding="UTF-8"?> 
<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
xmlns:ui="http://java.sun.com/jsf/facelets" 
xmlns:f="http://java.sun.com/jsf/core" 
xmlns:h="http://java.sun.com/jsf/html" 
template="/WEB-INF/templates/default.xhtml"> 
<ui:define name="content"> 

    <h2>esapi test</h2> 

     <h:outputText value="#{testController.esapiTest()}" /> 

</ui:define> 
</ui:composition> 

khi nhập số test.xhtml tôi nhận được lỗi này thực sự lâu dài (đối với một số ít đẹp hơn bạn có thể nhìn thấy nó cũng trong pastebin)

03:32:00,521 Schwerwiegend [javax.enterprise.resource.webcontainer.jsf.application] (http--127.0.0.1-8080-2) Error Rendering View[/pages/test/test.xhtml]: javax.el.ELException: /pages/test/test.xhtml @10,58 value="#{testController.esapiTest()}": org.owasp.esapi.errors.ConfigurationException: java.lang.reflect.InvocationTargetException AccessController class (org.owasp.esapi.reference.DefaultAccessController) CTOR threw exception. 
    at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:114) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] 
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final] 
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final] 
    at javax.faces.component.UIOutput.getValue(UIOutput.java:169) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final] 
    at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:205) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] 
    at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:355) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] 
    at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:164) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] 
    at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final] 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1764) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final] 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final] 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final] 
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:402) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] 
    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] 
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final] 
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] 
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.10.Final.jar:] 
    at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:161) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java) [jbossweb-7.0.10.Final.jar:] 
    at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.1.0.Final.jar:7.1.0.Final] 
    at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:154) [jboss-as-web-7.1.0.Final.jar:7.1.0.Final] 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.10.Final.jar:] 
    at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_03] 
Caused by: org.owasp.esapi.errors.ConfigurationException: java.lang.reflect.InvocationTargetException AccessController class (org.owasp.esapi.reference.DefaultAccessController) CTOR threw exception. 
    at org.owasp.esapi.util.ObjFactory.make(ObjFactory.java:129) [esapi-2.0.1.jar:2.0.1] 
    at org.owasp.esapi.ESAPI.accessController(ESAPI.java:85) [esapi-2.0.1.jar:2.0.1] 
    at de.liedl.bachelor.controller.TestController.esapiTest(TestController.java:45) [classe:] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_03] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_03] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_03] 
    at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_03] 
    at javax.el.BeanELResolver.invokeMethod(BeanELResolver.java:735) [jboss-el-api_2.2_spec-1.0.0.Final.jar:1.0.0.Final] 
    at javax.el.BeanELResolver.invoke(BeanELResolver.java:467) [jboss-el-api_2.2_spec-1.0.0.Final.jar:1.0.0.Final] 
    at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:246) [jboss-el-api_2.2_spec-1.0.0.Final.jar:1.0.0.Final] 
    at org.apache.el.parser.AstValue.getValue(AstValue.java:159) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189) [jbossweb-7.0.10.Final.jar:] 
    at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] 
    at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] 
    ... 35 more 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_03] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_03] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_03] 
    at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_03] 
    at org.owasp.esapi.util.ObjFactory.make(ObjFactory.java:86) [esapi-2.0.1.jar:2.0.1] 
    ... 48 more 
Caused by: org.owasp.esapi.errors.ConfigurationException: java.lang.ClassNotFoundException: org.owasp.esapi.reference.Log4JLogFactory2 from [Module "deployment.bachelor_demo.war:main" from Service Module Loader] LogFactory class (org.owasp.esapi.reference.Log4JLogFactory2) must be in class path. 
    at org.owasp.esapi.util.ObjFactory.make(ObjFactory.java:108) [esapi-2.0.1.jar:2.0.1] 
    at org.owasp.esapi.ESAPI.logFactory(ESAPI.java:137) [esapi-2.0.1.jar:2.0.1] 
    at org.owasp.esapi.ESAPI.getLogger(ESAPI.java:154) [esapi-2.0.1.jar:2.0.1] 
    at org.owasp.esapi.reference.DefaultAccessController.<init>(DefaultAccessController.java:29) [esapi-2.0.1.jar:2.0.1] 
    at org.owasp.esapi.reference.DefaultAccessController.getInstance(DefaultAccessController.java:22) [esapi-2.0.1.jar:2.0.1] 
    ... 53 more 
Caused by: java.lang.ClassNotFoundException: org.owasp.esapi.reference.Log4JLogFactory2 from [Module "deployment.bachelor_demo.war:main" from Service Module Loader] 
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) 
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) 
    at java.lang.Class.forName0(Native Method) [rt.jar:1.7.0_03] 
    at java.lang.Class.forName(Class.java:186) [rt.jar:1.7.0_03] 
    at org.owasp.esapi.util.ObjFactory.make(ObjFactory.java:74) [esapi-2.0.1.jar:2.0.1] 
    ... 57 more 

03:32:00,574 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/bachelor_demo].[FacesServlet]] (http--127.0.0.1-8080-2) Servlet.service() for servlet FacesServlet threw exception: java.lang.ClassNotFoundException: org.owasp.esapi.reference.Log4JLogFactory2 from [Module "deployment.bachelor_demo.war:main" from Service Module Loader] 
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) 
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) 
    at java.lang.Class.forName0(Native Method) [rt.jar:1.7.0_03] 
    at java.lang.Class.forName(Class.java:186) [rt.jar:1.7.0_03] 
    at org.owasp.esapi.util.ObjFactory.make(ObjFactory.java:74) [esapi-2.0.1.jar:2.0.1] 
    at org.owasp.esapi.ESAPI.logFactory(ESAPI.java:137) [esapi-2.0.1.jar:2.0.1] 
    at org.owasp.esapi.ESAPI.getLogger(ESAPI.java:154) [esapi-2.0.1.jar:2.0.1] 
    at org.owasp.esapi.reference.DefaultAccessController.<init>(DefaultAccessController.java:29) [esapi-2.0.1.jar:2.0.1] 
    at org.owasp.esapi.reference.DefaultAccessController.getInstance(DefaultAccessController.java:22) [esapi-2.0.1.jar:2.0.1] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_03] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_03] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_03] 
    at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_03] 
    at org.owasp.esapi.util.ObjFactory.make(ObjFactory.java:86) [esapi-2.0.1.jar:2.0.1] 
    at org.owasp.esapi.ESAPI.accessController(ESAPI.java:85) [esapi-2.0.1.jar:2.0.1] 
    at de.liedl.bachelor.controller.TestController.esapiTest(TestController.java:45) [classe:] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_03] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_03] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_03] 
    at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_03] 
    at javax.el.BeanELResolver.invokeMethod(BeanELResolver.java:735) [jboss-el-api_2.2_spec-1.0.0.Final.jar:1.0.0.Final] 
    at javax.el.BeanELResolver.invoke(BeanELResolver.java:467) [jboss-el-api_2.2_spec-1.0.0.Final.jar:1.0.0.Final] 
    at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:246) [jboss-el-api_2.2_spec-1.0.0.Final.jar:1.0.0.Final] 
    at org.apache.el.parser.AstValue.getValue(AstValue.java:159) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189) [jbossweb-7.0.10.Final.jar:] 
    at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] 
    at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] 
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final] 
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final] 
    at javax.faces.component.UIOutput.getValue(UIOutput.java:169) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final] 
    at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:205) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] 
    at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:355) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] 
    at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:164) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] 
    at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final] 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1764) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final] 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final] 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final] 
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:402) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] 
    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] 
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final] 
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] 
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.10.Final.jar:] 
    at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:161) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java) [jbossweb-7.0.10.Final.jar:] 
    at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.1.0.Final.jar:7.1.0.Final] 
    at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:154) [jboss-as-web-7.1.0.Final.jar:7.1.0.Final] 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.10.Final.jar:] 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.10.Final.jar:] 
    at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_03] 

tôi biết ESAPI Swingset Demo - và điều này đang chạy trong cấu hình của tôi

Tôi có 2 câu hỏi:
là maven tôi và máy chủ cấu hình bắt đầu phải của tôi?
vì lỗi trông giống như ESAPI không thể tìm thấy chức năng ESAPI Logger ....


Là nó thậm chí có thể sử dụng các bài kiểm tra đơn giản mã đoạn trong thiết lập của tôi ở tất cả?

(p.s.cũng đã cố gắng để nó không maven và chỉ với bao gồm jar tải - nhưng nó không làm việc)

tôi nhớ một cái gì đó như:
(đây là từ ví dụ SwingSet demo, KHÔNG từ dự án của riêng tôi)

Seeking ESAPI.properties 
    Not found in 'org.owasp.esapi.resources' directory or file not readable: /home/joergi/dev/projects/esapi_demo_1punkt0/ESAPI.properties 
    Not found in SystemResource Directory/resourceDirectory: .esapi/ESAPI.properties 
    Not found in SystemResource Directory/.esapi: .esapi/ESAPI.properties 
    Not found in SystemResource Directory: ESAPI.properties 
    Found in 'user.home' directory: /home/joergi/.esapi/ESAPI.properties 
Loaded 'ESAPI.properties' properties file 
Seeking validation.properties 
    Not found in 'org.owasp.esapi.resources' directory or file not readable: /home/joergi/dev/projects/esapi_demo_1punkt0/validation.properties 
    Not found in SystemResource Directory/resourceDirectory: .esapi/validation.properties 
    Not found in SystemResource Directory/.esapi: .esapi/validation.properties 
    Not found in SystemResource Directory: validation.properties 
    Found in 'user.home' directory: /home/joergi/.esapi/validation.properties 
Loaded 'validation.properties' properties file 
Seeking ESAPI_logging_file 
    Not found in 'org.owasp.esapi.resources' directory or file not readable: /home/joergi/dev/projects/esapi_demo_1punkt0/ESAPI_logging_file 
    Not found in SystemResource Directory/resourceDirectory: .esapi/ESAPI_logging_file 
    Not found in SystemResource Directory/.esapi: .esapi/ESAPI_logging_file 
    Not found in SystemResource Directory: ESAPI_logging_file 
    Found in 'user.home' directory: /home/joergi/.esapi/ESAPI_logging_file 

Hy vọng ai đó có thể giúp bạn!

Trả lời

5

Bạn có nhiều phiên bản của thư viện Log4J trong đường dẫn lớp của mình, có thể do phụ thuộc hạ lưu từ thư viện khác đang được ứng dụng của bạn sử dụng. Kiểm tra cây phụ thuộc của bạn để tìm ra nơi thư viện trùng lặp đang được tải và loại trừ nó trong pom.xml của bạn

mvn dependency:tree 

Điều này sẽ cho bạn thấy cây phụ thuộc cho ứng dụng của bạn.

<exclusion> 
    <groupId>log4j</groupId> 
    <artifactId>log4j</artifactId> 
</exclusion> 

Thêm loại trừ này vào phụ thuộc thủ phạm trong tệp pom.xml của bạn và tất cả phải phù hợp với thế giới.

+0

Cảm ơn rất nhiều !!! điều này đã giúp tôi rất nhiều ... bây giờ mọi thứ đang hoạt động ... cảm ơn bạn rất nhiều Chris! – Joerg

1

Tất cả những gì tôi có thể nói là esapi được cài đặt đúng. Esapi rất thích sản xuất nhiều nhưng các phần thú vị là:

Found in 'user.home' directory: /home/joergi/.esapi/ESAPI.properties 
Loaded 'ESAPI.properties' properties file 
Found in 'user.home' directory: /home/joergi/.esapi/validation.properties 
Loaded 'validation.properties' properties file 
Found in 'user.home' directory: /home/joergi/.esapi/ESAPI_logging_file 

Tôi nghĩ bạn đang thiếu phụ thuộc vào dự án của mình. Kiểm tra dòng sau từ stack-trace:

Caused by: java.lang.ClassNotFoundException: org.owasp.esapi.reference.Log4JLogFactory2 from [Module "deployment.bachelor_demo.war:main" from Service Module Loader] 

Nó có thể là trong class loader sai hoặc bạn có thể cấu hình các logger sai cho dự án của bạn trong file esapi.properties.

[sửa]

Trong ESPAI.properties nộp có những dòng sau:

# Log4JFactory Requires log4j.xml or log4j.properties in classpath - http://www.laliluna.de/log4j-tutorial.html 
ESAPI.Logger=org.owasp.esapi.reference.Log4JLogFactory 
#ESAPI.Logger=org.owasp.esapi.reference.JavaLogFactory 

Tôi nghĩ rằng đây là những im lặng quan trọng trong trường hợp của bạn.

Bên cạnh đó, lớp Log4JLogFactory tồn tại trong bình esapi nên không thực sự là vấn đề.

+0

hi @Tom, tôi đã viết: Tôi bỏ lỡ điều gì đó LIKE thực hiện chính xác – Joerg

+0

nhưng nếu tôi bao gồm ESAPI như tôi đã viết ở trên với maven, nó phải được bao gồm, hoặc? – Joerg

+0

bạn đã quản lý để có được nó chạy với thiết lập của tôi? – Joerg

5

Tôi lãng phí một ngày cố gắng khắc phục vấn đề này ClassNotFoundException Log4JLogFactory2. Cố gắng để xem nếu có bất kỳ phụ thuộc trùng lặp log4j như xếp hạng đầu chấp nhận câu trả lời được đề xuất nhưng vô ích.

Cuối cùng tôi nhận ra ESAPI tìm kiếm cấu hình trong thư mục $HOME/.esapi/ trước và chỉ khi không có thư mục đó rơi trở lại thư mục esapi của lớp học. Các vấn đề trong trường hợp của tôi được tôi vừa triển khai ví dụ Swingset application và như mô tả trong README của nó tôi đã sao chép trên cấu hình của nó vào thư mục nhà của tôi, trong cấu hình rằng đây là dòng vi phạm

ESAPI.Logger=org.owasp.esapi.reference.Log4JLogFactory2 

Sau đó, tôi cho rằng ứng dụng của tôi sẽ lấy cấu hình từ thư mục esapi của classpath. Log4JLogFactory2 hiện diện trong ma cơ sở mã demo mà tôi đã theo đuổi toàn bộ thời gian.

+1

+1, tôi đã gặp sự cố tương tự. Đây là [link] (http://owasp-esapi-swingset-interactive.googlecode.com/svn-history/r6/trunk/SwingSet/WebContent/WEB-INF/jsp/LoggingTutorial.jsp) đến trang SwingSet thảo luận về các thiết lập cấu hình liên quan đến câu trả lời này. Cuộn xuống "Cấu hình". – medokr

+0

Có thể có ích khi sử dụng [phiên bản sản xuất của tệp ESAPI.properties] (http://owasp-esapi-java.googlecode.com/svn/trunk/configuration/esapi/ESAPI.properties) nếu bạn đang phát triển web của mình ứng dụng trong khi sử dụng SwingSet làm ví dụ. – medokr

Các vấn đề liên quan