2012-03-14 22 views
10

由於某些安全原因,我欺騙了在URL中禁用了jsessionid的會話跟蹤。在我將web.xml更改爲下面的版本之前,我第一次訪問網址jsessionid,在點擊第一個鏈接後,它再也沒有出現過。在URL中運行時沒有jsessionid的JBoss 7.0.1不起作用

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,如果我點擊它永遠不會消失,頁面上的其他鏈接。它每改變一次點擊。

如果我嘗試調用JSF操作,我得到javax.faces.application.ViewExpiredException,但託管bean是@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> 

餅乾也是在安全模式下默認
這正常嗎?我是否需要這個cookie配置的東西不再? 謝謝!

+1

我會將它作爲bug報告給JBoss傢伙。 – BalusC 2012-03-20 17:12:23

+0

@BalusC好吧,東西有線:一切工作,如果我刪除:' true'即使我檢查cookie,它被保存爲安全代碼....如果我插入安全的東西,我得到一個'Servlet.service()的servlet Faces Servlet拋出異常:javax.faces.application.ViewExpiredException - - 這是安全的東西不需要? – Joerg 2012-03-23 00:24:43

+0

我有一個由cookie-config引起的類似問題。只有當它被設置時,一箇舊的基於渦輪機的應用程序纔會進入「無限遞歸」。奇怪的是,在使用HTTPS訪問服務器時,沒有問題,因爲 true ... – nettle 2012-05-10 14:33:45

回答

1

你使用的是https ssl還是port 80 http?如果使用http然後刪除安全cookie作爲安全的手段通過ssl

看起來像web服務器意識到它沒有得到cookie,所以每次都會創建一個新的會話。如果你禁用安全cookie(意味着使其爲假),那麼它應該工作。

它不確定瀏覽器是否接受cookie。 https://www.youtube.com/watch?v=CVEo7wug2ks告訴你如何查看cookie(不要刪除,除非測試)

+0

與我在我的問題中寫的相同,但我現在關閉它.... – Joerg 2013-05-03 14:34:39

-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> 

這應該有保存在客戶端而不是服務器端的JSF狀態。

+0

這不起作用,.... 它仍然具有jSession網址... – Joerg 2012-03-19 11:58:01

0

嘗試使用<僅HTTP >真/假</HTTP-只>在你的cookie-config來看看它是與餅乾和問題僅HTTP的附加。

其實http只需要一個支持它的瀏覽器,並且旨在保護來自檢索客戶端cookie的用戶的cookie。所以它不應該直接相關。不過,我不會打賭我的房子,這是在JBoss內部正確處理。

如果由於某種原因cookie沒有與第一個請求一起生成,服務器的回退通常在URL中編碼JSessionID。

相關問題