gatein SVN: r2457 - portal/trunk/component/portal/src/test/java/org/exoplatform/portal/config.
by do-not-reply@jboss.org
Author: mwringe
Date: 2010-04-01 11:53:59 -0400 (Thu, 01 Apr 2010)
New Revision: 2457
Modified:
portal/trunk/component/portal/src/test/java/org/exoplatform/portal/config/TestDataStorage.java
Log:
GTNPORTAL-858: test to check that having a null page reference will delete the page reference from the node.
Modified: portal/trunk/component/portal/src/test/java/org/exoplatform/portal/config/TestDataStorage.java
===================================================================
--- portal/trunk/component/portal/src/test/java/org/exoplatform/portal/config/TestDataStorage.java 2010-04-01 15:30:37 UTC (rev 2456)
+++ portal/trunk/component/portal/src/test/java/org/exoplatform/portal/config/TestDataStorage.java 2010-04-01 15:53:59 UTC (rev 2457)
@@ -358,6 +358,54 @@
PageNavigation newPageNavi = storage_.getPageNavigation(pageNavi.getOwnerType(), pageNavi.getOwnerId());
}
+ /**
+ * Test that setting a page reference to null will actually remove the page reference from the PageNode
+ * @throws Exception
+ */
+ public void testNullPageReferenceDeletes() throws Exception
+ {
+ // create portal
+ PortalConfig portal = new PortalConfig();
+ portal.setName("foo");
+ portal.setLocale("en");
+ portal.setAccessPermissions(new String[]{UserACL.EVERYONE});
+ storage_.create(portal);
+
+ // create page
+ Page page = new Page();
+ page.setOwnerType(PortalConfig.PORTAL_TYPE);
+ page.setOwnerId("test");
+ page.setName("foo");
+ storage_.create(page);
+
+ //create a page node and add page
+ PageNode pageNode = new PageNode();
+ pageNode.setName("testPage");
+ pageNode.setPageReference(page.getPageId());
+ pageNode.build();
+
+ // create a new page navigation and add node
+ PageNavigation navigation = new PageNavigation();
+ navigation.setOwnerId("foo");
+ navigation.setOwnerType("portal");
+ navigation.addNode(pageNode);
+ storage_.create(navigation);
+
+ // get the page reference from the created page and check that it exists
+ PageNavigation pageNavigationWithPageReference = storage_.getPageNavigation("portal", navigation.getOwnerId());
+ assertNotNull("Expected page reference should not be null.", pageNavigationWithPageReference.getNodes().get(0).getPageReference());
+
+ // set the page reference to null and save.
+ ArrayList<PageNode> nodes = navigation.getNodes();
+ nodes.get(0).setPageReference(null);
+ navigation.setNodes(nodes);
+ storage_.save(navigation);
+
+ // check that setting the page reference to null actually removes the page reference
+ PageNavigation pageNavigationWithoutPageReference = storage_.getPageNavigation("portal", navigation.getOwnerId());
+ assertNull("Expected page reference should be null.", pageNavigationWithoutPageReference.getNodes().get(0).getPageReference());
+ }
+
public void testRemoveNavigation() throws Exception
{
PageNavigation navigation = storage_.getPageNavigation("portal", "test");
14 years, 9 months
gatein SVN: r2456 - portal/trunk/component/portal/src/main/java/org/exoplatform/portal/resource.
by do-not-reply@jboss.org
Author: julien_viet
Date: 2010-04-01 11:30:37 -0400 (Thu, 01 Apr 2010)
New Revision: 2456
Modified:
portal/trunk/component/portal/src/main/java/org/exoplatform/portal/resource/ResourceResolver.java
Log:
GTNPORTAL-1016 : very minor type
Modified: portal/trunk/component/portal/src/main/java/org/exoplatform/portal/resource/ResourceResolver.java
===================================================================
--- portal/trunk/component/portal/src/main/java/org/exoplatform/portal/resource/ResourceResolver.java 2010-04-01 14:24:25 UTC (rev 2455)
+++ portal/trunk/component/portal/src/main/java/org/exoplatform/portal/resource/ResourceResolver.java 2010-04-01 15:30:37 UTC (rev 2456)
@@ -34,7 +34,6 @@
* @param path the path
* @return a reader
* @throws NullPointerException if the path argument is null
- * @throws IllegalStateException when
*/
Resource resolve(String path) throws NullPointerException;
14 years, 9 months
gatein SVN: r2455 - portal/trunk/component/portal/src/main/java/org/exoplatform/portal/resource.
by do-not-reply@jboss.org
Author: julien_viet
Date: 2010-04-01 10:24:25 -0400 (Thu, 01 Apr 2010)
New Revision: 2455
Modified:
portal/trunk/component/portal/src/main/java/org/exoplatform/portal/resource/CompositeResourceResolver.java
portal/trunk/component/portal/src/main/java/org/exoplatform/portal/resource/MainResourceResolver.java
portal/trunk/component/portal/src/main/java/org/exoplatform/portal/resource/ResourceResolver.java
Log:
GTNPORTAL-1016 : Fix resource resolver error handling
GTNPORTAL-1017 : Avoid to create a String from a StringBuffer for providing a Reader as it is possible to do that
Modified: portal/trunk/component/portal/src/main/java/org/exoplatform/portal/resource/CompositeResourceResolver.java
===================================================================
--- portal/trunk/component/portal/src/main/java/org/exoplatform/portal/resource/CompositeResourceResolver.java 2010-04-01 13:26:53 UTC (rev 2454)
+++ portal/trunk/component/portal/src/main/java/org/exoplatform/portal/resource/CompositeResourceResolver.java 2010-04-01 14:24:25 UTC (rev 2455)
@@ -19,8 +19,11 @@
package org.exoplatform.portal.resource;
+import org.apache.commons.io.input.CharSequenceReader;
+import org.gatein.common.logging.Logger;
+import org.gatein.common.logging.LoggerFactory;
+
import java.io.Reader;
-import java.io.StringReader;
import java.util.Map;
/**
@@ -38,18 +41,31 @@
*/
private final String portalContainerName;
+ /** . */
+ private final String prefix;
+
+ /** . */
+ private final Logger log = LoggerFactory.getLogger(CompositeResourceResolver.class);
+
public CompositeResourceResolver(String portalContainerName, Map<SkinKey, SkinConfig> skins)
{
this.portalContainerName = portalContainerName;
this.skins = skins;
+ this.prefix = "/" + portalContainerName + "/resource/";
}
public Resource resolve(String path)
{
- if (path.startsWith("/" + portalContainerName + "/resource/") && path.endsWith(".css"))
+ if (path == null)
{
- final StringBuffer sb = new StringBuffer();
- String encoded = path.substring(("/" + portalContainerName + "/resource/").length());
+ throw new NullPointerException("No null path is accepted");
+ }
+
+ //
+ if (path.startsWith(prefix) && path.endsWith(".css"))
+ {
+ final StringBuilder sb = new StringBuilder();
+ String encoded = path.substring(prefix.length());
String blah[] = encoded.split("/");
int len = (blah.length >> 1) << 1;
for (int i = 0; i < len; i += 2)
@@ -68,12 +84,16 @@
@Override
public Reader read()
{
- return new StringReader(sb.toString());
+ return new CharSequenceReader(sb);
}
};
}
else
{
+ if (log.isDebugEnabled())
+ {
+ log.debug("Could not resolve path value");
+ }
return null;
}
}
Modified: portal/trunk/component/portal/src/main/java/org/exoplatform/portal/resource/MainResourceResolver.java
===================================================================
--- portal/trunk/component/portal/src/main/java/org/exoplatform/portal/resource/MainResourceResolver.java 2010-04-01 13:26:53 UTC (rev 2454)
+++ portal/trunk/component/portal/src/main/java/org/exoplatform/portal/resource/MainResourceResolver.java 2010-04-01 14:24:25 UTC (rev 2455)
@@ -19,6 +19,9 @@
package org.exoplatform.portal.resource;
+import org.gatein.common.logging.Logger;
+import org.gatein.common.logging.LoggerFactory;
+
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.CopyOnWriteArrayList;
@@ -32,12 +35,18 @@
class MainResourceResolver implements ResourceResolver
{
+ /** . */
final Map<String, SimpleResourceContext> contexts;
+ /** . */
final CopyOnWriteArrayList<ResourceResolver> resolvers;
+ /** . */
final Map<SkinKey, SkinConfig> skins;
+ /** . */
+ private final Logger log = LoggerFactory.getLogger(MainResourceResolver.class);
+
public MainResourceResolver(String portalContainerName, Map<SkinKey, SkinConfig> skins)
{
this.skins = skins;
@@ -62,6 +71,12 @@
public Resource resolve(String path)
{
+ if (path == null)
+ {
+ throw new NullPointerException("No null path is accepted");
+ }
+
+ //
for (ResourceResolver resolver : resolvers)
{
Resource res = resolver.resolve(path);
@@ -75,6 +90,16 @@
int i1 = path.indexOf("/", 2);
String targetedContextPath = path.substring(0, i1);
SimpleResourceContext context = contexts.get(targetedContextPath);
- return context.getResource(path.substring(i1));
+
+ //
+ if (context == null)
+ {
+ log.warn("Could not resolve " + targetedContextPath + " resource for path " + path);
+ return null;
+ }
+ else
+ {
+ return context.getResource(path.substring(i1));
+ }
}
}
Modified: portal/trunk/component/portal/src/main/java/org/exoplatform/portal/resource/ResourceResolver.java
===================================================================
--- portal/trunk/component/portal/src/main/java/org/exoplatform/portal/resource/ResourceResolver.java 2010-04-01 13:26:53 UTC (rev 2454)
+++ portal/trunk/component/portal/src/main/java/org/exoplatform/portal/resource/ResourceResolver.java 2010-04-01 14:24:25 UTC (rev 2455)
@@ -29,11 +29,13 @@
{
/**
- * Returns a reader for the provided path or null if the resource cannot be resolved.
+ * Returns a {@link org.exoplatform.portal.resource.Resource} for the provided path or null if the resource cannot be resolved.
*
* @param path the path
- * @return a reader
+ * @return a reader
+ * @throws NullPointerException if the path argument is null
+ * @throws IllegalStateException when
*/
- Resource resolve(String path);
+ Resource resolve(String path) throws NullPointerException;
}
14 years, 9 months
gatein SVN: r2454 - portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/portal.
by do-not-reply@jboss.org
Author: thomas.heute(a)jboss.com
Date: 2010-04-01 09:26:53 -0400 (Thu, 01 Apr 2010)
New Revision: 2454
Modified:
portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UIPortalComponentActionListener.java
Log:
JBEPP-240: Problem with several iframe portlet in same page
Modified: portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UIPortalComponentActionListener.java
===================================================================
--- portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UIPortalComponentActionListener.java 2010-04-01 13:09:37 UTC (rev 2453)
+++ portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UIPortalComponentActionListener.java 2010-04-01 13:26:53 UTC (rev 2454)
@@ -25,6 +25,7 @@
import org.exoplatform.portal.application.PortalRequestContext;
import org.exoplatform.portal.config.UserACL;
import org.exoplatform.portal.config.UserPortalConfigService;
+import org.exoplatform.portal.config.model.ApplicationState;
import org.exoplatform.portal.config.model.ApplicationType;
import org.exoplatform.portal.config.model.CloneApplicationState;
import org.exoplatform.portal.config.model.Container;
@@ -376,7 +377,18 @@
}
else
{
- CloneApplicationState state = new CloneApplicationState<Object>(app.getStorageId());
+ ApplicationState state;
+ // if we have a new portlet added to the page we need for it to have its own state.
+ // otherwise all new portlets added to a page will have the same state.
+ if (newComponent)
+ {
+ state = new TransientApplicationState<Object>(app.getContentId());
+ }
+ // if the portlet is not new, then we should clone it from the original portlet
+ else
+ {
+ state = new CloneApplicationState<Object>(app.getStorageId());
+ }
uiPortlet.setState(new PortletState(state, applicationType));
}
uiPortlet.setPortletInPortal(uiTarget instanceof UIPortal);
14 years, 9 months
gatein SVN: r2453 - portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/page.
by do-not-reply@jboss.org
Author: thomas.heute(a)jboss.com
Date: 2010-04-01 09:09:37 -0400 (Thu, 01 Apr 2010)
New Revision: 2453
Modified:
portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageActionListener.java
Log:
JBEPP-224: Reset current navigation after sign in
Modified: portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageActionListener.java
===================================================================
--- portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageActionListener.java 2010-04-01 12:44:40 UTC (rev 2452)
+++ portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/page/UIPageActionListener.java 2010-04-01 13:09:37 UTC (rev 2453)
@@ -19,9 +19,11 @@
package org.exoplatform.portal.webui.page;
+import org.exoplatform.container.ExoContainer;
import org.exoplatform.portal.application.PortalRequestContext;
import org.exoplatform.portal.config.DataStorage;
import org.exoplatform.portal.config.UserPortalConfig;
+import org.exoplatform.portal.config.UserPortalConfigService;
import org.exoplatform.portal.config.model.Container;
import org.exoplatform.portal.config.model.ModelObject;
import org.exoplatform.portal.config.model.Page;
@@ -40,7 +42,6 @@
import org.exoplatform.webui.core.UIComponent;
import org.exoplatform.webui.event.Event;
import org.exoplatform.webui.event.EventListener;
-import org.exoplatform.webui.event.Event.Phase;
import java.util.ArrayList;
import java.util.List;
@@ -295,13 +296,33 @@
*/
private PageNode getDefaultNode(PageNavigation nav)
{
- PageNode defaultNode;
+ PageNode defaultNode = null;
try
{
- defaultNode = nav.getNodes().get(0);
+ if (nav != null && nav.getNodes().size() > 0)
+ {
+ WebuiRequestContext context = Util.getPortalRequestContext();
+ ExoContainer appContainer = context.getApplication().getApplicationServiceContainer();
+ UserPortalConfigService userPortalConfigService = (UserPortalConfigService)appContainer.getComponentInstanceOfType(UserPortalConfigService.class);
+
+ for (PageNode pageNode : nav.getNodes())
+ {
+ Page page = userPortalConfigService.getPage(pageNode.getPageReference(), context.getRemoteUser());
+ if (page != null)
+ {
+ defaultNode = pageNode;
+ break;
+ }
+ }
+ }
+ else
+ {
+ return null;
+ }
}
- catch (IndexOutOfBoundsException ex)
+ catch (Exception e)
{
+ e.printStackTrace();
return null;
}
if (defaultNode != null && !("notfound".equals(defaultNode.getName())))
14 years, 9 months
gatein SVN: r2452 - in portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui: workspace and 1 other directory.
by do-not-reply@jboss.org
Author: thomas.heute(a)jboss.com
Date: 2010-04-01 08:44:40 -0400 (Thu, 01 Apr 2010)
New Revision: 2452
Modified:
portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UISkinSelector.java
portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIPortalApplication.java
Log:
JBEPP-218: Skin selection isn't persisted
Modified: portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UISkinSelector.java
===================================================================
--- portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UISkinSelector.java 2010-04-01 12:02:56 UTC (rev 2451)
+++ portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/portal/UISkinSelector.java 2010-04-01 12:44:40 UTC (rev 2452)
@@ -23,6 +23,9 @@
import org.exoplatform.portal.webui.util.Util;
import org.exoplatform.portal.webui.workspace.UIMaskWorkspace;
import org.exoplatform.portal.webui.workspace.UIPortalApplication;
+import org.exoplatform.services.organization.OrganizationService;
+import org.exoplatform.services.organization.UserProfile;
+import org.exoplatform.services.organization.UserProfileHandler;
import org.exoplatform.webui.config.annotation.ComponentConfig;
import org.exoplatform.webui.config.annotation.EventConfig;
import org.exoplatform.webui.core.UIContainer;
@@ -107,6 +110,17 @@
if (skin == null || skin.trim().length() < 1)
return;
uiApp.setSkin(skin);
+ String remoteUser = event.getRequestContext().getRemoteUser();
+
+ //Save the skin selection to the User Profile
+ OrganizationService orgService = event.getSource().getApplicationComponent(OrganizationService.class);
+ if (remoteUser != null)
+ {
+ UserProfile userProfile = orgService.getUserProfileHandler().findUserProfileByName(remoteUser);
+ userProfile.getUserInfoMap().put("user.skin", skin);
+ UserProfileHandler hanlder = orgService.getUserProfileHandler();
+ hanlder.saveUserProfile(userProfile, true);
+ }
}
}
Modified: portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIPortalApplication.java
===================================================================
--- portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIPortalApplication.java 2010-04-01 12:02:56 UTC (rev 2451)
+++ portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/workspace/UIPortalApplication.java 2010-04-01 12:44:40 UTC (rev 2452)
@@ -148,12 +148,15 @@
OrganizationService orgService = getApplicationComponent(OrganizationService.class);
LocaleConfig localeConfig = localeConfigService.getLocaleConfig(userPortalConfig_.getPortalConfig().getLocale());
String user = context.getRemoteUser();
+ String portalSkin = null;
+
if (user != null)
{
UserProfile userProfile = orgService.getUserProfileHandler().findUserProfileByName(user);
if (userProfile != null)
{
portalLanguage = userProfile.getUserInfoMap().get("user.language");
+ portalSkin = userProfile.getUserInfoMap().get("user.skin");
}
else
{
@@ -183,9 +186,18 @@
addWorkingWorkspace();
- String currentSkin = userPortalConfig_.getPortalConfig().getSkin();
- if (currentSkin != null && currentSkin.trim().length() > 0)
- skin_ = currentSkin;
+ // use the skin from the user profile if available, otherwise use from the portal config
+ if (portalSkin != null && portalSkin.trim().length() > 0)
+ {
+ skin_ = portalSkin;
+ }
+ else
+ {
+ String userPortalConfigSkin = userPortalConfig_.getPortalConfig().getSkin();
+ if (userPortalConfigSkin != null && userPortalConfigSkin.trim().length() > 0)
+ skin_ = userPortalConfigSkin;
+ }
+
setOwner(context.getPortalOwner());
//Minh Hoang TO: Localizes navigations, need to put this code snippet below 'setLocale' block
14 years, 9 months
gatein SVN: r2451 - portal/branches/EPP_5_0_Branch/examples/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UITabPaneDashboard.
by do-not-reply@jboss.org
Author: thomas.heute(a)jboss.com
Date: 2010-04-01 08:02:56 -0400 (Thu, 01 Apr 2010)
New Revision: 2451
Modified:
portal/branches/EPP_5_0_Branch/examples/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UITabPaneDashboard/Stylesheet.css
Log:
JBEPP-268: Lost images in navgation when show dashboard portlet (Sample skin)
Modified: portal/branches/EPP_5_0_Branch/examples/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UITabPaneDashboard/Stylesheet.css
===================================================================
--- portal/branches/EPP_5_0_Branch/examples/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UITabPaneDashboard/Stylesheet.css 2010-04-01 11:50:41 UTC (rev 2450)
+++ portal/branches/EPP_5_0_Branch/examples/skins/simpleskin/src/main/webapp/skin/SimpleSkin/UITabPaneDashboard/Stylesheet.css 2010-04-01 12:02:56 UTC (rev 2451)
@@ -41,12 +41,14 @@
}
.UITabPaneDashboard .UIHorizontalTabs .UITab span {
- margin: 3px 10px;
+ margin: 0px 10px;
+ font-weight: normal;
}
.UITabPaneDashboard .UIHorizontalTabs .UITab .CloseIcon {
background: url('background/IconClose.gif') no-repeat left top;
- width: 16px; height: 16px;
+ width: 16px;
+ height: 16px;
cursor: pointer;
}
@@ -60,21 +62,26 @@
}
.UITabPaneDashboard .UIHorizontalTabs .GrayTabStyle .NormalTab .LeftTab {
- background: url(background/TabDashboard.gif) no-repeat left -44px;
+ background: #E6E6E6;
+ border: 1px solid #DADADA;
}
.UITabPaneDashboard .UIHorizontalTabs .GrayTabStyle .NormalTab .RightTab {
- background: url(background/TabDashboard.gif) no-repeat right -44px;
+ background: none;
}
.UITabPaneDashboard .UIHorizontalTabs .GrayTabStyle .NormalTab .MiddleTab {
- background: url(background/TabDashboard.gif) repeat-x left -66px;
- line-height: 22px;
+ background: none;
+ line-height: 20px;
}
+.UITabPaneDashboard .UIHorizontalTabs .GrayTabStyle .NormalTab .MiddleTab span {
+ color: #999999;
+}
+
.UITabPaneDashboard .UIHorizontalTabs .GrayTabStyle .SelectedTab .LeftTab {
background: #fff;
- border: 1px solid #e5e5e5;
+ border: 1px solid #dadada;
padding: 0px;
}
14 years, 9 months
gatein SVN: r2450 - portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples.
by do-not-reply@jboss.org
Author: thomas.heute(a)jboss.com
Date: 2010-04-01 07:50:41 -0400 (Thu, 01 Apr 2010)
New Revision: 2450
Added:
portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/acme-openldap.ldif
portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/initial-openldap.ldif
portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-openldap-acme-config.xml
portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-openldap-config.xml
Log:
JBEPP-989: Example files for OpenLDAP configuration
Added: portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/acme-openldap.ldif
===================================================================
--- portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/acme-openldap.ldif (rev 0)
+++ portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/acme-openldap.ldif 2010-04-01 11:50:41 UTC (rev 2450)
@@ -0,0 +1,160 @@
+dn: o=acme,dc=my-domain,dc=com
+objectclass: top
+objectclass: dcObject
+objectclass: organization
+o: acme
+dc: acme
+
+dn: ou=placeholder,o=acme,dc=my-domain,dc=com
+objectclass: top
+objectclass: organizationalUnit
+ou: placeholder
+description: entry used to satisfy schmema restrictions for required member attribute in groupOfNames objectClass
+
+dn: ou=People,o=acme,dc=my-domain,dc=com
+objectclass: top
+objectclass: organizationalUnit
+ou: People
+
+dn: uid=admin,ou=People,o=acme,dc=my-domain,dc=com
+objectclass: top
+objectclass: inetOrgPerson
+objectclass: person
+uid: admin
+cn: Administrator
+sn: Duke
+userPassword: admin
+mail: admin(a)acme.example.com
+
+dn: uid=user,ou=People,o=acme,dc=my-domain,dc=com
+objectclass: top
+objectclass: inetOrgPerson
+objectclass: person
+uid: user
+cn: User
+sn: Sample
+userPassword: user
+mail: user(a)acme.example.com
+
+dn: uid=jduke,ou=People,o=acme,dc=my-domain,dc=com
+objectclass: top
+objectclass: inetOrgPerson
+objectclass: person
+uid: jduke
+cn: Java
+sn: Duke
+userPassword: theduke
+mail: jduke(a)acme.example.com
+
+dn: uid=jduke1,ou=People,o=acme,dc=my-domain,dc=com
+objectclass: top
+objectclass: inetOrgPerson
+objectclass: person
+uid: jduke1
+cn: Java 1
+sn: Duke1
+userPassword: theduke
+mail: jduke1(a)acme.example.com
+
+
+dn: uid=jduke2,ou=People,o=acme,dc=my-domain,dc=com
+objectclass: top
+objectclass: inetOrgPerson
+objectclass: person
+uid: jduke2
+cn: Java 2
+sn: Duke2
+userPassword: theduke
+mail: jduke2(a)acme.example.com
+
+dn: uid=jduke3,ou=People,o=acme,dc=my-domain,dc=com
+objectclass: top
+objectclass: inetOrgPerson
+objectclass: person
+uid: jduke3
+cn: Java 3
+sn: Duke3
+userPassword: theduke
+mail: jduke3(a)acme.example.com
+
+dn: uid=jduke4,ou=People,o=acme,dc=my-domain,dc=com
+objectclass: top
+objectclass: inetOrgPerson
+objectclass: person
+uid: jduke4
+cn: Java 4
+sn: Duke4
+userPassword: theduke
+mail: jduke4(a)acme.example.com
+
+dn: ou=Roles,o=acme,dc=my-domain,dc=com
+objectclass: top
+objectclass: organizationalUnit
+ou: Roles
+
+dn: cn=admins,ou=Roles,o=acme,dc=my-domain,dc=com
+objectClass: top
+objectClass: groupOfNames
+cn: admins
+description: Portal admin role
+member: uid=admin,ou=People,o=acme,dc=my-domain,dc=com
+
+dn: cn=employees,ou=Roles,o=acme,dc=my-domain,dc=com
+objectClass: top
+objectClass: groupOfNames
+cn: employees
+description: ACME Employees
+member: uid=admin,ou=People,o=acme,dc=my-domain,dc=com
+member: uid=user,ou=People,o=acme,dc=my-domain,dc=com
+member: uid=jduke,ou=People,o=acme,dc=my-domain,dc=com
+member: uid=jduke1,ou=People,o=acme,dc=my-domain,dc=com
+member: uid=jduke2,ou=People,o=acme,dc=my-domain,dc=com
+member: uid=jduke3,ou=People,o=acme,dc=my-domain,dc=com
+member: uid=jduke4,ou=People,o=acme,dc=my-domain,dc=com
+
+dn: cn=echo,ou=Roles,o=acme,dc=my-domain,dc=com
+objectClass: top
+objectClass: groupOfNames
+cn: echo
+description: Echo role
+member: uid=jduke1,ou=People,o=acme,dc=my-domain,dc=com
+member: uid=jduke3,ou=People,o=acme,dc=my-domain,dc=com
+member: uid=jduke4,ou=People,o=acme,dc=my-domain,dc=com
+
+dn: cn=echo1,ou=Roles,o=acme,dc=my-domain,dc=com
+objectClass: top
+objectClass: groupOfNames
+cn: echo1
+description: Echo1 role
+member: uid=jduke2,ou=People,o=acme,dc=my-domain,dc=com
+member: uid=jduke3,ou=People,o=acme,dc=my-domain,dc=com
+
+dn: cn=theduke,ou=Roles,o=acme,dc=my-domain,dc=com
+objectClass: groupOfNames
+objectClass: top
+cn: theduke
+description: TheDuke role
+member: uid=jduke,ou=People,o=acme,dc=my-domain,dc=com
+
+dn: ou=OrganizationUnits,o=acme,dc=my-domain,dc=com
+objectclass: top
+objectclass: organizationalUnit
+ou: OrganizationUnits
+
+dn: cn=foo,ou=OrganizationUnits,o=acme,dc=my-domain,dc=com
+objectClass: top
+objectClass: groupOfNames
+cn: foo
+description: Foo organization unit
+member: uid=admin,ou=People,o=acme,dc=my-domain,dc=com
+
+
+
+dn: cn=bar,ou=OrganizationUnits,o=acme,dc=my-domain,dc=com
+objectClass: top
+objectClass: groupOfNames
+cn: bar
+description: Bar organization
+member: uid=admin,ou=People,o=acme,dc=my-domain,dc=com
+
+
Added: portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/initial-openldap.ldif
===================================================================
--- portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/initial-openldap.ldif (rev 0)
+++ portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/initial-openldap.ldif 2010-04-01 11:50:41 UTC (rev 2450)
@@ -0,0 +1,16 @@
+dn: o=gatein,dc=my-domain,dc=com
+objectclass: top
+objectclass: organization
+o: gatein
+
+dn: o=portal,o=gatein,dc=my-domain,dc=com
+objectclass: top
+objectclass: organization
+o: portal
+
+dn: ou=placeholder,o=portal,o=gatein,dc=my-domain,dc=com
+objectclass: top
+objectclass: organizationalUnit
+ou: placeholder
+description: entry used to satisfy schmema restrictions for required member attribute in groupOfNames objectClass
+
Added: portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-openldap-acme-config.xml
===================================================================
--- portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-openldap-acme-config.xml (rev 0)
+++ portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-openldap-acme-config.xml 2010-04-01 11:50:41 UTC (rev 2450)
@@ -0,0 +1,393 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ 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.
+
+-->
+
+<jboss-identity xmlns="urn:picketlink:idm:config:v1_0_0_ga"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:picketlink:idm:config:v1_0_0_ga identity-config.xsd">
+ <realms>
+ <realm>
+ <id>idm_realm_sample-portal</id>
+ <repository-id-ref>DefaultPortalRepository</repository-id-ref>
+ <identity-type-mappings>
+ <user-mapping>USER</user-mapping>
+ </identity-type-mappings>
+ <options>
+ <option>
+ <name>cache.providerRegistryName</name>
+ <value>apiCacheProvider</value>
+ </option>
+ </options>
+ </realm>
+ <realm>
+ <id>idm_realm</id>
+ <repository-id-ref>PortalRepository</repository-id-ref>
+ <identity-type-mappings>
+ <user-mapping>USER</user-mapping>
+ </identity-type-mappings>
+ <options>
+ <option>
+ <name>template</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>cache.providerRegistryName</name>
+ <value>apiCacheProvider</value>
+ </option>
+ </options>
+ </realm>
+ </realms>
+ <repositories>
+ <repository>
+ <id>PortalRepository</id>
+ <class>org.picketlink.idm.impl.repository.FallbackIdentityStoreRepository</class>
+ <external-config/>
+ <default-identity-store-id>HibernateStore</default-identity-store-id>
+ <default-attribute-store-id>HibernateStore</default-attribute-store-id>
+ <identity-store-mappings>
+ <identity-store-mapping>
+ <identity-store-id>PortalLDAPStore</identity-store-id>
+ <identity-object-types>
+ <identity-object-type>USER</identity-object-type>
+ <identity-object-type>acme_roles_type</identity-object-type>
+ <identity-object-type>acme_ou_type</identity-object-type>
+ </identity-object-types>
+ <options>
+ <option>
+ <name>readOnly</name>
+ <value>true</value>
+ </option>
+ </options>
+ </identity-store-mapping>
+ </identity-store-mappings>
+ <options>
+ <option>
+ <name>allowNotDefinedAttributes</name>
+ <value>true</value>
+ </option>
+ </options>
+ </repository>
+ <repository>
+ <id>DefaultPortalRepository</id>
+ <class>org.picketlink.idm.impl.repository.WrapperIdentityStoreRepository</class>
+ <external-config/>
+ <default-identity-store-id>HibernateStore</default-identity-store-id>
+ <default-attribute-store-id>HibernateStore</default-attribute-store-id>
+ </repository>
+ </repositories>
+ <stores>
+ <attribute-stores/>
+ <identity-stores>
+ <identity-store>
+ <id>HibernateStore</id>
+ <class>org.picketlink.idm.impl.store.hibernate.HibernateIdentityStoreImpl</class>
+ <external-config/>
+ <supported-relationship-types>
+ <relationship-type>JBOSS_IDENTITY_MEMBERSHIP</relationship-type>
+ <relationship-type>JBOSS_IDENTITY_ROLE</relationship-type>
+ </supported-relationship-types>
+ <supported-identity-object-types>
+ <identity-object-type>
+ <name>USER</name>
+ <relationships/>
+ <credentials>
+ <credential-type>PASSWORD</credential-type>
+ </credentials>
+ <attributes/>
+ <options/>
+ </identity-object-type>
+ </supported-identity-object-types>
+ <options>
+ <option>
+ <name>hibernateSessionFactoryRegistryName</name>
+ <value>hibernateSessionFactory</value>
+ </option>
+ <option>
+ <name>populateRelationshipTypes</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>populateIdentityObjectTypes</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>allowNotDefinedIdentityObjectTypes</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>allowNotDefinedAttributes</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>isRealmAware</name>
+ <value>true</value>
+ </option>
+ </options>
+ </identity-store>
+ <identity-store>
+ <id>PortalLDAPStore</id>
+ <class>org.picketlink.idm.impl.store.ldap.LDAPIdentityStoreImpl</class>
+ <external-config/>
+ <supported-relationship-types>
+ <relationship-type>JBOSS_IDENTITY_MEMBERSHIP</relationship-type>
+ </supported-relationship-types>
+ <supported-identity-object-types>
+ <identity-object-type>
+ <name>USER</name>
+ <relationships/>
+ <credentials>
+ <credential-type>PASSWORD</credential-type>
+ </credentials>
+ <attributes>
+ <attribute>
+ <name>firstName</name>
+ <mapping>cn</mapping>
+ <type>text</type>
+ <isRequired>false</isRequired>
+ <isMultivalued>false</isMultivalued>
+ <isReadOnly>false</isReadOnly>
+ </attribute>
+ <attribute>
+ <name>lastName</name>
+ <mapping>sn</mapping>
+ <type>text</type>
+ <isRequired>false</isRequired>
+ <isMultivalued>false</isMultivalued>
+ <isReadOnly>false</isReadOnly>
+ </attribute>
+ <attribute>
+ <name>email</name>
+ <mapping>mail</mapping>
+ <type>text</type>
+ <isRequired>false</isRequired>
+ <isMultivalued>false</isMultivalued>
+ <isReadOnly>false</isReadOnly>
+ <isUnique>true</isUnique>
+ </attribute>
+ </attributes>
+ <options>
+ <option>
+ <name>idAttributeName</name>
+ <value>uid</value>
+ </option>
+ <option>
+ <name>passwordAttributeName</name>
+ <value>userPassword</value>
+ </option>
+ <option>
+ <name>ctxDNs</name>
+ <value>ou=People,o=acme,dc=my-domain,dc=com</value>
+ </option>
+ <option>
+ <name>allowCreateEntry</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>createEntryAttributeValues</name>
+ <value>objectClass=top</value>
+ <value>objectClass=inetOrgPerson</value>
+ <value>sn= </value>
+ <value>cn= </value>
+ </option>
+ </options>
+ </identity-object-type>
+ <identity-object-type>
+ <name>acme_roles_type</name>
+ <relationships>
+ <relationship>
+ <relationship-type-ref>JBOSS_IDENTITY_MEMBERSHIP</relationship-type-ref>
+ <identity-object-type-ref>USER</identity-object-type-ref>
+ </relationship>
+ <relationship>
+ <relationship-type-ref>JBOSS_IDENTITY_MEMBERSHIP</relationship-type-ref>
+ <identity-object-type-ref>acme_roles_type</identity-object-type-ref>
+ </relationship>
+ </relationships>
+ <credentials/>
+ <attributes>
+ <attribute>
+ <name>label</name>
+ <mapping>cn</mapping>
+ <type>text</type>
+ <isRequired>false</isRequired>
+ <isMultivalued>false</isMultivalued>
+ <isReadOnly>true</isReadOnly>
+ </attribute>
+ <attribute>
+ <name>description</name>
+ <mapping>description</mapping>
+ <type>text</type>
+ <isRequired>false</isRequired>
+ <isMultivalued>false</isMultivalued>
+ <isReadOnly>false</isReadOnly>
+ </attribute>
+ </attributes>
+ <options>
+ <option>
+ <name>idAttributeName</name>
+ <value>cn</value>
+ </option>
+ <option>
+ <name>ctxDNs</name>
+ <value>ou=Roles,o=acme,dc=my-domain,dc=com</value>
+ </option>
+ <!--<option>-->
+ <!--<name>entrySearchFilter</name>-->
+ <!--<value></value>-->
+ <!--</option>-->
+ <option>
+ <name>parentMembershipAttributePlaceholder</name>
+ <value>ou=placeholder,o=acme,dc=my-domain,dc=com</value>
+ </option>
+ <option>
+ <name>allowCreateEntry</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>parentMembershipAttributeName</name>
+ <value>member</value>
+ </option>
+ <option>
+ <name>isParentMembershipAttributeDN</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>allowEmptyMemberships</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>createEntryAttributeValues</name>
+ <value>objectClass=top</value>
+ <value>objectClass=groupOfNames</value>
+ <value>member=ou=placeholder,o=acme,dc=my-domain,dc=com</value>
+ </option>
+ </options>
+ </identity-object-type>
+ <identity-object-type>
+ <name>acme_ou_type</name>
+ <relationships>
+ <relationship>
+ <relationship-type-ref>JBOSS_IDENTITY_MEMBERSHIP</relationship-type-ref>
+ <identity-object-type-ref>USER</identity-object-type-ref>
+ </relationship>
+ <relationship>
+ <relationship-type-ref>JBOSS_IDENTITY_MEMBERSHIP</relationship-type-ref>
+ <identity-object-type-ref>acme_ou_type</identity-object-type-ref>
+ </relationship>
+ </relationships>
+ <credentials/>
+ <attributes>
+ <attribute>
+ <name>label</name>
+ <mapping>cn</mapping>
+ <type>text</type>
+ <isRequired>false</isRequired>
+ <isMultivalued>false</isMultivalued>
+ <isReadOnly>true</isReadOnly>
+ </attribute>
+ <attribute>
+ <name>description</name>
+ <mapping>description</mapping>
+ <type>text</type>
+ <isRequired>false</isRequired>
+ <isMultivalued>false</isMultivalued>
+ <isReadOnly>false</isReadOnly>
+ </attribute>
+ </attributes>
+ <options>
+ <option>
+ <name>idAttributeName</name>
+ <value>cn</value>
+ </option>
+ <option>
+ <name>ctxDNs</name>
+ <value>ou=OrganizationUnits,o=acme,dc=my-domain,dc=com</value>
+ </option>
+ <!--<option>-->
+ <!--<name>entrySearchFilter</name>-->
+ <!--<value></value>-->
+ <!--</option>-->
+
+ <option>
+ <name>allowCreateEntry</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>parentMembershipAttributeName</name>
+ <value>member</value>
+ </option>
+ <option>
+ <name>parentMembershipAttributePlaceholder</name>
+ <value>ou=placeholder,o=acme,dc=my-domain,dc=com</value>
+ </option>
+ <option>
+ <name>isParentMembershipAttributeDN</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>allowEmptyMemberships</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>createEntryAttributeValues</name>
+ <value>objectClass=top</value>
+ <value>objectClass=groupOfNames</value>
+ <value>member=ou=placeholder,o=acme,dc=my-domain,dc=com</value>
+ </option>
+ </options>
+ </identity-object-type>
+ </supported-identity-object-types>
+ <options>
+ <option>
+ <name>providerURL</name>
+ <value>ldap://localhost:1389</value>
+ </option>
+ <option>
+ <name>adminDN</name>
+ <value>cn=Manager,dc=my-domain,dc=com</value>
+ </option>
+ <option>
+ <name>adminPassword</name>
+ <value>secret</value>
+ </option>
+ <option>
+ <name>searchTimeLimit</name>
+ <value>10000</value>
+ </option>
+ <option>
+ <name>createMissingContexts</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>sortExtensionSupported</name>
+ <value>false</value>
+ </option>
+ </options>
+ </identity-store>
+ </identity-stores>
+ </stores>
+ <options>
+ <option>
+ <name>defaultTemplate</name>
+ <value>idm_realm</value>
+ </option>
+ </options>
+</jboss-identity>
\ No newline at end of file
Added: portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-openldap-config.xml
===================================================================
--- portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-openldap-config.xml (rev 0)
+++ portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-openldap-config.xml 2010-04-01 11:50:41 UTC (rev 2450)
@@ -0,0 +1,353 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ 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.
+
+-->
+
+<jboss-identity xmlns="urn:picketlink:idm:config:v1_0_0_ga"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:picketlink:idm:config:v1_0_0_ga identity-config.xsd">
+ <realms>
+ <realm>
+ <id>idm_realm_sample-portal</id>
+ <repository-id-ref>DefaultPortalRepository</repository-id-ref>
+ <identity-type-mappings>
+ <user-mapping>USER</user-mapping>
+ </identity-type-mappings>
+ <options>
+ <option>
+ <name>cache.providerRegistryName</name>
+ <value>apiCacheProvider</value>
+ </option>
+ </options>
+ </realm>
+ <realm>
+ <id>idm_realm</id>
+ <repository-id-ref>PortalRepository</repository-id-ref>
+ <identity-type-mappings>
+ <user-mapping>USER</user-mapping>
+ </identity-type-mappings>
+ <options>
+ <option>
+ <name>template</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>cache.providerRegistryName</name>
+ <value>apiCacheProvider</value>
+ </option>
+ </options>
+ </realm>
+ </realms>
+ <repositories>
+ <repository>
+ <id>PortalRepository</id>
+ <class>org.picketlink.idm.impl.repository.FallbackIdentityStoreRepository</class>
+ <external-config/>
+ <default-identity-store-id>HibernateStore</default-identity-store-id>
+ <default-attribute-store-id>HibernateStore</default-attribute-store-id>
+ <identity-store-mappings>
+ <identity-store-mapping>
+ <identity-store-id>PortalLDAPStore</identity-store-id>
+ <identity-object-types>
+ <identity-object-type>USER</identity-object-type>
+ <identity-object-type>platform_type</identity-object-type>
+ <identity-object-type>organization_type</identity-object-type>
+ </identity-object-types>
+ <options/>
+ </identity-store-mapping>
+ </identity-store-mappings>
+ <options>
+ <option>
+ <name>allowNotDefinedAttributes</name>
+ <value>true</value>
+ </option>
+ </options>
+ </repository>
+ <repository>
+ <id>DefaultPortalRepository</id>
+ <class>org.picketlink.idm.impl.repository.WrapperIdentityStoreRepository</class>
+ <external-config/>
+ <default-identity-store-id>HibernateStore</default-identity-store-id>
+ <default-attribute-store-id>HibernateStore</default-attribute-store-id>
+ </repository>
+ </repositories>
+ <stores>
+ <attribute-stores/>
+ <identity-stores>
+ <identity-store>
+ <id>HibernateStore</id>
+ <class>org.picketlink.idm.impl.store.hibernate.HibernateIdentityStoreImpl</class>
+ <external-config/>
+ <supported-relationship-types>
+ <relationship-type>JBOSS_IDENTITY_MEMBERSHIP</relationship-type>
+ <relationship-type>JBOSS_IDENTITY_ROLE</relationship-type>
+ </supported-relationship-types>
+ <supported-identity-object-types>
+ <identity-object-type>
+ <name>USER</name>
+ <relationships/>
+ <credentials>
+ <credential-type>PASSWORD</credential-type>
+ </credentials>
+ <attributes/>
+ <options/>
+ </identity-object-type>
+ </supported-identity-object-types>
+ <options>
+ <option>
+ <name>hibernateSessionFactoryRegistryName</name>
+ <value>hibernateSessionFactory</value>
+ </option>
+ <option>
+ <name>populateRelationshipTypes</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>populateIdentityObjectTypes</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>allowNotDefinedIdentityObjectTypes</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>allowNotDefinedAttributes</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>isRealmAware</name>
+ <value>true</value>
+ </option>
+ </options>
+ </identity-store>
+ <identity-store>
+ <id>PortalLDAPStore</id>
+ <class>org.picketlink.idm.impl.store.ldap.LDAPIdentityStoreImpl</class>
+ <external-config/>
+ <supported-relationship-types>
+ <relationship-type>JBOSS_IDENTITY_MEMBERSHIP</relationship-type>
+ </supported-relationship-types>
+ <supported-identity-object-types>
+ <identity-object-type>
+ <name>USER</name>
+ <relationships/>
+ <credentials>
+ <credential-type>PASSWORD</credential-type>
+ </credentials>
+ <attributes>
+ <attribute>
+ <name>firstName</name>
+ <mapping>cn</mapping>
+ <type>text</type>
+ <isRequired>false</isRequired>
+ <isMultivalued>false</isMultivalued>
+ <isReadOnly>false</isReadOnly>
+ </attribute>
+ <attribute>
+ <name>lastName</name>
+ <mapping>sn</mapping>
+ <type>text</type>
+ <isRequired>false</isRequired>
+ <isMultivalued>false</isMultivalued>
+ <isReadOnly>false</isReadOnly>
+ </attribute>
+ <attribute>
+ <name>email</name>
+ <mapping>mail</mapping>
+ <type>text</type>
+ <isRequired>false</isRequired>
+ <isMultivalued>false</isMultivalued>
+ <isReadOnly>false</isReadOnly>
+ <isUnique>true</isUnique>
+ </attribute>
+ </attributes>
+ <options>
+ <option>
+ <name>idAttributeName</name>
+ <value>uid</value>
+ </option>
+ <option>
+ <name>passwordAttributeName</name>
+ <value>userPassword</value>
+ </option>
+ <option>
+ <name>ctxDNs</name>
+ <value>ou=People,o=portal,o=gatein,dc=my-domain,dc=com</value>
+ </option>
+ <option>
+ <name>allowCreateEntry</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>createEntryAttributeValues</name>
+ <value>objectClass=top</value>
+ <value>objectClass=inetOrgPerson</value>
+ <value>sn= </value>
+ <value>cn= </value>
+ </option>
+ </options>
+ </identity-object-type>
+ <identity-object-type>
+ <name>platform_type</name>
+ <relationships>
+ <relationship>
+ <relationship-type-ref>JBOSS_IDENTITY_MEMBERSHIP</relationship-type-ref>
+ <identity-object-type-ref>USER</identity-object-type-ref>
+ </relationship>
+ <relationship>
+ <relationship-type-ref>JBOSS_IDENTITY_MEMBERSHIP</relationship-type-ref>
+ <identity-object-type-ref>platform_type</identity-object-type-ref>
+ </relationship>
+ </relationships>
+ <credentials/>
+ <attributes/>
+ <options>
+ <option>
+ <name>idAttributeName</name>
+ <value>cn</value>
+ </option>
+ <option>
+ <name>ctxDNs</name>
+ <value>ou=Platform,o=portal,o=gatein,dc=my-domain,dc=com</value>
+ </option>
+ <!--<option>-->
+ <!--<name>entrySearchFilter</name>-->
+ <!--<value></value>-->
+ <!--</option>-->
+ <option>
+ <name>allowCreateEntry</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>parentMembershipAttributeName</name>
+ <value>member</value>
+ </option>
+ <option>
+ <name>parentMembershipAttributePlaceholder</name>
+ <value>ou=placeholder,o=portal,o=gatein,dc=my-domain,dc=com</value>
+ </option>
+ <option>
+ <name>isParentMembershipAttributeDN</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>allowEmptyMemberships</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>createEntryAttributeValues</name>
+ <value>objectClass=top</value>
+ <value>objectClass=groupOfNames</value>
+ <value>member=ou=placeholder,o=portal,o=gatein,dc=my-domain,dc=com</value>
+ </option>
+ </options>
+ </identity-object-type>
+ <identity-object-type>
+ <name>organization_type</name>
+ <relationships>
+ <relationship>
+ <relationship-type-ref>JBOSS_IDENTITY_MEMBERSHIP</relationship-type-ref>
+ <identity-object-type-ref>USER</identity-object-type-ref>
+ </relationship>
+ <relationship>
+ <relationship-type-ref>JBOSS_IDENTITY_MEMBERSHIP</relationship-type-ref>
+ <identity-object-type-ref>organization_type</identity-object-type-ref>
+ </relationship>
+ </relationships>
+ <credentials/>
+ <attributes/>
+ <options>
+ <option>
+ <name>idAttributeName</name>
+ <value>cn</value>
+ </option>
+ <option>
+ <name>ctxDNs</name>
+ <value>ou=Organization,o=portal,o=gatein,dc=my-domain,dc=com</value>
+ </option>
+ <!--<option>-->
+ <!--<name>entrySearchFilter</name>-->
+ <!--<value></value>-->
+ <!--</option>-->
+ <option>
+ <name>allowCreateEntry</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>parentMembershipAttributeName</name>
+ <value>member</value>
+ </option>
+ <option>
+ <name>parentMembershipAttributePlaceholder</name>
+ <value>ou=placeholder,o=portal,o=gatein,dc=my-domain,dc=com</value>
+ </option>
+ <option>
+ <name>isParentMembershipAttributeDN</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>allowEmptyMemberships</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>createEntryAttributeValues</name>
+ <value>objectClass=top</value>
+ <value>objectClass=groupOfNames</value>
+ <value>member=ou=placeholder,o=portal,o=gatein,dc=my-domain,dc=com</value>
+ </option>
+ </options>
+ </identity-object-type>
+ </supported-identity-object-types>
+ <options>
+ <option>
+ <name>providerURL</name>
+ <value>ldap://localhost:1389</value>
+ </option>
+ <option>
+ <name>adminDN</name>
+ <value>cn=Manager,dc=my-domain,dc=com</value>
+ </option>
+ <option>
+ <name>adminPassword</name>
+ <value>secret</value>
+ </option>
+ <option>
+ <name>searchTimeLimit</name>
+ <value>10000</value>
+ </option>
+ <option>
+ <name>createMissingContexts</name>
+ <value>true</value>
+ </option>
+ <option>
+ <name>sortExtensionSupported</name>
+ <value>false</value>
+ </option>
+ </options>
+ </identity-store>
+ </identity-stores>
+ </stores>
+ <options>
+ <option>
+ <name>defaultTemplate</name>
+ <value>idm_realm</value>
+ </option>
+ </options>
+</jboss-identity>
\ No newline at end of file
14 years, 9 months
gatein SVN: r2449 - in portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization: picketlink-idm/examples and 1 other directory.
by do-not-reply@jboss.org
Author: thomas.heute(a)jboss.com
Date: 2010-04-01 07:49:52 -0400 (Thu, 01 Apr 2010)
New Revision: 2449
Modified:
portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/idm-configuration.xml
portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-ldap-config.xml
Log:
JBEPP-989: Example files for OpenLDAP configuration
Modified: portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/idm-configuration.xml
===================================================================
--- portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/idm-configuration.xml 2010-04-01 11:44:43 UTC (rev 2448)
+++ portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/idm-configuration.xml 2010-04-01 11:49:52 UTC (rev 2449)
@@ -66,13 +66,19 @@
<!--Sample LDAP config-->
<!--<value>war:/conf/organization/picketlink-idm/examples/picketlink-idm-ldap-config.xml</value>-->
- <!--ACME LDAP Example-->
+ <!--Read Only "ACME" LDAP Example-->
<!--<value>war:/conf/organization/picketlink-idm/examples/picketlink-idm-ldap-acme-config.xml</value>-->
+ <!--OpenLDAP LDAP config-->
+ <!--<value>war:/conf/organization/picketlink-idm/examples/picketlink-idm-openldap-config.xml</value>-->
+
+ <!--OpenLDAP ReadOnly "ACME" LDAP Example-->
+ <!--<value>war:/conf/organization/picketlink-idm/examples/picketlink-idm-openldap-acme-config.xml</value>-->
+
<!--MSAD LDAP Example-->
<!--<value>war:/conf/organization/picketlink-idm/examples/picketlink-idm-msad-config.xml</value>-->
- <!--MSAD Read Only LDAP Example-->
+ <!--MSAD Read Only "ACME" LDAP Example-->
<!--<value>war:/conf/organization/picketlink-idm/examples/picketlink-idm-msad-readonly-config.xml</value>-->
</value-param>
Modified: portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-ldap-config.xml
===================================================================
--- portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-ldap-config.xml 2010-04-01 11:44:43 UTC (rev 2448)
+++ portal/branches/EPP_5_0_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-ldap-config.xml 2010-04-01 11:49:52 UTC (rev 2449)
@@ -152,6 +152,31 @@
<credential-type>PASSWORD</credential-type>
</credentials>
<attributes>
+ <attribute>
+ <name>firstName</name>
+ <mapping>cn</mapping>
+ <type>text</type>
+ <isRequired>false</isRequired>
+ <isMultivalued>false</isMultivalued>
+ <isReadOnly>false</isReadOnly>
+ </attribute>
+ <attribute>
+ <name>lastName</name>
+ <mapping>sn</mapping>
+ <type>text</type>
+ <isRequired>false</isRequired>
+ <isMultivalued>false</isMultivalued>
+ <isReadOnly>false</isReadOnly>
+ </attribute>
+ <attribute>
+ <name>email</name>
+ <mapping>mail</mapping>
+ <type>text</type>
+ <isRequired>false</isRequired>
+ <isMultivalued>false</isMultivalued>
+ <isReadOnly>false</isReadOnly>
+ <isUnique>true</isUnique>
+ </attribute>
</attributes>
<options>
<option>
14 years, 9 months
gatein SVN: r2448 - portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/application.
by do-not-reply@jboss.org
Author: thomas.heute(a)jboss.com
Date: 2010-04-01 07:44:43 -0400 (Thu, 01 Apr 2010)
New Revision: 2448
Modified:
portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/application/UIPortletLifecycle.java
Log:
JBEPP-253: Incorrect exception handling thrown by a portlet during invocation
Modified: portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/application/UIPortletLifecycle.java
===================================================================
--- portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/application/UIPortletLifecycle.java 2010-04-01 11:33:36 UTC (rev 2447)
+++ portal/branches/EPP_5_0_Branch/webui/portal/src/main/java/org/exoplatform/portal/webui/application/UIPortletLifecycle.java 2010-04-01 11:44:43 UTC (rev 2448)
@@ -287,11 +287,16 @@
+ "]. Expected a FragmentResponse or an ErrorResponse");
}
- PortletExceptionHandleService portletExceptionService =
- (PortletExceptionHandleService)container
- .getComponentInstanceOfType(PortletExceptionHandleService.class);
- portletExceptionService.handle(pcException);
+ //
+ PortletExceptionHandleService portletExceptionService = uicomponent.getApplicationComponent(PortletExceptionHandleService.class);
+ if (portletExceptionService != null)
+ {
+ portletExceptionService.handle(pcException);
+ }
+ // Log the error
+ log.error("Portlet render threw an exception", pcException);
+
markup = Text.create(context.getApplicationResourceBundle().getString("UIPortlet.message.RuntimeError"));
}
}
@@ -301,17 +306,16 @@
catch (Exception e)
{
PortletContainerException pcException = new PortletContainerException(e);
- PortletExceptionHandleService portletExceptionService =
- (PortletExceptionHandleService)container.getComponentInstanceOfType(PortletExceptionHandleService.class);
+ PortletExceptionHandleService portletExceptionService = uicomponent.getApplicationComponent(PortletExceptionHandleService.class);
if (portletExceptionService != null)
{
- portletExceptionService.handle(pcException);
+ portletExceptionService.handle(pcException);
}
- else
- {
- log.warn("Could not find the PortletExceptionHandleService in the exo container");
- }
+ // Log the error
+ log.error("Portlet render threw an exception", pcException);
+
+ //
markup = Text.create(context.getApplicationResourceBundle().getString("UIPortlet.message.RuntimeError"));
}
14 years, 9 months