2014-02-17 52 views
2

我已經在Vaadin中設置了cookie,並試圖從另一個運行在不同服務器上的應用程序獲取它,但是我無法獲得該cookie在Vaadin中的設置?如何禁用Vaadin中的HttpOnly cookie?

我們需要禁用httpOnly cookie。

任何人都可以幫我「如何解決這個問題?

回答

1

設置在標頭Set-Cookie中的cookie。通過刪除HttpOnly

URLConnection urlConnection = new URL("url-of-your-web-app-here").openConnection(); 
List<String> cookiesList = urlConnection.getHeaderFields().get("Set-Cookie"); 

你可以手動刪除標誌,:爲了得到它,你可以使用下面的代碼

response.setHeader("Set-Cookie", "name=value; HttpOnly");

如果你在一個的Servlet 3.0或較新的環境中工作,配置您的web.xml如下:

<session-config> 
    <cookie-config> 
     <http-only>false</http-only> 
    </cookie-config> 
</session-config> 

注意。 HttpOnly標誌是用於防止利用訪問會話cookie的附加標誌(跨站點腳本攻擊)。

另請參見:

+0

感謝阿列克謝,有什麼替代方案來解決使用Java規格,因爲這個問題。我已經改變了web.xml配置,但沒有工作。 –

+0

檢查響應標題,可能是您在那裏設置cookie。我也可以推薦你檢查'conf/context.xml'中禁用'httpOnly','useHttpOnly ='true''不應該在' ...' –

+0

中定義'useHttpOnly =「false」' 'context.xml'文件。'useHttpOnly'標誌默認設置爲'「true」'。 ([在tomcat 7中](http://tomcat.apache.org/tomcat-7.0-doc/config/context.html))。 –