информация о профиле пользователя - PullRequest
3 голосов
/ 03 июня 2011

Я пытаюсь получить информацию о пользователе в моем портлете (портлет JSR 286, развернутый в JBoss GateIn), например

     Map userInfo = (Map) request.getAttribute(PortletRequest.USER_INFO);

, но ничего не получаю обратно.Мой portlet.xml имеет следующие параметры:

     <user-attribute>
    <description>User Name</description>
    <name>user.name</name>
</user-attribute>
<user-attribute>
    <description>User Id</description>
    <name>user.id</name>
</user-attribute>

GateIn предоставляет PortalRequestContext, который дает метод getRemoteUser () для входа в систему с идентификатором пользователя.Этот идентификатор может затем использоваться OrganizationService для получения пользователя, но это все специфично для GateIn, а не в соответствии со стандартом JSR286. JSR 286 утверждает, что атрибуты, связанные с пользователем, могут быть получены из PortletRequest.USER_INFO, как упомянуто выше.Пожалуйста, руководство.

Заранее спасибо!

Ps: Подобный пост в сообществе JBoss http://community.jboss.org/message/425683#425683

Ответы [ 2 ]

0 голосов
/ 13 февраля 2014

ваши имена разные, в соответствии со спецификацией это что-то вроде

<user-attribute>
    <description>User Given Name</description>
    <name>user.name.given</name>
</user-attribute>
<user-attribute>
    <description>User Last Name</description>
    <name>user.name.family</name>
</user-attribute>
<user-attribute>
    <description>User eMail</description>
    <name>user.business-info.online.email</name>
</user-attribute>

ниже больше (только часть) .. вы можете получить полный список из спецификации jsr286

user.gender
user.employer
user.department
user.jobtitle
user.name.prefix
user.name.given
user.name.family
user.name.middle
user.name.suffix
user.name.nickName
user.login.id
user.home-info.postal.name
user.home-info.postal.street
user.home-info.postal.city
user.home-info.postal.stateprov
user.home-info.postal.postalcode
user.home-info.postal.country
user.home-info.postal.organization
user.home-info.telecom.telephone.intcode
user.home-info.telecom.telephone.loccode
user.home-info.telecom.telephone.number
user.home-info.telecom.telephone.ext
user.home-info.telecom.telephone.comment
user.home-info.telecom.fax.intcode
user.home-info.telecom.fax.loccode
user.home-info.telecom.fax.number
0 голосов
/ 29 сентября 2012
SPList userInformationList = web.SiteUserInfoList;
SPUser user = web.EnsureUser(web.CurrentUser.Name);
// The actual User Information is within this SPListItem  
SPListItem userItem = userInformationList.Items.GetItemById(user.ID);
if (userItem["EMail"] != null)
    email = userItem["EMail"].ToString();
...