我编写了一个java程序来在AEM中创建一个Group。它工作得很好。但是随着Group
,我还需要创建另一个Group aboutMe
属性。
ResourceResolver resourceResolver = resolverFactory.getAdministrativeResourceResolver(null);
session = resourceResolver.adaptTo(Session.class);
UserManager userManager = ((JackrabbitSession) session).getUserManager();
JackrabbitSession js = (JackrabbitSession) session;
Group group = null;
group = userManager.createGroup("TestGroup");
session.save();
是否有办法添加aboutMe属性字段?
你可以做group.setProperty("jcr:description","your string")
或任何属性。参考javadocs
为com.adobe.granite.security.user
添加依赖项到项目pom
@Reference
private UserPropertiesService service;
获取UserProperties对象(资源是你的组的资源实例)-
if (this.service != null) {
Authorizable authorizable = (Authorizable)resource.adaptTo(Authorizable.class);
UserProperties userProperties;
if (authorizable == null)
{
UserProperties userProperties = (UserProperties)resource.adaptTo(UserProperties.class);
if (userProperties != null) {
UserManager uMgr = (UserManager)resolver.adaptTo(UserManager.class);
authorizable = uMgr.getAuthorizable(userProperties.getAuthorizableID());
}
}
else
{
Session session = ((Node)resource.adaptTo(Node.class)).getSession();
UserPropertiesManager mgr = this.service.createUserPropertiesManager(session, resolver);
String propPath = request.getParameter("path");
userProperties = mgr.getUserProperties(authorizable, propPath);
}
一旦你得到UserProperties,你可以添加aboutMe
信息到你的组。
有关进一步参考,请阅读此处的javadocs