留言板

Záměna session ID? Je to možné?

Petr Vašek,修改在10 年前。

Záměna session ID? Je to možné?

Junior Member 帖子: 68 加入日期: 12-6-26 最近的帖子
Ahoj všeci. Stala se mi d
thumbnail
Rasto Rehak,修改在10 年前。

RE: Záměna session ID? Je to možné?

Junior Member 帖子: 66 加入日期: 07-3-8 最近的帖子
Ahoj

je mozne, ze daka hodnota je ulozena instancnej premennej triedy portletu takze obidva requesty ju zdielaju. Instancia triedy portletu existuje v podstate len jedna.
Riesenie : vhodne pouzivat synchronized alebo si inak ukladat docasne udaje.

R
thumbnail
Ondřej Životský,修改在10 年前。

RE: Záměna session ID? Je to možné?

Junior Member 帖子: 29 加入日期: 11-3-11 最近的帖子
Myslím, že záměna sessionId není možná.

Taky to vidím na chybu aplikace (proměnná nebo sdílená instance třídy v Controlleru je typická klukovina... )

Další varianta je, že USER1 a USER2 je nějaký tester a měl více záložek v jednom prohlížeči ;)
Petr Vašek,修改在10 年前。

RE: Záměna session ID? Je to možné?

Junior Member 帖子: 68 加入日期: 12-6-26 最近的帖子
Předem moc děkuji za reakci chlapi.

Myslím si že nejsem začátečník, ale toto mě fakt dostalo. Zdílet nějakou instanci třídy tak to ano, beru. Nebo v ramci testu z jednoho browseru v případě IE -> taky jsem řešil. Ale toto.

Přesný postup operaci v portletu:

Vyzvednu obejkt typu User z PortletSession.
Na základě ID uživatele volám webovo službu, která mi vraci URL (dle logu na straně extrení služby taktež vidím že došlo k požadavku ve stejnou vteřinu, avšak byly vygenerovany 2 rozdilne udaje)


Následně proběhl render dané URL (formulář z následným submitem) <- pseudo SSO.

USER1 dostal spravne URL
USER2 dostal URL USERA1

Problem nastal při renderu portletu. Procházel jsme to tisickrat. Kod je tak jednoduchy že je nemožně aby byl chybný. Proto už myslím na to že to někde zvrzal Liferay emoticon
thumbnail
Jaromir Hamala,修改在10 年前。

RE: Záměna session ID? Je to možné?

New Member 帖子: 14 加入日期: 07-12-10 最近的帖子
Ahoj,

pises ze vidis, ze endpoint webove sluzby spravne vygeneroval 2 rozdilne udaje. Dokazes zpetne z logu zjistit, co videl klient? Co to je za webovou sluzbu? Budu predpokladat, ze SOAP + klient v JAX-WS stacku. Je to tak? Vis jakou pouzivas implementaci JAX-WS? Jaky je zivotni cyklus klienta? (=kdy se vytvari a zanika instance) JAX-WS klienti *nejsou* dle specifikace thread-safe. Treba Apache CFX implementaci to vetsinou nevadi, ale jine implementaci to vadit muze.

Jara
Petr Vašek,修改在10 年前。

RE: Záměna session ID? Je to možné?

Junior Member 帖子: 68 加入日期: 12-6-26 最近的帖子
Ahoj , děkuji za příspěvek


Tvá dedukce je správná co se logiky a použite technologie týče. metoda pouzita v portletu volá webovou službu a pokažde vytváří nový soap locator respektive novou instanci služby. Nezdílím ji. Avšak implementace je Axis 1. Mohl by byt zde problém?

EDIT: Ovšem i kdybych vzal jako fakt že WSC selhal, tak aby při onem renderu došlo k celkovém výslednému selhání muselo by selhat i vatahování USERID a USER_PASSWORD ze session. Pokud by selže pouze jeden z těhto faktorů tak fatákní chybě nedojde. Stále to vidím na selhání při tom RENDER_PHASE
thumbnail
Jaromir Hamala,修改在10 年前。

RE: Záměna session ID? Je to možné?

New Member 帖子: 14 加入日期: 07-12-10 最近的帖子
Petr Vašek:
Ahoj , děkuji za příspěvek


[...]metoda pouzita v portletu volá webovou službu a pokažde vytváří nový soap locator respektive novou instanci služby. Nezdílím ji. Avšak implementace je Axis 1. Mohl by byt zde problém?

EDIT: Ovšem i kdybych vzal jako fakt že WSC selhal, tak aby při onem renderu došlo k celkovém výslednému selhání muselo by selhat i vatahování USERID a USER_PASSWORD ze session. Pokud by selže pouze jeden z těhto faktorů tak fatákní chybě nedojde. Stále to vidím na selhání při tom RENDER_PHASE


Ja to myslel tak, ze jsi pouzil instanci non-thread-safe classy z vice vlaken a ta se ti pomstila tim, ze jedno vlakno dostalo spatny vysledek. Neco takoveho. Axis bohuzel neznam, ale podle user-guide a toho co jsi napsal soudim, ze to pouzivas spravne.
thumbnail
Ondřej Životský,修改在10 年前。

RE: Záměna session ID? Je to možné?

Junior Member 帖子: 29 加入日期: 11-3-11 最近的帖子
Tak sorry... Mohl to být kód nějakého juniora, který opravuješ ;)

Ale jestli tomu rozumím, tak SessionId je ok - uživatelé se dostali každá se své PortletSession.
Jestli to chápu, tak problém vznikl až po uložení URL do proměnné, a projevil se při vykreslení JSP... Takže si každý uložil proměnnou a dostali tu stejnou. Je to tak?

Používáš JSP nebo JSF? JSR-286 nebo SpringMVC? Struts? Nemůže být BUG ve frameworku?

oNDRA
Petr Vašek,修改在10 年前。

RE: Záměna session ID? Je to možné?

Junior Member 帖子: 68 加入日期: 12-6-26 最近的帖子
Ne ne to je v pohodě.

Ano chápeš to správně, je to tak jak jsi popsal.

Hmm, bug ve frameworku. No použivám JSP + Spring MVC, už jsi setkal z něčím takovým? Moc děkuji za každou reakci či nápad.
Petr Vašek,修改在10 年前。

RE: Záměna session ID? Je to možné?

Junior Member 帖子: 68 加入日期: 12-6-26 最近的帖子
Chapi jedne dotaz, skoro se stydím ho napsat.

toto je začátek definice meho kontrolleru


@Controller(value="MyServiceController")
@RequestMapping("VIEW")
public class MyServiceController  implements PortletConfigAware {

	private final static String SERVICE_NAME = "sp";
	private PortletConfig portletConfig;
	private String _FormAction;



Instance toho kontroleru portletu je v paměti pouze jednou? co ta proměnná "FormAction" v ACTION ji nakrmím a v RENDER ji vykresluju. Neni tohle ona fatální chyba ?

Děkuji
thumbnail
Jaromir Hamala,修改在10 年前。

RE: Záměna session ID? Je to možné?

New Member 帖子: 14 加入日期: 07-12-10 最近的帖子
Petr Vašek:
Chapi jedne dotaz, skoro se stydím ho napsat.

toto je začátek definice meho kontrolleru


@Controller(value="MyServiceController")
@RequestMapping("VIEW")
public class MyServiceController  implements PortletConfigAware {

	private final static String SERVICE_NAME = "sp";
	private PortletConfig portletConfig;
	private String _FormAction;



Instance toho kontroleru portletu je v paměti pouze jednou? co ta proměnná "FormAction" v ACTION ji nakrmím a v RENDER ji vykresluju. Neni tohle ona fatální chyba ?

Děkuji

Bingo

Upresneni: Spring beany jsou defaultne vytvarene jako singletony -> jedna sdilena instance pro vsechny requesty.
Upresneni2: Pokud na tu aplikaci postves treba jmeter, tak pri spravne napsanem scanari nebude problem chovani zreprodukovat.
thumbnail
Rasto Rehak,修改在10 年前。

RE: Záměna session ID? Je to možné?

Junior Member 帖子: 66 加入日期: 07-3-8 最近的帖子
A este riesenie: hodnotu z Action mozes preniest do Render cez response.setRenderParameter pokial je to maly String. Daco vacsie cez Session.
Zvycajne sa tie dve metody volaju dost rychlo po sebe a ku koliziam nedochadza takze pri beznom testovani sa to neprejavi.
thumbnail
Ondřej Životský,修改在10 年前。

RE: Záměna session ID? Je to možné?

Junior Member 帖子: 29 加入日期: 11-3-11 最近的帖子
Rasto Rehak:
A este riesenie: hodnotu z Action mozes preniest do Render cez response.setRenderParameter pokial je to maly String. Daco vacsie cez Session.


Ve SpringMVC se to dá uložit do modelu, v render fázi i JSP to tam pak "najdeš". (Sice dle specifikace není garantováno, že to tam bude, ale implementováno to tak je....)
thumbnail
Jaromir Hamala,修改在10 年前。

RE: Záměna session ID? Je to možné?

New Member 帖子: 14 加入日期: 07-12-10 最近的帖子
Tak hlavne ze je zahada vyresena.