Author: bdaw
Date: 2006-12-17 09:26:07 -0500 (Sun, 17 Dec 2006)
New Revision: 5883
Added:
trunk/core/src/resources/portal-core-sar/conf/identity-config.xml
trunk/core/src/resources/portal-core-sar/conf/identity/
trunk/core/src/resources/portal-core-sar/conf/identity/ldap_identity-config.xml
trunk/core/src/resources/portal-core-sar/conf/identity/standardidentity-config.xml
trunk/core/src/resources/portal-core-sar/conf/profile-config.xml
Modified:
trunk/cms/src/main/org/jboss/portal/cms/impl/interceptors/ACLInterceptor.java
trunk/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java
trunk/core/src/main/org/jboss/portal/core/aspects/server/LocaleInterceptor.java
trunk/core/src/main/org/jboss/portal/core/aspects/server/UserInterceptor.java
trunk/core/src/main/org/jboss/portal/core/controller/portlet/ControllerUserContext.java
trunk/core/src/main/org/jboss/portal/core/model/portal/command/RenderPageCommand.java
trunk/core/src/main/org/jboss/portal/core/portlet/cms/admin/CMSAdminPortlet.java
trunk/core/src/main/org/jboss/portal/core/portlet/role/RolePortlet.java
trunk/core/src/main/org/jboss/portal/core/portlet/test/TestPortlet.java
trunk/core/src/main/org/jboss/portal/core/portlet/user/UserPortlet.java
trunk/core/src/resources/portal-cms-sar/META-INF/jboss-service.xml
trunk/core/src/resources/portal-core-sar/META-INF/jboss-service.xml
trunk/core/src/resources/portal-core-sar/conf/hibernate/user/setup.txt
trunk/core/src/resources/portal-core-sar/conf/login-config.xml
trunk/core/src/resources/portal-core-war/WEB-INF/jboss-portlet.xml
trunk/core/src/resources/portal-samples-war/WEB-INF/jboss-portlet.xml
Log:
- plug in new identity modules
- correct API usages
(Still some stuff not working 100% ok)
Modified: trunk/cms/src/main/org/jboss/portal/cms/impl/interceptors/ACLInterceptor.java
===================================================================
---
trunk/cms/src/main/org/jboss/portal/cms/impl/interceptors/ACLInterceptor.java 2006-12-17
14:17:34 UTC (rev 5882)
+++
trunk/cms/src/main/org/jboss/portal/cms/impl/interceptors/ACLInterceptor.java 2006-12-17
14:26:07 UTC (rev 5883)
@@ -33,6 +33,7 @@
import java.util.List;
import javax.naming.InitialContext;
+import javax.naming.NamingException;
import org.jboss.portal.cms.CMSException;
import org.jboss.portal.cms.CMSInterceptor;
@@ -52,8 +53,9 @@
import org.jboss.portal.identity.User;
import org.jboss.portal.identity.Role;
-import org.jboss.portal.identity.db.RoleImpl;
+import org.jboss.portal.identity.db.HibernateRoleImpl;
import org.jboss.portal.identity.RoleModule;
+import org.jboss.portal.identity.AnnonymousRole;
/**
* ACLInterceptor is plugged into the CMS system to enforce fine grained security access
control
@@ -277,10 +279,19 @@
super.startService();
Tools.init(this.jndiName);
+
+ try
+ {
+ roleModule = (RoleModule)new
InitialContext().lookup("java:portal/RoleModule");
+ }
+ catch (NamingException e)
+ {
+ log.error("Cannot obtain RoleModule from JNDI: ", e);
+ throw e;
+ }
-
- //check and see if cms permissions exist...if not, boot it with the default
policy
- //specified in the configuration
+ //check and see if cms permissions exist...if not, boot it with the default
policy
+ //specified in the configuration
if(!this.isBootRequired())
{
return;
@@ -392,7 +403,7 @@
//since this is at app start up and not on user thread...need to create a
transaction context.
InitialContext context = new InitialContext();
- SessionFactory sessionFactory =
(SessionFactory)context.lookup("java:/portal/UserSessionFactory");
+ SessionFactory sessionFactory =
(SessionFactory)context.lookup("java:/portal/IdentitySessionFactory");
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
try
@@ -401,7 +412,7 @@
}
catch(Exception e)
{
- role = new RoleImpl();
+ role = new AnnonymousRole();
}
finally
{
Modified: trunk/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java
===================================================================
--- trunk/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java 2006-12-17 14:17:34 UTC
(rev 5882)
+++ trunk/cms/src/main/org/jboss/portal/cms/impl/jcr/JCRCMS.java 2006-12-17 14:26:07 UTC
(rev 5883)
@@ -58,6 +58,8 @@
import javax.jcr.Session;
import javax.transaction.xa.XAResource;
import javax.transaction.xa.Xid;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -205,6 +207,16 @@
/** CMS Start */
public void startService() throws Exception
{
+ try
+ {
+ this.userModule = (UserModule)new
InitialContext().lookup("java:portal/UserModule");
+ }
+ catch (NamingException e)
+ {
+ log.error("Cannot obtain UserModule from JNDI: ", e);
+ throw e;
+ }
+
//check the version of jbosscache being run
String cacheVersion = Version.getVersionString(Version.getVersionShort());
log.info("JBossCache Version=" + cacheVersion);
Modified: trunk/core/src/main/org/jboss/portal/core/aspects/server/LocaleInterceptor.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/core/aspects/server/LocaleInterceptor.java 2006-12-17
14:17:34 UTC (rev 5882)
+++
trunk/core/src/main/org/jboss/portal/core/aspects/server/LocaleInterceptor.java 2006-12-17
14:26:07 UTC (rev 5883)
@@ -24,10 +24,14 @@
import org.jboss.portal.common.invocation.InvocationException;
import org.jboss.portal.identity.User;
+import org.jboss.portal.identity.UserProfileModule;
+import org.jboss.portal.identity.UserModule;
import org.jboss.portal.server.ServerInterceptor;
import org.jboss.portal.server.ServerInvocation;
import org.jboss.portal.server.ServerRequest;
+import javax.naming.InitialContext;
+import javax.naming.NameNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
@@ -50,9 +54,40 @@
// Try to get the locale from the user
User user = (User)invocation.getRequest().getUser();
- if (user != null)
+
+ UserProfileModule userProfileModule = null;
+
+ //TODO: identity code change
+ try
{
- Locale locale = user.getPreferredLocale();
+ userProfileModule = (UserProfileModule)new
InitialContext().lookup("java:portal/UserProfileModule");
+ }
+ catch (NameNotFoundException ignore)
+ {
+ // Name is not bound anymore, it could happen during a shutdown, we don't do
anything
+ }
+
+ if (user != null && userProfileModule != null)
+ {
+ //Locale locale = user.getPreferredLocale();
+ Object lc = userProfileModule.getProperty(user,User.INFO_USER_LOCALE);
+ Locale locale = null;
+ if (lc instanceof Locale)
+ {
+ locale = (Locale)lc;
+ }
+ else
+ {
+ try
+ {
+ locale = new Locale(lc.toString());
+ }
+ catch (Exception e)
+ {
+ //just to hide failure
+ }
+ }
+
if (locale != null)
{
locales.add(locale);
Modified: trunk/core/src/main/org/jboss/portal/core/aspects/server/UserInterceptor.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/core/aspects/server/UserInterceptor.java 2006-12-17
14:17:34 UTC (rev 5882)
+++
trunk/core/src/main/org/jboss/portal/core/aspects/server/UserInterceptor.java 2006-12-17
14:26:07 UTC (rev 5883)
@@ -29,11 +29,14 @@
import org.jboss.portal.identity.NoSuchUserException;
import org.jboss.portal.identity.User;
import org.jboss.portal.identity.UserModule;
+import org.jboss.portal.identity.MembershipModule;
+import org.jboss.portal.identity.UserProfileModule;
import org.jboss.portal.server.ServerInterceptor;
import org.jboss.portal.server.ServerInvocation;
import javax.naming.InitialContext;
import javax.naming.NameNotFoundException;
+import javax.naming.NamingException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionBindingEvent;
@@ -63,6 +66,17 @@
public UserModule getUserModule()
{
+ if (userModule == null)
+ {
+ try
+ {
+ userModule = (UserModule)new
InitialContext().lookup("java:portal/UserModule");
+ }
+ catch (NamingException e)
+ {
+ log.error("could not obtain User Module: ", e);
+ }
+ }
return userModule;
}
@@ -97,7 +111,7 @@
}
// Lookup
- user = userModule.findUserByUserName(userName);
+ user = getUserModule().findUserByUserName(userName);
//
if (trace)
@@ -233,10 +247,14 @@
//
// Here we use JNDI to locate the module as this finalizer could have been
// migrated in the session of another node of the cluster
- UserModule module = null;
+ UserModule userModule = null;
+ UserProfileModule userProfileModule = null;
+
+ //TODO: identity - code change
try
{
- module = (UserModule)new
InitialContext().lookup("java:portal/UserModule");
+ userModule = (UserModule)new
InitialContext().lookup("java:portal/UserModule");
+ userProfileModule = (UserProfileModule)new
InitialContext().lookup("java:portal/UserProfileModule");
}
catch (NameNotFoundException ignore)
{
@@ -244,12 +262,14 @@
}
// Get user and set last visit date to now if we can
- if (module != null)
+ if (userModule != null && userProfileModule != null)
{
try
{
- User user = module.findUserById(userId);
- user.setLastVisitDate(new Date());
+ User user = userModule.findUserById(userId);
+ //user.setLastVisitDate(new Date());
+ userProfileModule.setProperty(user, User.INFO_USER_LAST_LOGIN_DATE, new
Date().toString());
+
}
catch (NoSuchUserException e)
{
Modified:
trunk/core/src/main/org/jboss/portal/core/controller/portlet/ControllerUserContext.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/core/controller/portlet/ControllerUserContext.java 2006-12-17
14:17:34 UTC (rev 5882)
+++
trunk/core/src/main/org/jboss/portal/core/controller/portlet/ControllerUserContext.java 2006-12-17
14:26:07 UTC (rev 5883)
@@ -24,9 +24,15 @@
import org.jboss.portal.common.util.Tools;
import org.jboss.portal.identity.User;
+import org.jboss.portal.identity.UserProfileModule;
+import org.jboss.portal.identity.UserModule;
+import org.jboss.portal.identity.IdentityException;
import org.jboss.portal.portlet.spi.UserContext;
import org.jboss.portal.server.ServerInvocation;
+import javax.naming.InitialContext;
+import javax.naming.NameNotFoundException;
+import javax.naming.NamingException;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -38,6 +44,8 @@
public class ControllerUserContext implements UserContext
{
+ private static final org.jboss.logging.Logger log =
org.jboss.logging.Logger.getLogger(ControllerUserContext.class);
+
/** . */
private final ServerInvocation invocation;
@@ -55,10 +63,32 @@
public Map getInformations()
{
User user = getUser();
- if (user != null)
+
+ UserProfileModule userProfileModule = null;
+
+ //MARK: identity code change
+ try
{
- return user.getProfile();
+ userProfileModule = (UserProfileModule)new
InitialContext().lookup("java:portal/UserProfileModule");
}
+ catch (NamingException ignore)
+ {
+ // Name is not bound anymore, it could happen during a shutdown, we don't do
anything
+ }
+
+ if (user != null && userProfileModule != null)
+ {
+ //return user.getProfile();
+ try
+ {
+ return userProfileModule.getProperties(user);
+ }
+ catch (IdentityException e)
+ {
+ log.error("Cannot obtain user profile information: ", e);
+ return null;
+ }
+ }
else
{
return null;
Modified:
trunk/core/src/main/org/jboss/portal/core/model/portal/command/RenderPageCommand.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/core/model/portal/command/RenderPageCommand.java 2006-12-17
14:17:34 UTC (rev 5882)
+++
trunk/core/src/main/org/jboss/portal/core/model/portal/command/RenderPageCommand.java 2006-12-17
14:26:07 UTC (rev 5883)
@@ -41,6 +41,7 @@
import org.jboss.portal.core.model.portal.Window;
import org.jboss.portal.core.model.portal.PortalObjectId;
import org.jboss.portal.identity.User;
+import org.jboss.portal.identity.UserProfileModule;
import org.jboss.portal.portlet.Properties;
import org.jboss.portal.portlet.info.ModeInfo;
import org.jboss.portal.portlet.info.WindowStateInfo;
@@ -71,6 +72,8 @@
import org.jboss.portal.theme.page.WindowContext;
import javax.servlet.http.HttpServletRequest;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -228,7 +231,23 @@
User user =
(User)controllerCtx.getServerInvocation().getRequest().getUser();
if (user != null)
{
- String themeId = user.getTheme();
+ UserProfileModule userProfileModule = null;
+
+ //MARK: identity code change
+ try
+ {
+ userProfileModule = (UserProfileModule)new
InitialContext().lookup("java:portal/UserProfileModule");
+ }
+ catch (NamingException ignore)
+ {
+ // Name is not bound anymore, it could happen during a shutdown, we
don't do anything
+ }
+
+
+ //String themeId = user.getTheme();
+
+ String themeId = (String)userProfileModule.getProperty(user,
User.INFO_USER_THEME);
+
if (themeId != null)
{
theme = getTheme(themeId);
Modified:
trunk/core/src/main/org/jboss/portal/core/portlet/cms/admin/CMSAdminPortlet.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/core/portlet/cms/admin/CMSAdminPortlet.java 2006-12-17
14:17:34 UTC (rev 5882)
+++
trunk/core/src/main/org/jboss/portal/core/portlet/cms/admin/CMSAdminPortlet.java 2006-12-17
14:26:07 UTC (rev 5883)
@@ -58,8 +58,10 @@
import org.jboss.portal.identity.User;
import org.jboss.portal.identity.Role;
-import org.jboss.portal.identity.db.RoleImpl;
+import org.jboss.portal.identity.AnnonymousRole;
+import org.jboss.portal.identity.MembershipModule;
+
import javax.portlet.PortletException;
import javax.portlet.PortletRequestDispatcher;
import javax.portlet.PortletSession;
@@ -80,19 +82,21 @@
/**
* @author <a href="mailto:roy@jboss.org">Roy Russo</a>
* @author <a href="mailto:theute@jboss.org">Thomas Heute</a>
- * @author <a href="mailto:sohil.shah@jboss.com">Sohil Shah</a>
+ * @author <a href="mailto:sohil.shah@jboss.com">Sohil Shah</a>
*/
public class CMSAdminPortlet extends JBossPortlet
{
private CMS CMSService;
private UserModule userModule;
private RoleModule roleModule;
+ private MembershipModule membershipModule;
public void init() throws PortletException
{
CMSService = (CMS)getPortletContext().getAttribute("CMS");
userModule = (UserModule)getPortletContext().getAttribute("UserModule");
roleModule = (RoleModule)getPortletContext().getAttribute("RoleModule");
+ membershipModule =
(MembershipModule)getPortletContext().getAttribute("MembershipModule");
if (CMSService == null)
{
@@ -106,6 +110,10 @@
{
throw new PortletException("No role module");
}
+ if (membershipModule == null)
+ {
+ throw new PortletException("No membership module");
+ }
}
protected void doView(final JBossRenderRequest rReq, final JBossRenderResponse rRes)
@@ -1137,7 +1145,7 @@
}
else
{
- role = new RoleImpl();
+ role = new AnnonymousRole();
}
rolesSet.add(role);
}
@@ -1259,7 +1267,7 @@
if(portletRequest.getUserPrincipal()!=null)
{
User user =
this.userModule.findUserByUserName(portletRequest.getUserPrincipal().getName());
- Set roles = this.roleModule.getRoles(user);
+ Set roles = this.membershipModule.getRoles(user);
if(roles!=null)
{
for(Iterator itr=roles.iterator();itr.hasNext();)
Modified: trunk/core/src/main/org/jboss/portal/core/portlet/role/RolePortlet.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/portlet/role/RolePortlet.java 2006-12-17
14:17:34 UTC (rev 5882)
+++ trunk/core/src/main/org/jboss/portal/core/portlet/role/RolePortlet.java 2006-12-17
14:26:07 UTC (rev 5883)
@@ -32,6 +32,8 @@
import org.jboss.portal.identity.RoleModule;
import org.jboss.portal.identity.User;
import org.jboss.portal.identity.UserModule;
+import org.jboss.portal.identity.MembershipModule;
+import org.jboss.portal.identity.UserProfileModule;
import org.jboss.portlet.JBossActionRequest;
import org.jboss.portlet.JBossActionResponse;
import org.jboss.portlet.JBossPortlet;
@@ -87,6 +89,11 @@
private RoleModule roleModule;
private UserModule userModule;
+
+ private MembershipModule membershipModule;
+
+ private UserProfileModule userProfileModule;
+
private static final String ADMIN_ROLE = "Admin";
public void init() throws PortletException
@@ -95,6 +102,8 @@
userModule = (UserModule)getPortletContext().getAttribute("UserModule");
roleModule = (RoleModule)getPortletContext().getAttribute("RoleModule");
portletHelper = new PortletHelper(this);
+ membershipModule =
(MembershipModule)getPortletContext().getAttribute("MembershipModule");
+ userProfileModule =
(UserProfileModule)getPortletContext().getAttribute("UserProfileModule");
//
if (userModule == null)
@@ -105,6 +114,16 @@
{
throw new PortletException("No role module");
}
+ if (membershipModule == null)
+ {
+ throw new PortletException("No membership module");
+ }
+ if (userProfileModule == null)
+ {
+ throw new PortletException("No user profile module");
+ }
+
+
}
public void destroy()
@@ -277,7 +296,7 @@
ctx.put("usernameFilter", usernameFilter);
Set users = null;
- users = roleModule.findRoleMembers(role.getName(), offset, usersPerPage
+ 1, usernameFilter.trim());
+ users = membershipModule.findRoleMembers(role.getName(), offset,
usersPerPage + 1, usernameFilter.trim());
User[] usersArray = new User[users.size()];
usersArray = (User[])users.toArray(usersArray);
@@ -291,7 +310,7 @@
rowCtx.put("username", user.getUserName());
//
- Iterator itRoles = roleModule.getRoles(user).iterator();
+ Iterator itRoles = membershipModule.getRoles(user).iterator();
while (itRoles.hasNext())
{
DelegateContext rolesCtx = rowCtx.next("roles");
@@ -378,7 +397,7 @@
ctx.put("userid", user.getId().toString());
ctx.put("username", user.getUserName());
ctx.put("userfullname", getFullName(bundle, user));
- Set userRoles = roleModule.getRoles(user);
+ Set userRoles = membershipModule.getRoles(user);
Set roles = roleModule.findRoles();
Role[] rolesArray = new Role[roles.size()];
@@ -622,7 +641,7 @@
{
User user = userModule.findUserById(userId);
Set roles = roleModule.findRolesByNames(selectedRoles);
- roleModule.setRoles(user, roles);
+ membershipModule.assignRoles(user, roles);
}
catch (IllegalArgumentException e)
{
@@ -759,22 +778,35 @@
private String getFullName(ResourceBundle bundle,
User user)
{
- if ((user.getGivenName() != null) && (user.getGivenName().trim().length()
!= 0))
+ String givenName = null;
+ String familyName = null;
+
+ try
{
- if ((user.getFamilyName() != null) &&
(user.getFamilyName().trim().length() != 0))
+ givenName = (String)userProfileModule.getProperty(user,
User.INFO_USER_NAME_GIVEN);
+ familyName = (String)userProfileModule.getProperty(user,
User.INFO_USER_NAME_FAMILY);
+ }
+ catch (IdentityException e)
+ {
+ log.error("cannot obtain user profile information: ", e);
+ }
+
+ if ((givenName != null) && (givenName.trim().length() != 0))
+ {
+ if ((familyName != null) && (familyName.trim().length() != 0))
{
- return user.getGivenName() + " " + user.getFamilyName();
+ return givenName + " " + familyName;
}
else
{
- return user.getGivenName().trim();
+ return givenName.trim();
}
}
else
{
- if ((user.getFamilyName() != null) &&
(user.getFamilyName().trim().length() != 0))
+ if ((familyName != null) && (familyName.trim().length() != 0))
{
- return user.getFamilyName().trim();
+ return familyName.trim();
}
else
{
Modified: trunk/core/src/main/org/jboss/portal/core/portlet/test/TestPortlet.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/portlet/test/TestPortlet.java 2006-12-17
14:17:34 UTC (rev 5882)
+++ trunk/core/src/main/org/jboss/portal/core/portlet/test/TestPortlet.java 2006-12-17
14:26:07 UTC (rev 5883)
@@ -85,7 +85,9 @@
writer.write("<p>");
writer.write("<div class=\"portlet-section-header\">User
infos</div>");
writer.write("<div class=\"portlet-section-body\">");
- writer.write("<div>Last visit date : " + user.getLastVisitDate()
+ "</div>");
+
+ //TODO: update this with new Identity API
+ //writer.write("<div>Last visit date : " +
user.getLastVisitDate() + "</div>");
writer.write("</div>");
writer.write("</p>");
}
Modified: trunk/core/src/main/org/jboss/portal/core/portlet/user/UserPortlet.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/portlet/user/UserPortlet.java 2006-12-17
14:17:34 UTC (rev 5882)
+++ trunk/core/src/main/org/jboss/portal/core/portlet/user/UserPortlet.java 2006-12-17
14:26:07 UTC (rev 5883)
@@ -38,6 +38,8 @@
import org.jboss.portal.identity.RoleModule;
import org.jboss.portal.identity.User;
import org.jboss.portal.identity.UserModule;
+import org.jboss.portal.identity.MembershipModule;
+import org.jboss.portal.identity.UserProfileModule;
import org.jboss.portal.theme.PortalTheme;
import org.jboss.portal.theme.ThemeInfo;
import org.jboss.portal.theme.ThemeService;
@@ -108,6 +110,8 @@
private UserModule userModule;
private RoleModule roleModule;
+ private MembershipModule membershipModule;
+ private UserProfileModule userProfileModule;
private MailModule mailModule;
private PortletHelper portletHelper;
public static final short UNDEFINED_TIMEZONE = (short)0;
@@ -125,6 +129,8 @@
//
userModule = (UserModule)getPortletContext().getAttribute("UserModule");
roleModule = (RoleModule)getPortletContext().getAttribute("RoleModule");
+ membershipModule =
(MembershipModule)getPortletContext().getAttribute("MembershipModule");
+ userProfileModule =
(UserProfileModule)getPortletContext().getAttribute("UserProfileModule");
mailModule = (MailModule)getPortletContext().getAttribute("MailModule");
portletHelper = new PortletHelper(this);
@@ -141,6 +147,14 @@
{
throw new PortletException("No mail module");
}
+ if (membershipModule == null)
+ {
+ throw new PortletException("No membership module");
+ }
+ if (userProfileModule == null)
+ {
+ throw new PortletException("No user profile module");
+ }
}
public void destroy()
@@ -177,7 +191,7 @@
resp.setContentType("text/html");
PrintWriter writer = resp.getWriter();
- if ((req.getUser() != null) && (!req.getUser().getEnabled()))
+ if ((req.getUser() != null) && (!((getProperty(req.getUser(),
User.INFO_USER_ENABLED)).equals("true"))))
{
req.getPortletSession().invalidate();
PortletRequestDispatcher rd =
getPortletContext().getRequestDispatcher("/WEB-INF/jsp/user/login.jsp");
@@ -248,7 +262,8 @@
fillContextWithUserProfile(user, ctx);
//
- String selectedTimeZone =
(String)user.getProfile().get(User.INFO_USER_TIME_ZONE_OFFSET);
+ //String selectedTimeZone =
(String)user.getProfile().get(User.INFO_USER_TIME_ZONE_OFFSET);
+ String selectedTimeZone = (String)getProperty(user,
User.INFO_USER_TIME_ZONE_OFFSET);
for (int i = 0; i < UserPortletConstants.TIME_ZONE_OFFSETS.length; i++)
{
if (UserPortletConstants.TIME_ZONE_OFFSETS[i] != null)
@@ -264,7 +279,8 @@
}
//
- String selectedLocale =
(String)user.getProfile().get(User.INFO_USER_LOCALE);
+ //String selectedLocale =
(String)user.getProfile().get(User.INFO_USER_LOCALE);
+ String selectedLocale = (String)getProperty(user, User.INFO_USER_LOCALE);
for (Iterator i = LocaleInfo.getAll().iterator(); i.hasNext();)
{
LocaleInfo info = (LocaleInfo)i.next();
@@ -279,7 +295,8 @@
}
//
- String selectedTheme = (String)user.getProfile().get(User.INFO_USER_THEME);
+ //String selectedTheme =
(String)user.getProfile().get(User.INFO_USER_THEME);
+ String selectedTheme = (String)getProperty(user,User.INFO_USER_THEME);
ThemeService themeService =
(ThemeService)getPortletContext().getAttribute("ThemeService");
for (Iterator i = themeService.getThemes().iterator(); i.hasNext();)
{
@@ -354,7 +371,7 @@
rowCtx.put("username" + oddeven, user.getUserName());
//
- Iterator itRoles = roleModule.getRoles(user).iterator();
+ Iterator itRoles = membershipModule.getRoles(user).iterator();
while (itRoles.hasNext())
{
DelegateContext rolesCtx = rowCtx.next("roles" +
oddeven);
@@ -431,7 +448,7 @@
ctx.put("userid", user.getId().toString());
ctx.put("username", user.getUserName());
ctx.put("userfullname", getFullName(bundle, user));
- Set userRoles = roleModule.getRoles(user);
+ Set userRoles = membershipModule.getRoles(user);
Set roles = roleModule.findRoles();
Role[] rolesArray = new Role[roles.size()];
@@ -541,10 +558,10 @@
try
{
user = userModule.findUserById(userId);
- String hexCompare = Tools.md5AsHexString(user.getUserName() +
user.getRegistrationDate() + UserPortletConstants.SALT);
+ String hexCompare = Tools.md5AsHexString(user.getUserName() +
getProperty(user,User.INFO_USER_REGISTRATION_DATE) + UserPortletConstants.SALT);
if (hash.equals(hexCompare))
{
- user.setEnabled(true);
+ setProperty(user, User.INFO_USER_ENABLED, Boolean.TRUE);
rd =
getPortletContext().getRequestDispatcher("/WEB-INF/jsp/user/register_ty.jsp");
PortalNode currentNode = Navigation.getCurrentNode();
PortalNodeURL url = resp.createRenderURL(currentNode);
@@ -678,8 +695,10 @@
{
try
{
- user = userModule.createUser(uname, pass1, realEmail);
- user.setFakeEmail(fakeEmail);
+ user = userModule.createUser(uname, pass1);
+ setProperty(user,User.INFO_USER_EMAIL_REAL, realEmail);
+ //user.setFakeEmail(fakeEmail);
+ setProperty(user,User.INFO_USER_EMAIL_FAKE, fakeEmail);
//user.setRegistrationDate(new Date());
String subscriptionMode =
getPortletConfig().getInitParameter(UserPortletConstants.SUBSCRIPTIONMODE);
@@ -690,17 +709,17 @@
if
(UserPortletConstants.SUBSCRIPTIONMODE_AUTOMATIC.equals(subscriptionMode))
{
- user.setEnabled(true);
+ setProperty(user, User.INFO_USER_ENABLED, Boolean.TRUE);
}
else if
(UserPortletConstants.SUBSCRIPTIONMODE_EMAILVERIFICATION.equals(subscriptionMode))
{
- user.setEnabled(false);
+ setProperty(user, User.INFO_USER_ENABLED, Boolean.FALSE);
String emailText = generateValidationEmail(req, resp, user, pass1);
String from =
getPortletConfig().getInitParameter(UserPortletConstants.EMAILFROM);
Locale locale = req.getLocale();
ResourceBundle bundle = getResourceBundle(locale);
String subject =
bundle.getString("REGISTER_CONFIRMATIONEMAIL");
- mailModule.send(from, user.getRealEmail(), subject, emailText);
+ mailModule.send(from, (String)getProperty(user,User.INFO_USER_EMAIL_REAL),
subject, emailText);
}
/*
@@ -719,7 +738,7 @@
if (role != null)
{
roleSet.add(role);
- roleModule.setRoles(user, roleSet);
+ membershipModule.assignRoles(user, roleSet);
}
else
{
@@ -754,25 +773,25 @@
private void fillContextWithUserProfile(User user, DelegateContext ctx)
{
- ctx.put("GIVENNAME", user.getGivenName());
- ctx.put("FAMILYNAME", user.getFamilyName());
- ctx.put("REALEMAIL", user.getRealEmail());
- ctx.put("FAKEEMAIL", user.getFakeEmail());
- ctx.put("THEME", user.getTheme());
- ctx.put("VIEWREALEMAIL", user.getViewRealEmail() ?
"checked=\"checked\"" : "");
- ctx.put("HOMEPAGE",
(String)(user.getProfile().get(User.INFO_USER_HOMEPAGE)));
- ctx.put("ICQ", (String)(user.getProfile().get(User.INFO_USER_IM_ICQ)));
- ctx.put("AIM", (String)(user.getProfile().get(User.INFO_USER_IM_AIM)));
- ctx.put("YIM", (String)(user.getProfile().get(User.INFO_USER_IM_YIM)));
- ctx.put("MSNM",
(String)(user.getProfile().get(User.INFO_USER_IM_MSNM)));
- ctx.put("SKYPE",
(String)(user.getProfile().get(User.INFO_USER_IM_SKYPE)));
- ctx.put("SIGNATURE",
(String)(user.getProfile().get(User.INFO_USER_SIGNATURE)));
- ctx.put("LOCATION",
(String)(user.getProfile().get(User.INFO_USER_LOCATION)));
- ctx.put("OCCUPATION",
(String)(user.getProfile().get(User.INFO_USER_OCCUPATION)));
- ctx.put("INTERESTS",
(String)(user.getProfile().get(User.INFO_USER_INTERESTS)));
- ctx.put("EXTRA", (String)(user.getProfile().get(User.INFO_USER_EXTRA)));
- ctx.put("QUESTION",
(String)(user.getProfile().get(User.INFO_USER_SECURITY_QUESTION)));
- ctx.put("ANSWER",
(String)(user.getProfile().get(User.INFO_USER_SECURITY_ANSWER)));
+ ctx.put("GIVENNAME", (String)getProperty(user,
User.INFO_USER_NAME_GIVEN));
+ ctx.put("FAMILYNAME", (String)getProperty(user,
User.INFO_USER_NAME_FAMILY));
+ ctx.put("REALEMAIL", (String)getProperty(user,
User.INFO_USER_EMAIL_REAL));
+ ctx.put("FAKEEMAIL", (String)getProperty(user,
User.INFO_USER_EMAIL_FAKE));
+ ctx.put("THEME", (String)getProperty(user, User.INFO_USER_THEME));
+ ctx.put("VIEWREALEMAIL", ((String)getProperty(user,
User.INFO_USER_VIEW_EMAIL_VIEW_REAL)).equals("true") ?
"checked=\"checked\"" : "");
+ ctx.put("HOMEPAGE", (String)getProperty(user,User.INFO_USER_HOMEPAGE));
+ ctx.put("ICQ", (String)getProperty(user,User.INFO_USER_IM_ICQ));
+ ctx.put("AIM", (String)getProperty(user,User.INFO_USER_IM_AIM));
+ ctx.put("YIM", (String)getProperty(user,User.INFO_USER_IM_YIM));
+ ctx.put("MSNM", (String)getProperty(user,User.INFO_USER_IM_MSNM));
+ ctx.put("SKYPE", (String)getProperty(user,User.INFO_USER_IM_SKYPE));
+ ctx.put("SIGNATURE",
(String)getProperty(user,User.INFO_USER_SIGNATURE));
+ ctx.put("LOCATION", (String)getProperty(user,User.INFO_USER_LOCATION));
+ ctx.put("OCCUPATION",
(String)getProperty(user,User.INFO_USER_OCCUPATION));
+ ctx.put("INTERESTS",
(String)getProperty(user,User.INFO_USER_INTERESTS));
+ ctx.put("EXTRA", (String)getProperty(user,User.INFO_USER_EXTRA));
+ ctx.put("QUESTION",
(String)getProperty(user,User.INFO_USER_SECURITY_QUESTION));
+ ctx.put("ANSWER",
(String)getProperty(user,User.INFO_USER_SECURITY_ANSWER));
}
/**
@@ -867,25 +886,26 @@
//
if (givenName.trim().length() != 0)
{
- user.setGivenName(givenName);
+ setProperty(user, User.INFO_USER_NAME_GIVEN, givenName);
}
if (familyName.trim().length() != 0)
{
- user.setFamilyName(familyName);
+ setProperty(user, User.INFO_USER_NAME_FAMILY, familyName);
}
if (realEmail.trim().length() != 0)
{
- user.setRealEmail(realEmail);
+ setProperty(user, User.INFO_USER_EMAIL_REAL, realEmail);
}
if (fakeEmail.trim().length() != 0)
{
- user.setFakeEmail(fakeEmail);
+ setProperty(user, User.INFO_USER_EMAIL_FAKE, fakeEmail);
}
- user.setViewRealEmail(viewRealEmail);
+ setProperty(user, User.INFO_USER_VIEW_EMAIL_VIEW_REAL,
Boolean.valueOf(viewRealEmail));
+
if (changePassword)
{
user.updatePassword(pass1);
@@ -893,13 +913,13 @@
if (timezoneoffset.shortValue() != UNDEFINED_TIMEZONE)
{
- user.getProfile().put(User.INFO_USER_TIME_ZONE_OFFSET,
timezoneoffset.toString());
+ setProperty(user, User.INFO_USER_TIME_ZONE_OFFSET,
timezoneoffset.toString());
}
LocaleInfo localeInfo = LocaleInfo.decodeLocaleInfo(locale);
if (localeInfo != null)
{
- user.setPreferredLocale(localeInfo.getLocale());
+ setProperty(user, User.INFO_USER_LOCALE, localeInfo.getLocale());
}
putNonEmptyProperty(user, User.INFO_USER_THEME, theme);
@@ -927,7 +947,7 @@
portletHelper.setRenderParameter(resp, "FAMILYNAME", familyName);
portletHelper.setRenderParameter(resp, "REALEMAIL", realEmail);
portletHelper.setRenderParameter(resp, "FAKEEMAIL", fakeEmail);
- if (user.getViewRealEmail())
+ if (getProperty(user,
User.INFO_USER_VIEW_EMAIL_VIEW_REAL).toString().equals("true"))
{
portletHelper.setRenderParameter(resp, "VIEWREALEMAIL",
"checked=\"checked\"");
}
@@ -970,7 +990,7 @@
{
User user = userModule.findUserById(userId);
Set roles = roleModule.findRolesByNames(selectedRoles);
- roleModule.setRoles(user, roles);
+ membershipModule.assignRoles(user, roles);
}
catch (IllegalArgumentException e)
{
@@ -1002,7 +1022,7 @@
String clearPassword)
{
// gen link using username, encrypted pw, and a salt.
- String hash = Tools.md5AsHexString(user.getUserName() + user.getRegistrationDate()
+ UserPortletConstants.SALT);
+ String hash = Tools.md5AsHexString(user.getUserName() + getProperty(user,
User.INFO_USER_REGISTRATION_DATE).toString() + UserPortletConstants.SALT);
String rootURL = getPortletConfig().getInitParameter("emailDomain");
@@ -1060,10 +1080,11 @@
try
{
user = userModule.findUserById(userId);
- String hexCompare = Tools.md5AsHexString(user.getUserName() +
user.getRegistrationDate() + UserPortletConstants.SALT);
+ String hexCompare = Tools.md5AsHexString(user.getUserName() + getProperty(user,
User.INFO_USER_REGISTRATION_DATE).toString() + UserPortletConstants.SALT);
if (hash.equals(hexCompare))
{
- user.setEnabled(true);
+ //user.setEnabled(true);
+ setProperty(user, User.INFO_USER_ENABLED, Boolean.valueOf(true));
portletHelper.setI18nRenderParameter(req, resp,
UserPortletConstants.INFOMESSAGE, "INFOMESSAGE_CONGRATULATIONACTIVATED");
}
else
@@ -1079,10 +1100,21 @@
private String getFirstName(ResourceBundle bundle, User user)
{
- if ((user.getGivenName() != null) && (user.getGivenName().trim().length()
!= 0))
+ String givenName = null;
+
+ try
{
- return user.getGivenName().trim();
+ givenName = (String)userProfileModule.getProperty(user,
User.INFO_USER_NAME_GIVEN);
}
+ catch (IdentityException e)
+ {
+ log.error("cannot obtain user profile information: ", e);
+ }
+
+ if ((givenName != null) && (givenName.trim().length() != 0))
+ {
+ return givenName.trim();
+ }
else
{
return bundle.getString("NAMENOTAVAILABLE");
@@ -1091,10 +1123,22 @@
private String getLastName(ResourceBundle bundle, User user)
{
- if ((user.getFamilyName() != null) && (user.getFamilyName().trim().length()
!= 0))
+ String familyName = null;
+
+ try
{
- return user.getFamilyName().trim();
+ familyName = (String)userProfileModule.getProperty(user,
User.INFO_USER_NAME_FAMILY);
}
+ catch (IdentityException e)
+ {
+ log.error("cannot obtain user profile information: ", e);
+ }
+
+
+ if ((familyName != null) && (familyName.trim().length() != 0))
+ {
+ return familyName.trim();
+ }
else
{
return bundle.getString("NAMENOTAVAILABLE");
@@ -1104,22 +1148,35 @@
private String getFullName(ResourceBundle bundle,
User user)
{
- if ((user.getGivenName() != null) && (user.getGivenName().trim().length()
!= 0))
+ String givenName = null;
+ String familyName = null;
+
+ try
{
- if ((user.getFamilyName() != null) &&
(user.getFamilyName().trim().length() != 0))
+ givenName = (String)userProfileModule.getProperty(user,
User.INFO_USER_NAME_GIVEN);
+ familyName = (String)userProfileModule.getProperty(user,
User.INFO_USER_NAME_FAMILY);
+ }
+ catch (IdentityException e)
+ {
+ log.error("cannot obtain user profile information: ", e);
+ }
+
+ if ((givenName != null) && (givenName.trim().length() != 0))
+ {
+ if ((familyName != null) && (familyName.trim().length() != 0))
{
- return user.getGivenName() + " " + user.getFamilyName();
+ return givenName + " " + familyName;
}
else
{
- return user.getGivenName().trim();
+ return givenName.trim();
}
}
else
{
- if ((user.getFamilyName() != null) &&
(user.getFamilyName().trim().length() != 0))
+ if ((familyName != null) && (familyName.trim().length() != 0))
{
- return user.getFamilyName().trim();
+ return familyName.trim();
}
else
{
@@ -1132,7 +1189,16 @@
{
if ((value != null) && (value.trim().length() != 0))
{
- user.getProfile().put(key, value);
+ //user.getProfile().put(key, value);
+ try
+ {
+ userProfileModule.setProperty(user, key, value);
+ }
+ catch (IdentityException e)
+ {
+ //TODO: change to error
+ log.info("Cannot set profile property: ", e);
+ }
}
}
@@ -1153,6 +1219,43 @@
portletHelper.setRenderParameter(response, getOperationName(), OP_SHOWLISTUSERS);
}
+ private void setProperty(User user, String key, Object value)
+ {
+ try
+ {
+ userProfileModule.setProperty(user, key, value);
+ }
+ catch (IdentityException e)
+ {
+ //TODO: change to error
+ log.info("Cannot set profile property: ", e);
+ }
+ }
+
+ //Some temp solution to make this portlet not break with new stuff
+ private Object getProperty(User user, String key)
+ {
+ try
+ {
+ Object o = userProfileModule.getProperty(user, key);
+ if (o == null)
+ {
+ return new String();
+ }
+ else
+ {
+ return o.toString();
+ }
+ }
+ catch (IdentityException e)
+ {
+ log.error("Cannot get profile property: ", e);
+ }
+ return null;
+ }
+
+
+
/*
* private String getTimezoneOffsetString(short timezoneOffset) {
* StringBuffer timeZone = new StringBuffer(); for (int i = 0; i <
Modified: trunk/core/src/resources/portal-cms-sar/META-INF/jboss-service.xml
===================================================================
--- trunk/core/src/resources/portal-cms-sar/META-INF/jboss-service.xml 2006-12-17 14:17:34
UTC (rev 5882)
+++ trunk/core/src/resources/portal-cms-sar/META-INF/jboss-service.xml 2006-12-17 14:26:07
UTC (rev 5883)
@@ -57,8 +57,9 @@
<depends>jboss.jca:service=DataSourceBinding,name=@portal.datasource.name@</depends>
<depends>portal:service=JAASLoginModule</depends>
<depends>portal:service=Hibernate,type=CMS</depends>
+
<depends>portal:service=Module,type=IdentityServiceController</depends>
<depends optional-attribute-name="StackFactory"
proxy-type="attribute">portal:service=InterceptorStackFactory,type=Cms</depends>
- <depends optional-attribute-name="UserModule"
proxy-type="attribute">portal:service=Module,type=User</depends>
+ <!--<depends optional-attribute-name="UserModule"
proxy-type="attribute">portal:service=Module,type=User</depends>-->
<attribute name="DoChecking">true</attribute>
<attribute
name="DefaultContentLocation">portal/cms/conf/default-content/default/</attribute>
<attribute name="DefaultLocale">en</attribute>
@@ -478,9 +479,10 @@
</policy>
]]>
</attribute>
- <depends optional-attribute-name="RoleModule"
proxy-type="attribute">
+
<depends>portal:service=Module,type=IdentityServiceController</depends>
+ <!--<depends optional-attribute-name="RoleModule"
proxy-type="attribute">
portal:service=Module,type=Role
- </depends>
+ </depends>-->
</mbean>
<!-- logging interceptor -->
Modified: trunk/core/src/resources/portal-core-sar/META-INF/jboss-service.xml
===================================================================
--- trunk/core/src/resources/portal-core-sar/META-INF/jboss-service.xml 2006-12-17
14:17:34 UTC (rev 5882)
+++ trunk/core/src/resources/portal-core-sar/META-INF/jboss-service.xml 2006-12-17
14:26:07 UTC (rev 5883)
@@ -50,12 +50,7 @@
code="org.jboss.portal.identity.management.Identity"
name="portal.management:service=Management,type=Identity,name=Default"
- <depends
- optional-attribute-name="UserModule"
-
proxy-type="attribute">portal:service=Module,type=User</depends>
- <depends
- optional-attribute-name="RoleModule"
-
proxy-type="attribute">portal:service=Module,type=Role</depends>
+
<depends>portal:service=Module,type=IdentityServiceController</depends>
<xmbean/>
</mbean>
@@ -137,9 +132,7 @@
xmbean-dd=""
xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
<xmbean/>
- <depends
- optional-attribute-name="UserModule"
-
proxy-type="attribute">portal:service=Module,type=User</depends>
+
<depends>portal:service=Module,type=IdentityServiceController</depends>
</mbean>
<mbean
code="org.jboss.portal.core.aspects.server.LocaleInterceptor"
@@ -444,7 +437,7 @@
<attribute name="DoChecking">true</attribute>
<attribute
name="ConfigLocation">conf/hibernate/user/hibernate.cfg.xml</attribute>
<attribute
name="SetupLocation">conf/hibernate/user/setup.txt</attribute>
- <attribute
name="JNDIName">java:/portal/UserSessionFactory</attribute>
+ <attribute
name="JNDIName">java:/portal/IdentitySessionFactory</attribute>
</mbean>
<mbean
code="org.jboss.portal.jems.hibernate.SessionFactoryBinder"
@@ -490,8 +483,24 @@
<attribute
name="JNDIName">java:/portal/PortletSessionFactory</attribute>
</mbean>
+ <!--Identity-->
+ <mbean
+ code="org.jboss.portal.identity.IdentityServiceControllerImpl"
+ name="portal:service=Module,type=IdentityServiceController"
+ xmbean-dd=""
+ xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+ <xmbean/>
+ <depends>portal:service=Hibernate</depends>
+
<!--<depends>jboss.jca:service=DataSourceBinding,name=@portal.datasource.name@</depends>-->
+ <attribute
name="JndiName">java:/portal/IdentityServiceController</attribute>
+ <attribute name="RegisterMBeans">true</attribute>
+ <attribute
name="ConfigFile">conf/identity-config.xml</attribute>
+ <attribute
name="DefaultConfigFile">conf/identity/standardidentity-config.xml</attribute>
+ </mbean>
+
+
<!-- Modules -->
- <mbean
+ <!--<mbean
code="org.jboss.portal.identity.db.DBUserModuleImpl"
name="portal:service=Module,type=User"
xmbean-dd=""
@@ -511,7 +520,7 @@
<attribute
name="JNDIName">java:/portal/RoleModule</attribute>
<attribute
name="SessionFactoryJNDIName">java:/portal/UserSessionFactory</attribute>
</mbean>
-
+-->
<mbean
code="org.jboss.portal.core.impl.mail.MailModuleImpl"
name="portal:service=Module,type=Mail"
@@ -519,7 +528,7 @@
xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
<xmbean/>
<depends>jboss:service=Mail</depends>
- <depends>portal:service=Module,type=User</depends>
+
<depends>portal:service=Module,type=IdentityServiceController</depends>
<attribute name="QueueCapacity">-1</attribute>
<attribute name="Gateway">localhost</attribute>
<attribute name="SmtpUser"></attribute>
@@ -623,12 +632,7 @@
<depends
optional-attribute-name="InstanceContainer"
proxy-type="attribute">portal:container=Instance</depends>
- <depends
- optional-attribute-name="UserModule"
-
proxy-type="attribute">portal:service=Module,type=User</depends>
- <depends
- optional-attribute-name="RoleModule"
-
proxy-type="attribute">portal:service=Module,type=Role</depends>
+
<depends>portal:service=Module,type=IdentityServiceController</depends>
</mbean>
<!-- Command factories -->
Modified: trunk/core/src/resources/portal-core-sar/conf/hibernate/user/setup.txt
===================================================================
--- trunk/core/src/resources/portal-core-sar/conf/hibernate/user/setup.txt 2006-12-17
14:17:34 UTC (rev 5882)
+++ trunk/core/src/resources/portal-core-sar/conf/hibernate/user/setup.txt 2006-12-17
14:26:07 UTC (rev 5883)
@@ -1,8 +1,8 @@
// This bsh script setup the default content of the portal.
// It is called when the SessionFactoryBinder service has created a schema and needs to
populate it
import org.jboss.portal.common.util.Tools;
-import org.jboss.portal.identity.db.UserImpl;
-import org.jboss.portal.identity.db.RoleImpl;
+import org.jboss.portal.identity.db.HibernateUserImpl;
+import org.jboss.portal.identity.db.HibernateRoleImpl;
try
{
@@ -10,11 +10,11 @@
tx = session.beginTransaction();
//
- RoleImpl adminRole = new RoleImpl("Admin", "Administrators");
- RoleImpl userRole = new RoleImpl("User", "Users");
+ HibernateRoleImpl adminRole = new HibernateRoleImpl("Admin",
"Administrators");
+ HibernateRoleImpl userRole = new HibernateRoleImpl("User",
"Users");
//
- UserImpl admin = new UserImpl("admin");
+ HibernateUserImpl admin = new HibernateUserImpl("admin");
admin.setPassword(Tools.md5AsHexString("admin"));
admin.setRealEmail("admin(a)portal.com");
admin.setViewRealEmail(true);
@@ -25,7 +25,7 @@
adminRole.getUsers().add(admin);
//
- UserImpl user = new UserImpl("user");
+ HibernateUserImpl user = new HibernateUserImpl("user");
user.setPassword(Tools.md5AsHexString("user"));
user.setRealEmail("user(a)portal.com");
user.setViewRealEmail(true);
Added: trunk/core/src/resources/portal-core-sar/conf/identity/ldap_identity-config.xml
===================================================================
---
trunk/core/src/resources/portal-core-sar/conf/identity/ldap_identity-config.xml 2006-12-17
14:17:34 UTC (rev 5882)
+++
trunk/core/src/resources/portal-core-sar/conf/identity/ldap_identity-config.xml 2006-12-17
14:26:07 UTC (rev 5883)
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ~ JBoss, a division of Red Hat ~
+ ~ Copyright 2006, Red Hat Middleware, LLC, and individual ~
+ ~ contributors as indicated by the @authors tag. See the ~
+ ~ copyright.txt in the distribution for a full listing of ~
+ ~ individual contributors. ~
+ ~ ~
+ ~ This is free software; you can redistribute it and/or modify it ~
+ ~ under the terms of the GNU Lesser General Public License as ~
+ ~ published by the Free Software Foundation; either version 2.1 of ~
+ ~ the License, or (at your option) any later version. ~
+ ~ ~
+ ~ This software is distributed in the hope that it will be useful, ~
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of ~
+ ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ~
+ ~ Lesser General Public License for more details. ~
+ ~ ~
+ ~ You should have received a copy of the GNU Lesser General Public ~
+ ~ License along with this software; if not, write to the Free ~
+ ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ~
+ ~ 02110-1301 USA, or see the FSF site:
http://www.fsf.org. ~
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+ <!--<!DOCTYPE identity-configuration PUBLIC
+ "-//JBoss Portal//DTD JBoss Identity Configuration 1.0//EN"
+ "http://www.jboss.org/portal/dtd/identity-config_1_0.dtd">-->
+
+<identity-configuration>
+ <datasources>
+ <datasource>
+ <name>LDAP</name>
+ <config>
+ <option>
+ <name>host</name>
+ <value>localhost</value>
+ </option>
+ <option>
+ <name>port</name>
+ <value>10389</value>
+ </option>
+ <option>
+ <name>adminDN</name>
+ <value>cn=Directory Manager</value>
+ </option>
+ <option>
+ <name>adminPassword</name>
+ <value>password</value>
+ </option>
+ </config>
+ </datasource>
+ </datasources>
+ <modules>
+ <module>
+ <!--type used to correctly map in IdentityContext registry-->
+ <type>User</type>
+ <implementation>LDAP</implementation>
+ <config/>
+ </module>
+ <module>
+ <type>Role</type>
+ <implementation>LDAP</implementation>
+ <config/>
+ </module>
+ <module>
+ <type>Membership</type>
+ <implementation>LDAP</implementation>
+ <config/>
+ </module>
+
+ <module>
+ <type>UserProfile</type>
+ <implementation>DELEGATING</implementation>
+ <config>
+ <option>
+ <name>profileConfigFile</name>
+ <value>conf/profile-config.xml</value>
+ </option>
+ <option>
+ <name>ldapModuleJNDIName</name>
+ <value>java:/portal/LDAPUserProfileModule</value>
+ </option>
+ </config>
+ </module>
+ <module>
+ <type>DBDelegateUserProfile</type>
+ <implementation>DB</implementation>
+ <config/>
+ </module>
+ <module>
+ <type>LDAPDelegateUserProfile</type>
+ <implementation>LDAP</implementation>
+ <config/>
+ </module>
+ </modules>
+
+ <options>
+ <option-group>
+ <group-name>common</group-name>
+ <option>
+ <name>userContainerDN</name>
+
<value>ou=People,dc=testsuite,dc=portal,dc=qa,dc=atl,dc=jboss,dc=com</value>
+ </option>
+ <option>
+ <name>roleContainerDN</name>
+
<value>ou=Roles,dc=testsuite,dc=portal,dc=qa,dc=atl,dc=jboss,dc=com</value>
+ </option>
+ </option-group>
+ </options>
+</identity-configuration>
\ No newline at end of file
Added: trunk/core/src/resources/portal-core-sar/conf/identity/standardidentity-config.xml
===================================================================
---
trunk/core/src/resources/portal-core-sar/conf/identity/standardidentity-config.xml 2006-12-17
14:17:34 UTC (rev 5882)
+++
trunk/core/src/resources/portal-core-sar/conf/identity/standardidentity-config.xml 2006-12-17
14:26:07 UTC (rev 5883)
@@ -0,0 +1,503 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ~ JBoss, a division of Red Hat ~
+ ~ Copyright 2006, Red Hat Middleware, LLC, and individual ~
+ ~ contributors as indicated by the @authors tag. See the ~
+ ~ copyright.txt in the distribution for a full listing of ~
+ ~ individual contributors. ~
+ ~ ~
+ ~ This is free software; you can redistribute it and/or modify it ~
+ ~ under the terms of the GNU Lesser General Public License as ~
+ ~ published by the Free Software Foundation; either version 2.1 of ~
+ ~ the License, or (at your option) any later version. ~
+ ~ ~
+ ~ This software is distributed in the hope that it will be useful, ~
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of ~
+ ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ~
+ ~ Lesser General Public License for more details. ~
+ ~ ~
+ ~ You should have received a copy of the GNU Lesser General Public ~
+ ~ License along with this software; if not, write to the Free ~
+ ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ~
+ ~ 02110-1301 USA, or see the FSF site:
http://www.fsf.org. ~
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+
+<!--
+<!DOCTYPE identity-configuration PUBLIC
+ "-//JBoss Portal//DTD JBoss Identity Configuration 1.0//EN"
+ "http://www.jboss.org/portal/dtd/identity-config_1_0.dtd">
+-->
+
+<identity-configuration>
+ <datasources>
+ <datasource>
+ <name>LDAP</name>
+ <!--name of service and class for creating mbean-->
+
<service-name>portal:service=Module,type=LDAPConnectionContext</service-name>
+ <class>org.jboss.portal.identity.ldap.LDAPConnectionContext</class>
+ <config>
+ <option>
+ <name>host</name>
+ <value>jboss.com</value>
+ </option>
+ <option>
+ <name>port</name>
+ <value>389</value>
+ </option>
+ <option>
+ <name>contextFactory</name>
+ <value>com.sun.jndi.ldap.LdapCtxFactory</value>
+ </option>
+ <option>
+ <name>adminDN</name>
+ <value>cn=Directory Manager</value>
+ </option>
+ <option>
+ <name>adminPassword</name>
+ <value>password</value>
+ </option>
+ <option>
+ <name>jndiName</name>
+ <value>java:/portal/LDAPConnectionContext</value>
+ </option>
+ </config>
+ </datasource>
+ <!--<datasource>
+ <name>DB</name>
+ <service-name>portal:service=Hibernate</service-name>
+
<class>org.jboss.portal.identity2.experimental.db.IdentitySessionFactoryBinder</class>
+ <config>
+ <option>
+ <name>doChecking</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>configLocation</name>
+ <value>hibernate-single.cfg.xml</value>
+ </option>
+ --><!--<option>
+ <name>setupLocation</name>
+ <value>conf/hibernate/user/setup.txt</value>
+ </option>--><!--
+ <option>
+ <name>jNDIName</name>
+ <value>java:/portal/UserSessionFactory</value>
+ </option>
+ <option>
+ <name>profileConfigFile</name>
+ <value>profile-config.xml</value>
+ </option>
+ <option>
+ <name>mappingTemplateFile</name>
+ <value>domain-template.hbm.xml</value>
+ </option>
+ <option>
+ <name>mappingOutputFile</name>
+ <value>domain-identity.hbm.xml</value>
+ </option>
+ <option>
+ <name>mappingPattern</name>
+ <value><![CDATA[<property name="@name@"
column="@column@" type="java.lang.String" update="true"
insert="true" unique="false"/>]]></value>
+ </option>
+ </config>
+ </datasource>-->
+ </datasources>
+ <modules>
+
+ <module>
+ <!--type used to correctly map in IdentityContext registry-->
+ <type>UserProfile</type>
+ <implementation>DELEGATING</implementation>
+
+ <!--name of service and class for creating mbean-->
+ <service-name>portal:service=Module,type=UserProfile</service-name>
+
<class>org.jboss.portal.identity.DelegatingUserProfileModuleImpl</class>
+ <!--set of options that are passed to a class constructor-->
+ <config>
+ <option>
+ <name>jndiName</name>
+ <value>java:/portal/UserProfileModule</value>
+ </option>
+ <option>
+ <name>dbModuleJNDIName</name>
+ <value>java:/portal/DBUserProfileModule</value>
+ </option>
+ </config>
+ </module>
+
+
+
+ <module>
+ <!--type used to correctly map in IdentityContext registry-->
+ <type>User</type>
+ <implementation>DB</implementation>
+
+ <!--name of service and class for creating mbean-->
+ <service-name>portal:service=Module,type=User</service-name>
+ <class>org.jboss.portal.identity.db.HibernateUserModuleImpl</class>
+
+ <!--set of options that are passed to a class constructor-->
+ <config>
+ <option>
+ <name>sessionFactoryJNDIName</name>
+ <value>java:/portal/IdentitySessionFactory</value>
+ </option>
+ <option>
+ <name>jndiName</name>
+ <value>java:/portal/UserModule</value>
+ </option>
+ </config>
+ </module>
+
+ <module>
+ <!--type used to correctly map in IdentityContext registry-->
+ <type>Role</type>
+ <implementation>DB</implementation>
+
+ <!--name of service and class for creating mbean-->
+ <service-name>portal:service=Module,type=Role</service-name>
+ <class>org.jboss.portal.identity.db.HibernateRoleModuleImpl</class>
+
+ <!--set of options that are passed to a class constructor-->
+ <config>
+ <option>
+ <name>sessionFactoryJNDIName</name>
+ <value>java:/portal/IdentitySessionFactory</value>
+ </option>
+ <option>
+ <name>jndiName</name>
+ <value>java:/portal/RoleModule</value>
+ </option>
+ </config>
+ </module>
+
+ <module>
+ <!--type used to correctly map in IdentityContext registry-->
+ <type>Membership</type>
+ <implementation>DB</implementation>
+
+ <!--name of service and class for creating mbean-->
+ <service-name>portal:service=Module,type=Membership</service-name>
+
<class>org.jboss.portal.identity.db.HibernateMembershipModuleImpl</class>
+
+ <!--set of options that are passed to a class constructor-->
+ <config>
+ <option>
+ <name>sessionFactoryJNDIName</name>
+ <value>java:/portal/IdentitySessionFactory</value>
+ </option>
+ <option>
+ <name>jndiName</name>
+ <value>java:/portal/MembershipModule</value>
+ </option>
+ </config>
+ </module>
+
+ <module>
+ <!--type used to correctly map in IdentityContext registry-->
+ <type>DBDelegateUserProfile</type>
+ <implementation>DB</implementation>
+
+ <!--name of service and class for creating mbean-->
+
<service-name>portal:service=Module,type=DBUserProfile</service-name>
+
<class>org.jboss.portal.identity.db.HibernateUserProfileModuleImpl</class>
+
+ <!--set of options that are passed to a class constructor-->
+ <config>
+ <option>
+ <name>sessionFactoryJNDIName</name>
+ <value>java:/portal/IdentitySessionFactory</value>
+ </option>
+ <option>
+ <name>jndiName</name>
+ <value>java:/portal/DBUserProfileModule</value>
+ </option>
+ </config>
+ </module>
+
+ <!--for ldap modules...-->
+ <module>
+ <!--type used to correctly map in IdentityContext registry-->
+ <type>User</type>
+ <implementation>LDAP</implementation>
+
+ <!--name of service and class for creating mbean-->
+ <service-name>portal:service=Module,type=User</service-name>
+ <class>org.jboss.portal.identity.ldap.LDAPUserModuleImpl</class>
+
+ <!--set of options that are passed to a class constructor-->
+ <config>
+ <option>
+ <name>jndiName</name>
+ <value>java:/portal/UserModule</value>
+ </option>
+ <option>
+ <name>connectionJNDIName</name>
+ <value>java:/portal/LDAPConnectionContext</value>
+ </option>
+ </config>
+ </module>
+
+ <module>
+ <!--type used to correctly map in IdentityContext registry-->
+ <type>Role</type>
+ <implementation>LDAP</implementation>
+
+ <!--name of service and class for creating mbean-->
+ <service-name>portal:service=Module,type=Role</service-name>
+ <class>org.jboss.portal.identity.ldap.LDAPRoleModuleImpl</class>
+
+ <!--set of options that are passed to a class constructor-->
+ <config>
+ <option>
+ <name>jndiName</name>
+ <value>java:/portal/RoleModule</value>
+ </option>
+ <option>
+ <name>connectionJNDIName</name>
+ <value>java:/portal/LDAPConnectionContext</value>
+ </option>
+ </config>
+ </module>
+
+ <module>
+ <!--type used to correctly map in IdentityContext registry-->
+ <type>Membership</type>
+ <implementation>LDAP</implementation>
+
+ <!--name of service and class for creating mbean-->
+ <service-name>portal:service=Module,type=Membership</service-name>
+
<class>org.jboss.portal.identity.ldap.LDAPStaticGroupMembershipModuleImpl</class>
+
+ <!--set of options that are passed to a class constructor-->
+ <config>
+ <option>
+ <name>jndiName</name>
+ <value>java:/portal/MembershipModule</value>
+ </option>
+ <option>
+ <name>connectionJNDIName</name>
+ <value>java:/portal/LDAPConnectionContext</value>
+ </option>
+ </config>
+ </module>
+
+ <module>
+ <!--type used to correctly map in IdentityContext registry-->
+ <type>LDAPDelegateUserProfile</type>
+ <implementation>LDAP</implementation>
+
+ <!--name of service and class for creating mbean-->
+
<service-name>portal:service=Module,type=LDAPUserProfile</service-name>
+
<class>org.jboss.portal.identity.ldap.LDAPUserProfileModuleImpl</class>
+
+ <!--set of options that are passed to a class constructor-->
+ <config>
+ <!--<option>
+ <name>LDAPConnectionJNDIName</name>
+ <value>java:/portal/UserSessionFactory</value>
+ </option>-->
+ <!--Hibernate mappings for db level store (dynamic properties not mapped
as ldap attributes)-->
+ <!--<option>
+ <name>SessionFactoryJNDIName</name>
+ <value>java:/portal/PropertyStoreSessionFactory</value>
+ </option>
+ <option>
+ <name>profileMappings</name>
+ <value>ldap-profile.xml</value>
+ </option>-->
+ <option>
+ <name>jndiName</name>
+ <value>java:/portal/LDAPUserProfileModule</value>
+ </option>
+ <option>
+ <name>connectionJNDIName</name>
+ <value>java:/portal/LDAPConnectionContext</value>
+ </option>
+ </config>
+ </module>
+
+ </modules>
+
+ <options>
+ <!--Common options section-->
+ <option-group>
+ <group-name>common</group-name>
+ <option>
+ <name>userContainerDN</name>
+ <value>ou=People,dc=example,dc=com</value>
+ </option>
+ <option>
+ <name>uidAttributeId</name>
+ <value>uid</value>
+ </option>
+ <option>
+ <name>passwordAttributeID</name>
+ <value>userPassword</value>
+ </option>
+ <option>
+ <name>hashAlgorithm</name>
+ <value>MD5</value>
+ </option>
+ <option>
+ <name>hashEncoding</name>
+ <value>hex</value>
+ </option>
+ <option>
+ <name>roleContainerDN</name>
+ <value>ou=Roles,dc=example,dc=com</value>
+ </option>
+ <option>
+ <name>ridAttributeId</name>
+ <value>cn</value>
+ </option>
+ <option>
+ <name>roleDisplayNameAttributeID</name>
+ <value>cn</value>
+ </option>
+ <option>
+ <name>membershipAttributeID</name>
+ <value>member</value>
+ </option>
+ <option>
+ <name>membershipAttributeIsDN</name>
+ <value>true</value>
+ </option>
+ </option-group>
+ <option-group>
+ <group-name>userCreateAttibutes</group-name>
+ <option>
+ <name>objectClass</name>
+ <value>top</value>
+ <value>uidObject</value>
+ <value>person</value>
+ <value>inetUser</value>
+ </option>
+ <!--Schema requires those to have initial value-->
+ <option>
+ <name>cn</name>
+ <value>none</value>
+ </option>
+ <option>
+ <name>sn</name>
+ <value>none</value>
+ </option>
+ </option-group>
+ <option-group>
+ <group-name>roleCreateAttibutes</group-name>
+ <option>
+ <name>objectClass</name>
+ <value>top</value>
+ <value>groupOfNames</value>
+ </option>
+ <!--Schema requires those to have initial value-->
+ <option>
+ <name>cn</name>
+ <value>none</value>
+ </option>
+ <!--Some directory servers require this attribute to be valid DN-->
+ <!--For safety reasons point to the admin user here-->
+ <option>
+ <name>member</name>
+
<value>uid=dummynonexistinguser,ou=People,dc=jboss,dc=org</value>
+ </option>
+ </option-group>
+ <option-group>
+ <group-name>userProfileMappings</group-name>
+ <option>
+ <name>portal.user.name.given</name>
+ <!--inetOrgPerson-->
+ <value>givenName</value>
+ </option>
+ <!--<option>
+ <name>portal.user.name.family</name>
+ <value></value>
+ </option>
+ <option>
+ <name>portal.user.location</name>
+ <value></value>
+ </option>-->
+ <option>
+ <name>portal.user.occupation</name>
+ <!--inetOrgPerson-->
+ <value>title</value>
+ </option>
+ <!--<option>
+ <name>portal.user.extra</name>
+ <value></value>
+ </option>-->
+ <option>
+ <name>portal.user.signature</name>
+ <!--newPilotPerson-->
+ <value>personalSignature</value>
+ </option>
+ <!--<option>
+ <name>portal.user.interests</name>
+ <value></value>
+ </option>-->
+ <option>
+ <name>portal.user.locale</name>
+ <!--inetOrgPerson-->
+ <value>localityName</value><!--or prefferedLanguage-->
+ </option>
+ <!--<option>
+ <name>portal.user.im.icq</name>
+ <value></value>
+ </option>
+ <option>
+ <name>portal.user.im.aim</name>
+ <value></value>
+ </option>
+ <option>
+ <name>portal.user.im.msnm</name>
+ <value></value>
+ </option>
+ <option>
+ <name>portal.user.im.yim</name>
+ <value></value>
+ </option>
+ <option>
+ <name>portal.user.im.skype</name>
+ <value></value>
+ </option>-->
+ <option>
+ <name>portal.user.homepage</name>
+ <!--inetOrgPerson-->
+ <value>seeAlso</value>
+ </option>
+ <!--<option>
+ <name>portal.user.time-zone-offset</name>
+ <value></value>
+ </option>
+ <option>
+ <name>portal.user.theme</name>
+ <value></value>
+ </option>
+ <option>
+ <name>portal.user.security.question</name>
+ <value></value>
+ </option>
+ <option>
+ <name>portal.user.security.answer</name>
+ <value></value>
+ </option>
+ <option>
+ <name>portal.user.email.fake</name>
+ <value></value>
+ </option>
+ <option>
+ <name>portal.user.email.view-real</name>
+ <value></value>
+ </option>
+ <option>
+ <name>portal.user.last-login-date</name>
+ <value></value>
+ </option>
+ <option>
+ <name>portal.user.registration-date</name>
+ <value></value>
+ </option>-->
+ </option-group>
+ </options>
+</identity-configuration>
\ No newline at end of file
Added: trunk/core/src/resources/portal-core-sar/conf/identity-config.xml
===================================================================
--- trunk/core/src/resources/portal-core-sar/conf/identity-config.xml 2006-12-17 14:17:34
UTC (rev 5882)
+++ trunk/core/src/resources/portal-core-sar/conf/identity-config.xml 2006-12-17 14:26:07
UTC (rev 5883)
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ~ JBoss, a division of Red Hat ~
+ ~ Copyright 2006, Red Hat Middleware, LLC, and individual ~
+ ~ contributors as indicated by the @authors tag. See the ~
+ ~ copyright.txt in the distribution for a full listing of ~
+ ~ individual contributors. ~
+ ~ ~
+ ~ This is free software; you can redistribute it and/or modify it ~
+ ~ under the terms of the GNU Lesser General Public License as ~
+ ~ published by the Free Software Foundation; either version 2.1 of ~
+ ~ the License, or (at your option) any later version. ~
+ ~ ~
+ ~ This software is distributed in the hope that it will be useful, ~
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of ~
+ ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ~
+ ~ Lesser General Public License for more details. ~
+ ~ ~
+ ~ You should have received a copy of the GNU Lesser General Public ~
+ ~ License along with this software; if not, write to the Free ~
+ ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ~
+ ~ 02110-1301 USA, or see the FSF site:
http://www.fsf.org. ~
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+ <!--<!DOCTYPE identity-configuration PUBLIC
+ "-//JBoss Portal//DTD JBoss Identity Configuration 1.0//EN"
+ "http://www.jboss.org/portal/dtd/identity-config_1_0.dtd">-->
+
+<identity-configuration>
+ <datasources/>
+ <modules>
+ <module>
+ <!--type used to correctly map in IdentityContext registry-->
+ <type>User</type>
+ <implementation>DB</implementation>
+ <config/>
+ </module>
+ <module>
+ <!--type used to correctly map in IdentityContext registry-->
+ <type>Role</type>
+ <implementation>DB</implementation>
+ <config/>
+ </module>
+ <module>
+ <!--type used to correctly map in IdentityContext registry-->
+ <type>Membership</type>
+ <implementation>DB</implementation>
+ <config/>
+ </module>
+ <module>
+ <!--type used to correctly map in IdentityContext registry-->
+ <type>UserProfile</type>
+ <implementation>DELEGATING</implementation>
+ <config>
+ <option>
+ <name>profileConfigFile</name>
+ <value>conf/profile-config.xml</value>
+ </option>
+ </config>
+ </module>
+ <module>
+ <type>DBDelegateUserProfile</type>
+ <implementation>DB</implementation>
+ <config/>
+ </module>
+ </modules>
+ <options/>
+</identity-configuration>
\ No newline at end of file
Modified: trunk/core/src/resources/portal-core-sar/conf/login-config.xml
===================================================================
--- trunk/core/src/resources/portal-core-sar/conf/login-config.xml 2006-12-17 14:17:34 UTC
(rev 5882)
+++ trunk/core/src/resources/portal-core-sar/conf/login-config.xml 2006-12-17 14:26:07 UTC
(rev 5883)
@@ -39,6 +39,7 @@
<module-option
name="unauthenticatedIdentity">guest</module-option>
<module-option
name="userModuleJNDIName">java:/portal/UserModule</module-option>
<module-option
name="roleModuleJNDIName">java:/portal/RoleModule</module-option>
+ <module-option
name="membershipModuleJNDIName">java:/portal/MembershipModule</module-option>
<module-option
name="additionalRole">Authenticated</module-option>
<module-option
name="password-stacking">useFirstPass</module-option>
</login-module>
Added: trunk/core/src/resources/portal-core-sar/conf/profile-config.xml
===================================================================
--- trunk/core/src/resources/portal-core-sar/conf/profile-config.xml 2006-12-17 14:17:34
UTC (rev 5882)
+++ trunk/core/src/resources/portal-core-sar/conf/profile-config.xml 2006-12-17 14:26:07
UTC (rev 5883)
@@ -0,0 +1,384 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ~ JBoss, a division of Red Hat ~
+ ~ Copyright 2006, Red Hat Middleware, LLC, and individual ~
+ ~ contributors as indicated by the @authors tag. See the ~
+ ~ copyright.txt in the distribution for a full listing of ~
+ ~ individual contributors. ~
+ ~ ~
+ ~ This is free software; you can redistribute it and/or modify it ~
+ ~ under the terms of the GNU Lesser General Public License as ~
+ ~ published by the Free Software Foundation; either version 2.1 of ~
+ ~ the License, or (at your option) any later version. ~
+ ~ ~
+ ~ This software is distributed in the hope that it will be useful, ~
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of ~
+ ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ~
+ ~ Lesser General Public License for more details. ~
+ ~ ~
+ ~ You should have received a copy of the GNU Lesser General Public ~
+ ~ License along with this software; if not, write to the Free ~
+ ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA ~
+ ~ 02110-1301 USA, or see the FSF site:
http://www.fsf.org. ~
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+ <!--<!DOCTYPE profile PUBLIC
+ "-//JBoss Portal//DTD JBoss User Profile Configuration 1.0//EN"
+ "http://www.jboss.org/portal/dtd/profile-config_1_0.dtd">-->
+
+<profile>
+ <!--Database mapping - jbp_user table column mapping-->
+ <property>
+ <name>portal.user.name.given</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>mandatory</usage>
+ <display-name xml:lang="en">Name</display-name>
+ <description xml:lang="en">The user name</description>
+ <mapping>
+ <database>
+ <type>column</type>
+ <value>jbp_username</value>
+ </database>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.name.family</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>mandatory</usage>
+ <display-name xml:lang="en">Family name</display-name>
+ <description xml:lang="en">The user family
name</description>
+ <mapping>
+ <database>
+ <type>column</type>
+ <value>jbp_familyname</value>
+ </database>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.email.real</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>mandatory</usage>
+ <display-name xml:lang="en">Email</display-name>
+ <description xml:lang="en">The user real email</description>
+ <mapping>
+ <database>
+ <type>column</type>
+ <value>jbp_realemail</value>
+ </database>
+ <ldap>
+ <value>mail</value>
+ </ldap>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.email.fake</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>mandatory</usage>
+ <display-name xml:lang="en">Fake email</display-name>
+ <description xml:lang="en">The user fake email</description>
+ <mapping>
+ <database>
+ <type>column</type>
+ <value>jbp_fakeemail</value>
+ </database>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.registration-date</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>mandatory</usage>
+ <display-name xml:lang="en">Registration date</display-name>
+ <description xml:lang="en">Registration date of
user</description>
+ <mapping>
+ <database>
+ <type>column</type>
+ <value>jbp_regdate</value>
+ </database>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.email.view-real</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>mandatory</usage>
+ <display-name xml:lang="en">View real email</display-name>
+ <description xml:lang="en">Is user real email displayed in
public</description>
+ <mapping>
+ <database>
+ <type>column</type>
+ <value>jbp_viewrealemail</value>
+ </database>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.enabled</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>mandatory</usage>
+ <display-name xml:lang="en">Enabled</display-name>
+ <description xml:lang="en">User enabled state</description>
+ <mapping>
+ <database>
+ <type>column</type>
+ <value>jbp_enabled</value>
+ </database>
+ </mapping>
+ </property>
+
+ <!--Dynamic database store-->
+ <property>
+ <name>portal.user.location</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>optional</usage>
+ <display-name xml:lang="en">Location</display-name>
+ <description xml:lang="en">The user location</description>
+ <mapping>
+ <database>
+ <type>dynamic</type>
+ <value>portal.user.location</value>
+ </database>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.occupation</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>optional</usage>
+ <display-name xml:lang="en">Occupation</display-name>
+ <description xml:lang="en">The user occupation</description>
+ <mapping>
+ <database>
+ <type>dynamic</type>
+ <value>portal.user.occupation</value>
+ </database>
+ <ldap>
+ <value>title</value>
+ </ldap>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.extra</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>optional</usage>
+ <display-name xml:lang="en">Extra info</display-name>
+ <description xml:lang="en">Extra informtion about
user</description>
+ <mapping>
+ <database>
+ <type>dynamic</type>
+ <value>portal.user.extra</value>
+ </database>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.signature</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>optional</usage>
+ <display-name xml:lang="en">Signature</display-name>
+ <description xml:lang="en">The user signature</description>
+ <mapping>
+ <database>
+ <type>dynamic</type>
+ <value>portal.user.signature</value>
+ </database>
+ <ldap>
+ <value>personalSignature</value>
+ </ldap>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.interests</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>optional</usage>
+ <display-name xml:lang="en">Interests</display-name>
+ <description xml:lang="en">The user interests</description>
+ <mapping>
+ <database>
+ <type>dynamic</type>
+ <value>portal.user.interests</value>
+ </database>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.locale</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>optional</usage>
+ <display-name xml:lang="en">Locale</display-name>
+ <description xml:lang="en">The user locale</description>
+ <mapping>
+ <database>
+ <type>dynamic</type>
+ <value>portal.user.locale</value>
+ </database>
+ <ldap>
+ <value>localityName</value>
+ </ldap>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.im.icq</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>optional</usage>
+ <display-name xml:lang="en">ICQ</display-name>
+ <description xml:lang="en">The user ICQ id</description>
+ <mapping>
+ <database>
+ <type>dynamic</type>
+ <value>portal.user.im.icq</value>
+ </database>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.im.aim</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>optional</usage>
+ <display-name xml:lang="en">AIM</display-name>
+ <description xml:lang="en">The user AIM id</description>
+ <mapping>
+ <database>
+ <type>dynamic</type>
+ <value>portal.user.im.aim</value>
+ </database>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.im.msnm</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>optional</usage>
+ <display-name xml:lang="en">MSN</display-name>
+ <description xml:lang="en">The user MSN id</description>
+ <mapping>
+ <database>
+ <type>dynamic</type>
+ <value>portal.user.im.msnm</value>
+ </database>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.im.yim</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>optional</usage>
+ <display-name xml:lang="en">YIM</display-name>
+ <description xml:lang="en">The user YIM id</description>
+ <mapping>
+ <database>
+ <type>dynamic</type>
+ <value>portal.user.im.yim</value>
+ </database>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.im.skype</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>optional</usage>
+ <display-name xml:lang="en">Skype</display-name>
+ <description xml:lang="en">The user skype id</description>
+ <mapping>
+ <database>
+ <type>dynamic</type>
+ <value>portal.user.im.skype</value>
+ </database>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.homepage</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>optional</usage>
+ <display-name xml:lang="en">Homepage</display-name>
+ <description xml:lang="en">The user homepage</description>
+ <mapping>
+ <database>
+ <type>dynamic</type>
+ <value>portal.user.homepage</value>
+ </database>
+ <ldap>
+ <value>seeAlso</value>
+ </ldap>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.time-zone-offset</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>optional</usage>
+ <display-name xml:lang="en">Timezone</display-name>
+ <description xml:lang="en">Timezone in users
location</description>
+ <mapping>
+ <database>
+ <type>dynamic</type>
+ <value>portal.user.time-zone-offset</value>
+ </database>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.theme</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>optional</usage>
+ <display-name xml:lang="en">Theme</display-name>
+ <description xml:lang="en">Portlat theme that user is
using</description>
+ <mapping>
+ <database>
+ <type>dynamic</type>
+ <value>portal.user.theme</value>
+ </database>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.security.question</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>optional</usage>
+ <display-name xml:lang="en">Password Question</display-name>
+ <description xml:lang="en">Portal password recovery
question</description>
+ <mapping>
+ <database>
+ <type>dynamic</type>
+ <value>portal.user.security.question</value>
+ </database>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.security.answer</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>optional</usage>
+ <display-name xml:lang="en">Password Answer</display-name>
+ <description xml:lang="en">Portal password recovery
answer</description>
+ <mapping>
+ <database>
+ <type>dynamic</type>
+ <value>portal.user.security.answer</value>
+ </database>
+ </mapping>
+ </property>
+ <property>
+ <name>portal.user.last-login-date</name>
+ <type>java.lang.String</type>
+ <access-mode>read-write</access-mode>
+ <usage>optional</usage>
+ <display-name xml:lang="en">Last login</display-name>
+ <description xml:lang="en">The date of users last
login</description>
+ <mapping>
+ <database>
+ <type>dynamic</type>
+ <value>portal.user.last-login-date</value>
+ </database>
+ </mapping>
+ </property>
+</profile>
\ No newline at end of file
Modified: trunk/core/src/resources/portal-core-war/WEB-INF/jboss-portlet.xml
===================================================================
--- trunk/core/src/resources/portal-core-war/WEB-INF/jboss-portlet.xml 2006-12-17 14:17:34
UTC (rev 5882)
+++ trunk/core/src/resources/portal-core-war/WEB-INF/jboss-portlet.xml 2006-12-17 14:26:07
UTC (rev 5883)
@@ -135,6 +135,16 @@
<service-ref>:service=Module,type=Role</service-ref>
</service>
<service>
+ <service-name>UserProfileModule</service-name>
+
<service-class>org.jboss.portal.identity.UserProfileModule</service-class>
+ <service-ref>:service=Module,type=UserProfile</service-ref>
+ </service>
+ <service>
+ <service-name>MembershipModule</service-name>
+
<service-class>org.jboss.portal.identity.MembershipModule</service-class>
+ <service-ref>:service=Module,type=Membership</service-ref>
+ </service>
+ <service>
<service-name>MailModule</service-name>
<service-class>org.jboss.portal.core.modules.MailModule</service-class>
<service-ref>:service=Module,type=Mail</service-ref>
Modified: trunk/core/src/resources/portal-samples-war/WEB-INF/jboss-portlet.xml
===================================================================
--- trunk/core/src/resources/portal-samples-war/WEB-INF/jboss-portlet.xml 2006-12-17
14:17:34 UTC (rev 5882)
+++ trunk/core/src/resources/portal-samples-war/WEB-INF/jboss-portlet.xml 2006-12-17
14:26:07 UTC (rev 5883)
@@ -134,6 +134,16 @@
<service-ref>:service=Module,type=Role</service-ref>
</service>
<service>
+ <service-name>UserProfileModule</service-name>
+
<service-class>org.jboss.portal.identity.UserProfileModule</service-class>
+ <service-ref>:service=Module,type=UserProfile</service-ref>
+ </service>
+ <service>
+ <service-name>MembershipModule</service-name>
+
<service-class>org.jboss.portal.identity.MembershipModule</service-class>
+ <service-ref>:service=Module,type=Membership</service-ref>
+ </service>
+ <service>
<service-name>MailModule</service-name>
<service-class>org.jboss.portal.core.modules.MailModule</service-class>
<service-ref>:service=Module,type=Mail</service-ref>