在不同的应用程序选项卡中访问同名cookie

时间:2015-08-26 11:47:44

标签: java jira confluence jira-plugin

我在 localhost:8080 上运行了一个应用程序,它创建了一个名为 jsessionid 的cookie。现在,我需要为 localhost:8090 上运行的不同应用程序打开另一个选项卡,这些选项卡还会创建一个名为 jsessionid 的cookie。

我需要在第二个应用程序选项卡中访问第一个应用程序选项卡的cookie ..

我怎样才能访问这两个cookie ...许多尝试但没有运气......

2 个答案:

答案 0 :(得分:0)

您可以编写一个在呈现页面之前运行的servlet过滤器(在atlassian-plugin.xml中)

<servlet-filter name="My Filter" i18n-name-key="home-page-redirect-filter.name" key="home-page-redirect-filter" class="mypackage.CookieFilter" location="before-dispatch" weight="100"> <description key="home-page-redirect-filter.description">Some description</description> <url-pattern>WHEN_TO_RUN</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </servlet-filter>

然后你可以拦截cookie

public void doFilter(ServletRequest req, ServletResponse resp,
        FilterChain chain) throws IOException, ServletException {
    HttpServletRequest request = (HttpServletRequest) req;
    Cookie[] myCookies=request.getCookies();
    //do something with cookies
}

答案 1 :(得分:0)

看起来我误解了你的问题。 JSESSIONID是一个httponly cookie,你不能在javascript中使用document.cookie来获取它。 也许请查看Jsoup Cookies for HTTPS scrapingSending POST request with username and password and save session cookie了解一些想法。