-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Jon,

On 2/11/20 9:33 PM, Jonathan S. Fisher wrote:
> Apologies, I'm not seeing how this helps, I don't see where
> authentication information is transmitted

No, seriously, what session manager are you using?

- -chris

> On Tue, Feb 11, 2020 at 5:39 PM Christopher Schultz < 
> ch...@christopherschultz.net> wrote:
> 
> Jon,
> 
> On 2/11/20 5:36 PM, Jonathan S. Fisher wrote:
>>>>> What do you mean by logged out If it's one from Redisson,
>>>>> then you should look at their code and not
>>>> Tomcat's code.
>>>> 
>>>> So you have two tomcat nodes: A & B, clustered in any
>>>> fashion (forget I mentioned redisson) of your choosing; let's
>>>> say they're clustered using the built in tcp point-to-point
>>>> replication.
> The choice of session manager is ... pretty critical, here. So
> which session manager are you using/
> 
>>>> Have 5 people logged into an application on the first server
>>>> using standard JavaEE APIs (HttpServletrequest.login) Now
>>>> turn off server A. Your load balancer starts sending traffic
>>>> to server B. Their sessions will be there, BUT they will be
>>>> logged out; one has to call HttpServletRequest.login() again.
>>>> Upon login, Tomcat destroys the previous session (as it
>>>> should), nullifying any benefit for clustering the
>>>> application in the first place.
> Tomcat does not destroy sessions when authenticating.
> 
>>>> In the two links I provided, the StandardSession object goes
>>>> to great length to ensure that the security principal is not 
>>>> serialized into the session
> 
> True.
> 
>>>> and therefore [not] replicated in the cluster.
> 
> False.
> 
>>>> Why is that? Why not serialize the security credential so the
>>>> user can bounce between servers?
> 
> Authentication information is transmitted in a different way.
> 
> I would really encourage you to look at the code for DeltaManager, 
> which is the session manager typically used for clustering in
> Tomcat. If you are not using the DeltaManager, then you need to
> look at the code being used for your actual SessionManager.
> 
> -chris
> 
>>>> On Tue, Feb 11, 2020 at 4:27 PM Christopher Schultz 
>>>> <ch...@christopherschultz.net 
>>>> <mailto:ch...@christopherschultz.net>> wrote:
>>>> 
>>>> Jon,
>>>> 
>>>> On 2/11/20 2:35 PM, exabrial wrote:
>>>>> https://stackoverflow.com/questions/59833043/tomcat-logs-user-out-
dur
>
>>>>> 
i
>>>> 
>>>>> 
> ng-session-failover-event-and-restarts
>>>> <https://stackoverflow.com/questions/59833043/tomcat-logs-user-out-
dur
>
>>>> 
ing-session-failover-event-and-restarts
> <https://stackoverflow.com/questions/59833043/tomcat-logs-user-out-dur
ing-session-failover-event-and-restarts>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
> 
We've implemented session replication using Redisson, but we
>>>> noticed
>>>>> that if we intentionally fail a node, the user's sessions
>>>>> do get replicated, but they're logged out when they're
>>>>> restored on the new server.
>>>> 
>>>> What exactly do you mean when you say "logged-out"?
>>>> 
>>>>> Is there a way to make this work properly so the user
>>>>> doesn't get logged out during a failover event?
>>>> 
>>>>> Most /More importantly, is there a technical or security
>>>>> reason for this?
>>>> 
>>>> FYI the servlet specification does not guarantee that 
>>>> <distributable> web applications also transfer
>>>> authentication information.
>>>> 
>>>>> If you look at the Tomcat code, they actively try and
>>>>> avoid serialization the Security Principal:
>>>> 
>>>>> https://github.com/apache/tomcat/blob/master/java/org/apache/catal
ina
>
>>>>> 
/
>>>> 
>>>>> 
> session/StandardSession.java#L1559
>>>> <https://github.com/apache/tomcat/blob/master/java/org/apache/catal
ina
>
>>>> 
/session/StandardSession.java#L1559
> <https://github.com/apache/tomcat/blob/master/java/org/apache/catalina
/session/StandardSession.java#L1559>
>>>>
>>>>
>>>>
>>>>
>>>>
> 
https://github.com/apache/tomcat/blob/master/java/org/apache/catalina/
> se
>>>> 
>>>> 
> ssion/StandardSession.java#L234
>>>> <https://github.com/apache/tomcat/blob/master/java/org/apache/catal
ina
>
>>>> 
/session/StandardSession.java#L234
> <https://github.com/apache/tomcat/blob/master/java/org/apache/catalina
/session/StandardSession.java#L234>
>>>>
>>>>
>>>>
> 
That code is for serializing the whole session, not transmitting
>>>> session information between cluster nodes. You need to read
>>>> the code for the various ClusterManagers and (more
>>>> importantly), the DeltaSession class.
>>>> 
>>>> Which SessionManager are you using? If it's one from
>>>> Redisson, then you should look at their code and not Tomcat's
>>>> code.
>>>> 
>>>> -chris
>>>> 
>>>> 
>>>> 
>>>> -- Jonathan | exabr...@gmail.com <mailto:exabr...@gmail.com> 
>>>> Pessimists, see a jar as half empty. Optimists, in contrast,
>>>> see it as half full. Engineers, of course, understand the
>>>> glass is twice as big as it needs to be.
>> 
>> ---------------------------------------------------------------------
>>
>> 
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>> For additional commands, e-mail: users-h...@tomcat.apache.org
>> 
>> 
> 
-----BEGIN PGP SIGNATURE-----
Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/

iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAl5EGYMACgkQHPApP6U8
pFgewxAAimutw1exjBFgtBUUvj4I05KUH/Sy8G4TSXcUuYJv0pVGv2oztzNXp/Cz
IcJdj/mSDdg2c4TdLdsk9F2PCPOJdevmygJQbArcsgZd/X+RG8ZwPrZVJ26DweOJ
vrB8RsP/VDiXU4JJKjxN1SyIIWB9NRXpvGwUWsb8WTQosQFk94rq4N8XIQ2CGx8F
CgHu27Rn9/gTZv5tWscWKXK9mWfUsLoWJIbHz+ApfT4bKTop84trf4U2A5ug1jdF
c6eRZU2p9+TJuThOU0Mbt2akN9c7hYIYo6KZ8kpXV+zh1NteGlYYsDXKGP6lQsDL
5p5jvMVnKNPY00sz79XYhaqpU58kSSWGSy15AB1bMMmqQ9vs5QUKLJhJy8ZkMID6
5C/lDZe3hTlIn/E7NZyvBC27XVTh5ofUUviRUvNoMVPjPAw7QpNIzhtIrjgviBjp
uV7N1eEIA7jUGaVsH7a1/N+RxwCMqr31bfrr/kCTq9iBB2gvYAQXxAVTlkdj2bYQ
06ZmHpOAh1skqgLqMKIPI0p0EngN7XRYUCfu75AHgIcIqfYuc47DXqgeCKs5/sCk
iW+n9jpQ2r7/wgozPhO8Gnsve7ktjH3G58YBeBwUTB2hrVLDuCpuchmjPqJJaNfq
Fr7kAuGLqqBTUxnYpQiQPml8OzH2QSn0/z7yuRkm6ZfKsPpQSKM=
=ArT1
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to