Hi Val, Did you chance to look into session handling issue ?
Thanks, On Mon, Mar 6, 2017 at 3:37 PM, Rishi Yagnik <rishiyag...@gmail.com> wrote: > 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 > -- Rishi Yagnik