2012-03-14 12 views
10

कुछ सुरक्षा कारणों से मैंने URL में jsessionid द्वारा सत्र ट्रैकिंग अक्षम करने को धोखा दिया। मेरे वेब.एक्सएमएल को नीचे दिए गए एक से पहले, मैंने पहली बार यूआरएल में jsessionid पृष्ठ का दौरा किया था, पहले लिंक पर क्लिक करने के बाद, यह फिर कभी दिखाई नहीं दिया।जेबॉस 7.0.1 यूआरएल में jsessionid के बिना चल रहा है

मेरे web.xml दिखता

<session-config> 
     <session-timeout>10</session-timeout> 
     <cookie-config> 
     <secure>true</secure> 
     </cookie-config> 
     <tracking-mode>COOKIE</tracking-mode> 
    </session-config> 

की तरह अब मैं jsessionid URL में, अगर मैं यह कभी नहीं पेज गायब हो जाता है पर एक और लिंक पर क्लिक करें। यह हर क्लिक पर बदलता है।

यदि मैं एक जेएसएफ कार्रवाई का आह्वान करने का प्रयास करता हूं, तो मुझे javax.faces.application.ViewExpiredException मिलता है लेकिन प्रबंधित बीन @SessionScoped है।

यह मेरी निर्भरता का पेड़ है:

[INFO] Scanning for projects... 
[INFO] Searching repository for plugin with prefix: 'dependency'. 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building Java EE 6 webapp project 
[INFO] task-segment: [dependency:tree] 
[INFO] ------------------------------------------------------------------------ 
[INFO] [dependency:tree {execution: default-cli}] 
[INFO] de.project:demoapp:war:1.0-SNAPSHOT 
[INFO] +- javax.enterprise:cdi-api:jar:1.0-SP4:provided 
[INFO] | +- org.jboss.spec.javax.interceptor:jboss-interceptors-api_1.1_spec:jar:1.0.0.Final:provided (version managed from 1.0.0.Beta1) 
[INFO] | \- javax.inject:javax.inject:jar:1:provided 
[INFO] +- org.jboss.spec.javax.annotation:jboss-annotations-api_1.1_spec:jar:1.0.0.Final:provided 
[INFO] +- org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_1.1_spec:jar:1.0.0.Final:provided 
[INFO] +- org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar:1.0.1.Final:provided 
[INFO] +- org.jboss.spec.javax.ejb:jboss-ejb-api_3.1_spec:jar:1.0.1.Final:provided 
[INFO] +- org.hibernate:hibernate-validator:jar:4.2.0.Final:provided 
[INFO] | \- javax.validation:validation-api:jar:1.0.0.GA:provided 
[INFO] +- org.hibernate:hibernate-jpamodelgen:jar:1.1.1.Final:provided 
[INFO] +- junit:junit:jar:4.10:test 
[INFO] | \- org.hamcrest:hamcrest-core:jar:1.1:test 
[INFO] +- org.jboss.arquillian.junit:arquillian-junit-container:jar:1.0.0.CR4:test 
[INFO] | +- org.jboss.arquillian.junit:arquillian-junit-core:jar:1.0.0.CR4:test 
[INFO] | +- org.jboss.arquillian.test:arquillian-test-api:jar:1.0.0.CR4:test 
[INFO] | | \- org.jboss.arquillian.core:arquillian-core-api:jar:1.0.0.CR4:test 
[INFO] | +- org.jboss.arquillian.test:arquillian-test-spi:jar:1.0.0.CR4:test 
[INFO] | | +- org.jboss.arquillian.core:arquillian-core-spi:jar:1.0.0.CR4:test 
[INFO] | | \- org.jboss.shrinkwrap:shrinkwrap-api:jar:1.0.0-beta-5:test 
[INFO] | +- org.jboss.arquillian.container:arquillian-container-test-api:jar:1.0.0.CR4:test 
[INFO] | +- org.jboss.arquillian.container:arquillian-container-test-spi:jar:1.0.0.CR4:test 
[INFO] | +- org.jboss.arquillian.core:arquillian-core-impl-base:jar:1.0.0.CR4:test 
[INFO] | +- org.jboss.arquillian.test:arquillian-test-impl-base:jar:1.0.0.CR4:test 
[INFO] | +- org.jboss.arquillian.container:arquillian-container-impl-base:jar:1.0.0.CR4:test 
[INFO] | | +- org.jboss.arquillian.config:arquillian-config-api:jar:1.0.0.CR4:test 
[INFO] | | \- org.jboss.arquillian.config:arquillian-config-impl-base:jar:1.0.0.CR4:test 
[INFO] | |  \- org.jboss.shrinkwrap.descriptors:shrinkwrap-descriptors-spi:jar:1.1.0-alpha-2:test 
[INFO] | +- org.jboss.arquillian.container:arquillian-container-test-impl-base:jar:1.0.0.CR4:test 
[INFO] | \- org.jboss.shrinkwrap:shrinkwrap-impl-base:jar:1.0.0-beta-5:test 
[INFO] |  \- org.jboss.shrinkwrap:shrinkwrap-spi:jar:1.0.0-beta-5:test 
[INFO] +- org.jboss.arquillian.protocol:arquillian-protocol-servlet:jar:1.0.0.CR4:test 
[INFO] | \- org.jboss.arquillian.container:arquillian-container-spi:jar:1.0.0.CR4:test 
[INFO] |  \- org.jboss.shrinkwrap.descriptors:shrinkwrap-descriptors-api:jar:1.1.0-alpha-2:test 
[INFO] +- javax.mail:mail:jar:1.4.4:compile 
[INFO] | \- javax.activation:activation:jar:1.1:compile 
[INFO] +- javax.servlet:javax.servlet-api:jar:3.0.1:provided 
[INFO] +- org.owasp.esapi:esapi:jar:2.0.1:compile 
[INFO] | +- commons-configuration:commons-configuration:jar:1.5:compile 
[INFO] | | +- commons-lang:commons-lang:jar:2.3:compile 
[INFO] | | +- commons-logging:commons-logging:jar:1.1:compile 
[INFO] | | | +- logkit:logkit:jar:1.0.1:compile 
[INFO] | | | \- avalon-framework:avalon-framework:jar:4.1.3:compile 
[INFO] | | \- commons-digester:commons-digester:jar:1.8:compile 
[INFO] | |  \- commons-beanutils:commons-beanutils:jar:1.7.0:compile 
[INFO] | +- commons-beanutils:commons-beanutils-core:jar:1.7.0:compile 
[INFO] | +- commons-fileupload:commons-fileupload:jar:1.2:compile 
[INFO] | +- commons-collections:commons-collections:jar:3.2:compile 
[INFO] | +- xom:xom:jar:1.1:compile 
[INFO] | | +- xerces:xmlParserAPIs:jar:2.6.2:compile 
[INFO] | | +- xerces:xercesImpl:jar:2.6.2:compile 
[INFO] | | +- xalan:xalan:jar:2.7.0:compile 
[INFO] | | | \- xml-apis:xml-apis:jar:1.0.b2:compile 
[INFO] | | \- jaxen:jaxen:jar:1.1-beta-8:compile 
[INFO] | |  +- dom4j:dom4j:jar:1.6.1:compile 
[INFO] | |  \- jdom:jdom:jar:1.0:compile 
[INFO] | +- org.beanshell:bsh-core:jar:2.0b4:compile 
[INFO] | \- org.owasp.antisamy:antisamy:jar:1.4.3:compile 
[INFO] |  +- org.apache.xmlgraphics:batik-css:jar:1.7:compile 
[INFO] |  | +- org.apache.xmlgraphics:batik-ext:jar:1.7:compile 
[INFO] |  | +- org.apache.xmlgraphics:batik-util:jar:1.7:compile 
[INFO] |  | \- xml-apis:xml-apis-ext:jar:1.3.04:compile 
[INFO] |  +- net.sourceforge.nekohtml:nekohtml:jar:1.9.12:compile 
[INFO] |  \- commons-httpclient:commons-httpclient:jar:3.1:compile 
[INFO] |  \- commons-codec:commons-codec:jar:1.2:compile 
[INFO] +- com.sun.faces:jsf-api:jar:2.1.7:compile 
[INFO] \- joda-time:joda-time:jar:1.6:compile 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESSFUL 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 5 seconds 
[INFO] Finished at: Mon Mar 19 12:55:23 CET 2012 
[INFO] Final Memory: 31M/342M 
[INFO] ---------------------------------------- 

संपादित करें: जैसे कि यह बिना

<cookie-config> 
    <secure>true</secure> 
</cookie-config> 

कुकीज़ काम कर रहा है यह लग रहा है डिफ़ॉल्ट रूप से सुरक्षित मोड में भी है
यह सामान्य है? क्या मुझे इस कुकी कॉन्फ़िगरेशन सामग्री की आवश्यकता नहीं है? धन्यवाद!

+1

मैं इसे जेबॉस लोगों को बग के रूप में रिपोर्ट करता हूं। – BalusC

+0

@ बाल्लूसी ठीक है, कुछ वायर्ड: अगर मैं हटा देता हूं तो सबकुछ काम कर रहा है: 'कुकी-कॉन्फिग> सच' यहां तक ​​कि अगर मैं कुकी की जांच कर रहा हूं, तो इसे सुरक्षित कोड के रूप में सहेजा गया है .... अगर मैं सुरक्षित सामान डालता हूं, तो मुझे सर्वलेट फ्रेस सर्वलेट के लिए 'Servlet.service() प्राप्त होता है अपवाद फेंक दिया जाता है: javax.faces.application.ViewExpiredException' - क्या यह सुरक्षित सामान की आवश्यकता नहीं है? – Joerg

+0

मेरे पास कुकी-कॉन्फ़िगरेशन के कारण एक समान समस्या है। केवल तभी सेट किया जाता है जब एक पुराना टरबाइन-आधारित अनुप्रयोग "अनंत रिकर्सन" में जाता है। अजीब बात यह है कि <कुकी-कॉन्फ़िगरेशन> सच HTTPS में सर्वर तक पहुंचने पर कोई समस्या नहीं है ... – nettle

उत्तर

1

क्या आप https ssl या पोर्ट 80 http का उपयोग कर रहे हैं? यदि http का उपयोग करते हैं तो सुरक्षित कुकी को एसएसएल

पर सुरक्षित साधन के रूप में हटाएं ऐसा लगता है कि वेब सर्वर को यह कुकी नहीं मिल रहा है और इसलिए हर बार एक नया सत्र बनाना। यदि आप सुरक्षित कुकी अक्षम करते हैं (इसका अर्थ यह गलत है) तो इसे काम करना चाहिए।

यह सुनिश्चित नहीं करता है कि ब्राउजर कुकीज़ स्वीकार कर रहा है। https://www.youtube.com/watch?v=CVEo7wug2ks आपको कुकीज़ को देखने के लिए दिखाता है (परीक्षण तक हटाएं नहीं)

+0

जैसा कि मैंने अपने प्रश्न में लिखा था, लेकिन अब मैं इसे बंद कर देता हूं .... – Joerg

-1

क्या आपने web.xml में javax.faces.STATE_SAVING_METHOD से client पर सेट करने का प्रयास किया है?

<context-param> 
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name> 
    <param-value>client</param-value> 
</context-param> 

यह जेएसएफ राज्य सर्वर के बजाय क्लाइंट पक्ष पर सहेजा जाना चाहिए।

+0

यह काम नहीं कर रहा है, .... इसमें अभी भी jSession है यूआरएल ... – Joerg

0

उपयोग करने का प्रयास < http-केवल > सही/गलत </http-केवल > अपने कुकी-config पता लगाने के लिए अगर यह कुकी और साथ कोई समस्या है में http-केवल ऐड-ऑन।

वास्तव में http-केवल एक ब्राउज़र को इसका समर्थन करने की आवश्यकता होती है और कुकी को क्लाइंट-साइड पर कुकी को पुनर्प्राप्त करने से कुकी की सुरक्षा करना है। तो यह सीधे प्रासंगिक नहीं होना चाहिए। हालांकि मैं अपने घर पर शर्त नहीं लगाता कि यह सही ढंग से जेबॉस के अंदर संभाला जाता है।

अगर किसी कारण से कुकी पहले अनुरोध के साथ उत्पन्न नहीं होती है तो सर्वर के फ़ॉलबैक आमतौर पर यूआरएल में JSessionID एन्कोडिंग होता है।

संबंधित मुद्दे