Hi Val, Do you think I can test a fix in 1.9 RC releases ? How are you planning to release a fix ?
Did you also look into problem where storing xsrf token in Ignite returns an exception and does not behave as expected ? In SecurityConfig.java use HttpSessionCsrfTokenRepository with following code - .csrfTokenRepository(csrfTokenRepository()) private CsrfTokenRepository csrfTokenRepository() { HttpSessionCsrfTokenRepository repository = new HttpSessionCsrfTokenRepository(); repository.setHeaderName("X-XSRF-TOKEN"); return repository; } Thank you for all your help, On Mon, Mar 6, 2017 at 2:34 PM, Valentin Kulichenko < valentin.kuliche...@gmail.com> wrote: > Hi Rishi, > > I got to the bottom of it. Basically, the session is replaced in Spring > filter, but caching happens based on the old version which doesn't have > security attributes. The fix is going to be very easy, I will do it > tomorrow. > > -Val > > On Mon, Mar 6, 2017 at 7:34 PM, Rishi Yagnik <rishiyag...@gmail.com> > wrote: > > > Val, > > > > Did you get chance to play around with the code ? > > > > Thanks, > > > > On Sun, Mar 5, 2017 at 7:25 PM, Rishi Yagnik <rishiyag...@gmail.com> > > wrote: > > > > > Val, > > > > > > Adding a filter before csrf filter will invoke the custom ignite > filter. > > > > > > Declare a custom filter class extends it with websession filter > > > > > > public class CustomWebSessionFilter extends WebSessionFilter { > > > > > > private static boolean igniteInitialize = false > > > > > > @Override public void doFilter(ServletRequest req, ServletResponse res, > > > FilterChain chain) > > > throws IOException, ServletException { > > > if(!igniteInitialize) { > > > super.init(new FilterConfig() { > > > @Override > > > public String getFilterName() { > > > return "CustomWebSessionFilter"; > > > } > > > > > > @Override > > > public ServletContext getServletContext() { > > > return req.getServletContext(); > > > } > > > > > > @Override > > > public String getInitParameter(String name) { > > > return null; > > > } > > > > > > @Override > > > public Enumeration<String> getInitParameterNames() { > > > return null; > > > } > > > }); > > > igniteInitialize = true; > > > } > > > super.doFilter(req,res,chain); > > > } > > > } > > > > > > And in SecurityConfig.java add following line to invoke filter before > > > Ignite Web Session filter - > > > > > > .addFilterBefore(new ArWebSessionFilter(), CsrfFilter.class) > > > > > > Hope it helps.. > > > > > > Thanks, > > > > > > On Sun, Mar 5, 2017 at 1:28 PM, Valentin Kulichenko < > > > valentin.kuliche...@gmail.com> wrote: > > > > > >> Rishi, > > >> > > >> Can you please share how you forced Ignite filter to be invoked before > > >> security filter? > > >> > > >> -Val > > >> > > >> On Sun, Mar 5, 2017 at 11:20 AM, Rishi Yagnik <rishiyag...@gmail.com> > > >> wrote: > > >> > > >> > Hi Val, > > >> > > > >> > Thanks for the response, we have executed ignite filter before > spring > > >> > security filter but somehow the ignite filter does not do the job of > > >> > setting spring principle context. > > >> > > > >> > As a result even though we have spring principle in session, spring > > >> filter > > >> > does not recognize it and sends us back to log in page. > > >> > > > >> > I think there s some more work needed here to change the filter and > > make > > >> > it work with spring boot application. > > >> > > > >> > Take Care, > > >> > Rishi > > >> > > > >> > > On Mar 5, 2017, at 10:16 AM, Valentin Kulichenko < > > >> > valentin.kuliche...@gmail.com> wrote: > > >> > > > > >> > > Hi Rishi, > > >> > > > > >> > > I did some debugging. Apparently, the reason for this behavior is > > that > > >> > > Spring Security filter resides before Ignite's filter in the chain > > >> list. > > >> > I > > >> > > think that eventually this should be fixed in the product, but in > > the > > >> > > meantime there must be a way to work around the problem by > > controlling > > >> > the > > >> > > order. Do you know how this can be done in Spring Boot? > > >> > > > > >> > > -Val > > >> > > > > >> > >> On Tue, Feb 28, 2017 at 9:31 AM, Rishi Yagnik < > > rishiyag...@gmail.com > > >> > > > >> > wrote: > > >> > >> > > >> > >> Hi Val, > > >> > >> > > >> > >> Sorry for pestering, thanks for all your help. > > >> > >> > > >> > >> Rishi > > >> > >> > > >> > >> On Mon, Feb 27, 2017 at 7:22 PM, Valentin Kulichenko < > > >> > >> valentin.kuliche...@gmail.com> wrote: > > >> > >> > > >> > >>> Hi Rishi, > > >> > >>> > > >> > >>> Sorry, not yet. But this on my short list of TODOs, will try to > > >> give an > > >> > >>> update as soon as possible. > > >> > >>> > > >> > >>> -Val > > >> > >>> > > >> > >>> On Mon, Feb 27, 2017 at 7:47 AM, Rishi Yagnik < > > >> rishiyag...@gmail.com> > > >> > >>> wrote: > > >> > >>> > > >> > >>>> Hi Val, > > >> > >>>> > > >> > >>>> any update on session replication issue ? > > >> > >>>> > > >> > >>>> Thanks, > > >> > >>>> Rishi > > >> > >>>> > > >> > >>>> On Thu, Feb 23, 2017 at 8:07 AM, Rishi Yagnik < > > >> rishiyag...@gmail.com> > > >> > >>>> wrote: > > >> > >>>> > > >> > >>>>> Thanks Val for looking into it. > > >> > >>>>> > > >> > >>>>> On Wed, Feb 22, 2017 at 9:32 PM, Valentin Kulichenko < > > >> > >>>>> valentin.kuliche...@gmail.com> wrote: > > >> > >>>>> > > >> > >>>>>> Hi Rishi, > > >> > >>>>>> > > >> > >>>>>> Got it, I think I'm reproducing the issue. I'll take a look > and > > >> let > > >> > >>> you > > >> > >>>>>> know my findings soon. > > >> > >>>>>> > > >> > >>>>>> -Val > > >> > >>>>>> > > >> > >>>>>> On Tue, Feb 21, 2017 at 7:27 PM, Rishi Yagnik < > > >> > >> rishiyag...@gmail.com> > > >> > >>>>>> wrote: > > >> > >>>>>> > > >> > >>>>>>> Hi Val, > > >> > >>>>>>> > > >> > >>>>>>> The issue will occur in cluster environment, please setup > the > > >> > >> spring > > >> > >>>>>> boot > > >> > >>>>>>> on 2 different host with LB (F5 OR Reverse proxy) in front > and > > >> try > > >> > >>> to > > >> > >>>>>>> login. > > >> > >>>>>>> > > >> > >>>>>>> In cluster environment, Spring security does not recognize > the > > >> > >>> session > > >> > >>>>>> on > > >> > >>>>>>> the host you are not logged in, as a result, spring security > > >> will > > >> > >>>>>> redirect > > >> > >>>>>>> to login url however the correct behavior should be that > user > > >> > >> would > > >> > >>>> stay > > >> > >>>>>>> logged in with session replication. > > >> > >>>>>>> > > >> > >>>>>>> Do let me know if you need more information. > > >> > >>>>>>> > > >> > >>>>>>> Thanks, > > >> > >>>>>>> Rishi > > >> > >>>>>>> > > >> > >>>>>>> > > >> > >>>>>>> > > >> > >>>>>>> On Tue, Feb 21, 2017 at 7:08 PM, Valentin Kulichenko < > > >> > >>>>>>> valentin.kuliche...@gmail.com> wrote: > > >> > >>>>>>> > > >> > >>>>>>>> Hi Rishi, > > >> > >>>>>>>> > > >> > >>>>>>>> I was able to build and run the application. Can you give > > some > > >> > >>>>>>> description > > >> > >>>>>>>> on what should I test to understand the issue? What exactly > > >> > >> didn't > > >> > >>>>>> work > > >> > >>>>>>> for > > >> > >>>>>>>> you? > > >> > >>>>>>>> > > >> > >>>>>>>> -Val > > >> > >>>>>>>> > > >> > >>>>>>>> On Wed, Feb 15, 2017 at 10:52 AM, Valentin Kulichenko < > > >> > >>>>>>>> valentin.kuliche...@gmail.com> wrote: > > >> > >>>>>>>> > > >> > >>>>>>>>> Hi Rishi, > > >> > >>>>>>>>> > > >> > >>>>>>>>> Thanks, I'll take a look. > > >> > >>>>>>>>> > > >> > >>>>>>>>> -Val > > >> > >>>>>>>>> > > >> > >>>>>>>>> On Wed, Feb 15, 2017 at 9:07 AM, Rishi Yagnik < > > >> > >>>>>> rishiyag...@gmail.com> > > >> > >>>>>>>>> wrote: > > >> > >>>>>>>>> > > >> > >>>>>>>>>> Hi Val, > > >> > >>>>>>>>>> > > >> > >>>>>>>>>> As promised, please find attached code for spring boot > > >> > >>>> integration > > >> > >>>>>>> with > > >> > >>>>>>>>>> spring security along with Ignite. > > >> > >>>>>>>>>> > > >> > >>>>>>>>>> Some more information on project - > > >> > >>>>>>>>>> > > >> > >>>>>>>>>> - It is a maven project ( Ignite 1.7.0, SB 1.4.3 ) > > >> > >>>>>>>>>> - spring security integrated with boot project along > with > > >> > >>>> ignite > > >> > >>>>>>>>>> - HttpSessionCookieCsrfTokenRepository does not work, > > >> > >> gives > > >> > >>>>>>>>>> intermediate errors on single instance so used > > >> > >>>>>>>> CookieCsrfTokenRepository > > >> > >>>>>>>>>> for CSRF token, again I think we need a fix here from > > >> > >>> Ignite. > > >> > >>>>>>>>>> > > >> > >>>>>>>>>> I cant reproduce this errors while I am running on single > > >> > >>>> instance, > > >> > >>>>>>> you > > >> > >>>>>>>>>> need to run this app on 2 spring boot instance having > proxy > > >> > >> in > > >> > >>>>>> front ( > > >> > >>>>>>>> F5, > > >> > >>>>>>>>>> OR any proxy ) with round robin fashion ( no sticky > session > > >> > >> on > > >> > >>> F5 > > >> > >>>>>> OR > > >> > >>>>>>>>>> proxies ). > > >> > >>>>>>>>>> > > >> > >>>>>>>>>> We were thinking with round robin the user session will > > >> > >> active > > >> > >>>>>> since > > >> > >>>>>>> we > > >> > >>>>>>>>>> used session replication on backend. > > >> > >>>>>>>>>> > > >> > >>>>>>>>>> Do let me know if you need more information here. > > >> > >>>>>>>>>> > > >> > >>>>>>>>>> Thanks, > > >> > >>>>>>>>>> > > >> > >>>>>>>>>> Rishi > > >> > >>>>>>>>>> > > >> > >>>>>>>>>> > > >> > >>>>>>>>>> > > >> > >>>>>>>>>> > > >> > >>>>>>>>>> On Tue, Feb 14, 2017 at 9:57 PM, Rishi Yagnik < > > >> > >>>>>> rishiyag...@gmail.com> > > >> > >>>>>>>>>> wrote: > > >> > >>>>>>>>>> > > >> > >>>>>>>>>>> Val, > > >> > >>>>>>>>>>> > > >> > >>>>>>>>>>> My SB sample project is ready however I have asked for > an > > >> > >>>>>> approval to > > >> > >>>>>>>>>>> submit sample project to you, it would take day or two. > > >> > >>>>>>>>>>> > > >> > >>>>>>>>>>> I will keep you posted. > > >> > >>>>>>>>>>> > > >> > >>>>>>>>>>> Thanks for all your help, > > >> > >>>>>>>>>>> > > >> > >>>>>>>>>>> On Tue, Feb 14, 2017 at 3:51 PM, Rishi Yagnik < > > >> > >>>>>> rishiyag...@gmail.com > > >> > >>>>>>>> > > >> > >>>>>>>>>>> wrote: > > >> > >>>>>>>>>>> > > >> > >>>>>>>>>>>> Let me build an example app for you and send it across > to > > >> > >>> you. > > >> > >>>>>>>>>>>> > > >> > >>>>>>>>>>>> Thanks, > > >> > >>>>>>>>>>>> > > >> > >>>>>>>>>>>> On Tue, Feb 14, 2017 at 3:28 PM, Valentin Kulichenko < > > >> > >>>>>>>>>>>> valentin.kuliche...@gmail.com> wrote: > > >> > >>>>>>>>>>>> > > >> > >>>>>>>>>>>>> Rishi, > > >> > >>>>>>>>>>>>> > > >> > >>>>>>>>>>>>> No I don't, and I think that's what we should start > > with. > > >> > >> I > > >> > >>>>>> want to > > >> > >>>>>>>>>>>>> understand a use case that is currently not supported > > (if > > >> > >>> any) > > >> > >>>>>> and > > >> > >>>>>>>> then > > >> > >>>>>>>>>>>>> find the best solution. And I would like to reuse > > existing > > >> > >>>> code > > >> > >>>>>> as > > >> > >>>>>>>>>>>>> much as > > >> > >>>>>>>>>>>>> possible. > > >> > >>>>>>>>>>>>> > > >> > >>>>>>>>>>>>> Do you have any code that reproduces the problem you > had > > >> > >> and > > >> > >>>> how > > >> > >>>>>>> you > > >> > >>>>>>>>>>>>> tried > > >> > >>>>>>>>>>>>> to utilize current web session clustering? Can you > share > > >> > >> it > > >> > >>>> with > > >> > >>>>>>> us? > > >> > >>>>>>>>>>>>> > > >> > >>>>>>>>>>>>> -Val > > >> > >>>>>>>>>>>>> > > >> > >>>>>>>>>>>>> On Tue, Feb 14, 2017 at 11:28 AM, Rishi Yagnik < > > >> > >>>>>>>> rishiyag...@gmail.com> > > >> > >>>>>>>>>>>>> wrote: > > >> > >>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>> Hi Val, > > >> > >>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>> I am working on SB platform with spring security and > we > > >> > >>>> found > > >> > >>>>>> out > > >> > >>>>>>>>>>>>> that the > > >> > >>>>>>>>>>>>>> web session filter ignite provides does not work for > > >> > >>> session > > >> > >>>>>>>>>>>>> management on > > >> > >>>>>>>>>>>>>> 2 node spring boot cluster. > > >> > >>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>> Somehow, spring security filter kicks in result in > some > > >> > >>>> weird > > >> > >>>>>>>> errors > > >> > >>>>>>>>>>>>> with > > >> > >>>>>>>>>>>>>> web session filter. > > >> > >>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>> So making compatible with spring security somehow, we > > >> > >> need > > >> > >>>> to > > >> > >>>>>>> write > > >> > >>>>>>>>>>>>>> implementation on spring session. > > >> > >>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>> Do you have any test cases that says web session > filter > > >> > >>>> would > > >> > >>>>>>> work > > >> > >>>>>>>>>>>>> with > > >> > >>>>>>>>>>>>>> spring security on boot platform ? > > >> > >>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>> Thanks, > > >> > >>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>> On Tue, Feb 14, 2017 at 1:03 PM, Valentin Kulichenko > < > > >> > >>>>>>>>>>>>>> valentin.kuliche...@gmail.com> wrote: > > >> > >>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>>> Hi Rishi, > > >> > >>>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>>> Can you please take a look at web session clustering > > >> > >>>> feature > > >> > >>>>>>> [1] > > >> > >>>>>>>>>>>>> provided > > >> > >>>>>>>>>>>>>>> by Ignite? I'm looking at Spring Session docs and it > > >> > >>> seems > > >> > >>>>>> to > > >> > >>>>>>> me > > >> > >>>>>>>>>>>>> it does > > >> > >>>>>>>>>>>>>>> exactly the same - replaces HttpSession with custom > > >> > >>>>>>>> implementation > > >> > >>>>>>>>>>>>> that > > >> > >>>>>>>>>>>>>> has > > >> > >>>>>>>>>>>>>>> a backend storage. If it doesn't provide any > > >> > >> additional > > >> > >>>> API > > >> > >>>>>> or > > >> > >>>>>>>>>>>>>>> functionality, I'm not sure I understand the benefit > > >> > >> of > > >> > >>>> this > > >> > >>>>>>>>>>>>> feature. > > >> > >>>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>>> Let me know if I'm missing something. > > >> > >>>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>>> [1] https://apacheignite-mix. > > >> > >>> readme.io/docs/web-session- > > >> > >>>>>>>> clustering > > >> > >>>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>>> -Val > > >> > >>>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>>> On Mon, Feb 13, 2017 at 2:41 PM, Rishi Yagnik < > > >> > >>>>>>>>>>>>> rishiyag...@gmail.com> > > >> > >>>>>>>>>>>>>>> wrote: > > >> > >>>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>>>> I would like to discuss session replication / fail > > >> > >>> over > > >> > >>>>>>> design > > >> > >>>>>>>> on > > >> > >>>>>>>>>>>>>> spring > > >> > >>>>>>>>>>>>>>>> boot platform and wanted to find what is the best > > >> > >> out > > >> > >>> to > > >> > >>>>>> get > > >> > >>>>>>>>>>>>> started > > >> > >>>>>>>>>>>>>>> here ? > > >> > >>>>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>>>> Possible approaches are as follows - > > >> > >>>>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>>>> - Make use of Spring Session for session > > >> > >>> replication > > >> > >>>>>> and > > >> > >>>>>>>> fail > > >> > >>>>>>>>>>>>> over > > >> > >>>>>>>>>>>>>>>> - Extend the web session filter and make it work > > >> > >> on > > >> > >>>>>> spring > > >> > >>>>>>>>>>>>> boot > > >> > >>>>>>>>>>>>>>>> application > > >> > >>>>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>>>> I am thinking that best approach would be to get > > >> > >>> started > > >> > >>>>>> here > > >> > >>>>>>>>>>>>> with > > >> > >>>>>>>>>>>>>> spring > > >> > >>>>>>>>>>>>>>>> session design however I am open for feedback here. > > >> > >>>>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>>>> -- > > >> > >>>>>>>>>>>>>>>> Rishi Yagnik > > >> > >>>>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>>> -- > > >> > >>>>>>>>>>>>>> Rishi Yagnik > > >> > >>>>>>>>>>>>>> > > >> > >>>>>>>>>>>>> > > >> > >>>>>>>>>>>> > > >> > >>>>>>>>>>>> > > >> > >>>>>>>>>>>> > > >> > >>>>>>>>>>>> -- > > >> > >>>>>>>>>>>> Rishi Yagnik > > >> > >>>>>>>>>>>> > > >> > >>>>>>>>>>> > > >> > >>>>>>>>>>> > > >> > >>>>>>>>>>> > > >> > >>>>>>>>>>> -- > > >> > >>>>>>>>>>> Rishi Yagnik > > >> > >>>>>>>>>>> > > >> > >>>>>>>>>> > > >> > >>>>>>>>>> > > >> > >>>>>>>>>> > > >> > >>>>>>>>>> -- > > >> > >>>>>>>>>> Rishi Yagnik > > >> > >>>>>>>>>> > > >> > >>>>>>>>> > > >> > >>>>>>>>> > > >> > >>>>>>>> > > >> > >>>>>>> > > >> > >>>>>>> > > >> > >>>>>>> > > >> > >>>>>>> -- > > >> > >>>>>>> Rishi Yagnik > > >> > >>>>>>> > > >> > >>>>>> > > >> > >>>>> > > >> > >>>>> > > >> > >>>>> > > >> > >>>>> -- > > >> > >>>>> Rishi Yagnik > > >> > >>>>> > > >> > >>>> > > >> > >>>> > > >> > >>>> > > >> > >>>> -- > > >> > >>>> Rishi Yagnik > > >> > >>>> > > >> > >>> > > >> > >> > > >> > >> > > >> > >> > > >> > >> -- > > >> > >> Rishi Yagnik > > >> > >> > > >> > > > >> > > > > > > > > > > > > -- > > > Rishi Yagnik > > > > > > > > > > > -- > > Rishi Yagnik > > > -- Rishi Yagnik