[jira] [Commented] (IGNITE-8772) WebSessionFilter does not work with jetty 9.4 anymore
[ https://issues.apache.org/jira/browse/IGNITE-8772?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16873527#comment-16873527 ] Ignite TC Bot commented on IGNITE-8772: --- {panel:title=-- Run :: All: Possible Blockers|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1} {color:#d04437}Platform .NET (Core Linux){color} [[tests 3 TIMEOUT |https://ci.ignite.apache.org/viewLog.html?buildId=4205913]] {color:#d04437}Platform .NET{color} [[tests 1 TIMEOUT |https://ci.ignite.apache.org/viewLog.html?buildId=4205912]] {panel} [TeamCity *-- Run :: All* Results|https://ci.ignite.apache.org/viewLog.html?buildId=4205941buildTypeId=IgniteTests24Java8_RunAll] > WebSessionFilter does not work with jetty 9.4 anymore > - > > Key: IGNITE-8772 > URL: https://issues.apache.org/jira/browse/IGNITE-8772 > Project: Ignite > Issue Type: Bug > Components: websession >Affects Versions: 2.5 > Environment: * jetty-distribution-9.4.10.v20180503 > * ignite 2.5.0 >Reporter: Michael Bierwirth >Assignee: Saikat Maitra >Priority: Blocker > Time Spent: 10m > Remaining Estimate: 0h > > Jetty adds a workername suffix to the session cookie, using . as delimeter: > {{SESSIONID.node0}} > > In doFilterV2 the requested sessionid is read from cookie, which contains the > suffix: > > {code:java} > private String doFilterV2(HttpServletRequest httpReq, ServletResponse res, > FilterChain chain) > throws IOException, ServletException, CacheException { > WebSessionV2 cached = null;String sesId = httpReq.getRequestedSessionId(); > {code} > > This id will never be found in the cache, because the cache key for new > sessions is just the part before the dot. > > This is/may be fixed, by adding another session id transformer in the init > method. For example: > > {code:java} > if (srvInfo != null && srvInfo.contains("jetty")) { > sesIdTransformer = s -> { > int idx = s.indexOf('.'); > if (idx < 0 || idx == s.length() - 1) { > return s; > } >2 return s.substring(0, idx); > }; > } > {code} > > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-8772) WebSessionFilter does not work with jetty 9.4 anymore
[ https://issues.apache.org/jira/browse/IGNITE-8772?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16507794#comment-16507794 ] Michael Bierwirth commented on IGNITE-8772: --- Another fix might be: In the filter method, call getSession(false) and if != null call .getId() on that session instead of httpReq.getRequestedSessionId() -> no need for hardcoded jetty reference > WebSessionFilter does not work with jetty 9.4 anymore > - > > Key: IGNITE-8772 > URL: https://issues.apache.org/jira/browse/IGNITE-8772 > Project: Ignite > Issue Type: Bug > Components: websession >Affects Versions: 2.5 > Environment: * jetty-distribution-9.4.10.v20180503 > * ignite 2.5.0 >Reporter: Michael Bierwirth >Priority: Blocker > > Jetty adds a workername suffix to the session cookie, using . as delimeter: > {{SESSIONID.node0}} > > In doFilterV2 the requested sessionid is read from cookie, which contains the > suffix: > > {code:java} > private String doFilterV2(HttpServletRequest httpReq, ServletResponse res, > FilterChain chain) > throws IOException, ServletException, CacheException { > WebSessionV2 cached = null;String sesId = httpReq.getRequestedSessionId(); > {code} > > This id will never be found in the cache, because the cache key for new > sessions is just the part before the dot. > > This is/may be fixed, by adding another session id transformer in the init > method. For example: > > {code:java} > if (srvInfo != null && srvInfo.contains("jetty")) { > sesIdTransformer = s -> { > int idx = s.indexOf('.'); > if (idx < 0 || idx == s.length() - 1) { > return s; > } >2 return s.substring(0, idx); > }; > } > {code} > > -- This message was sent by Atlassian JIRA (v7.6.3#76005)