留言板

request.getRemoteUser(); (PortletRequest)

Tamas Filus,修改在11 年前。

request.getRemoteUser(); (PortletRequest)

New Member 发布: 1 加入日期: 12-1-25 最近的帖子
Sziasztok!

6.0.6-os portallal valo munka kozben a kovetkezo problemaba futottam bele, aminek a megoldasahoz segitseget szeretnek kerni.

A Portlet 2.0 szabvany szerint a targyban emlitett metodus a kerest kuldo felhasznalo loginnevevel kellene visszaterjen, ezert jogosnak erzem, hogy a 'screenName'-et varom eredmenyul, ellenben a 'userId' erkezik. Egy issue szerint egy korabbi verzios (4-es) Liferay Portlet App DTD lehetoseget adott arra, hogy a <user-principal-strategy> tag segitsegevel a default 'userId'-t feluldefinialhassuk a 'screenName'-mel, de a 6-osban mar nincs ilyen.

Masik megoldas lehetne a P3PUserInfos altal definialt user attributumok hasznalata, de azt tapasztaltam, hogy a portal ezeket nem allitja be, es a request.getAttribute(PortletRequest.USER_INFO); hivas ures mappel ter vissza.

A Portlet 2.0 szabvany kovetesevel szeretnem a problemat rezolvalni es igy elkerulni a Liferay API hasznalatat az alkalmazasomban, amennyiben lehetseges. Letezik esetleg olyan konfiguracios lehetoseg, amellyel valamelyik funkcionalitas mukodesre birhato a portalban?

A valaszokat elore is koszonom.

Udv.,
Tamas

EDIT:

Idokozben sikerult megoldanom, pl. portlet.xml-ben beallitjuk a kovetkezot:

<user-attribute>
  <description>User Nickname</description>
  <name>user.name.nickName</name>
</user-attribute>


Egy PortletRequestbol ezek utan pedig igy lehet kinyerni a kivant parametert:

Map userInfo = (Map) request.getAttribute(PortletRequest.USER_INFO);
String nickName = (userInfo == null) ? "" : (String) userInfo.get(PortletRequest.P3PUserInfos.USER_NAME_NICKNAME.toString());