| Configuration name | Data type | Default Value | Description |
|---|---|---|---|
| allowedTags | String list | b, i, a, span, em, strong, p, ol, ul,li, br, img | html tags |
| Configuration name | Data type | Default Value | Description |
|---|---|---|---|
| SpaceActivityStreamPortlet | String | SpaceActivityStreamPortlet | |
| space.apps | String list | DashboardPortlet:true, SpaceSettingPortlet:false, MembersPortlet:true |
| Configuration name | Data type | Default Value | Description |
|---|---|---|---|
| providers | String | org.exoplatform.social.core.identity.provider.SpaceIdentityProvider |
| Configuration name | Data type | Default Value | Description |
|---|---|---|---|
| nodetype.emails | String | exo:profileKeyValue | |
| nodetype.phones | String | exo:profileKeyValue | |
| nodetype.ims | String | exo:profileKeyValue | |
| nodetype.urls | String | exo:profileKeyValue | |
| nodetype.address | String | exo:profileAddress | |
| nodetype.experiences | String | exo:profileExperience | |
| nodetype.education | String | exo:profileEducation | |
| forceMultiValue | String | xxxxxxxxxxxx |
| Configuration name | Data type | Default Value | Description |
|---|---|---|---|
| priority | String | 2 | priority of this processor (lower are executed first) |
| Configuration name | Data type | Default Value | Description |
|---|---|---|---|
| portletsPrefsRequired | String list | SpaceActivityStreamPortlet, SpaceSettingPortlet, MembersPortlet |
The service is to handle all events related to creating and managing all the application spaces.
| Component name | Description |
|---|---|
| SpaceServiceImpl | Implementation class of Space Service. |
<component>
<key>org.exoplatform.social.core.space.spi.SpaceService</key>
<type>org.exoplatform.social.core.space.impl.SpaceServiceImpl</type>
<init-params>
<!-- Configure the applications to install in a space -->
<values-param>
<name>space.homeNodeApp</name>
<value>SpaceActivityStreamPortlet</value>
</values-param>
<!-- Configure removable application or not <value>Application:removable</value> -->
<values-param>
<name>space.apps</name>
<value>DashboardPortlet:true</value>
<value>SpaceSettingPortlet:false</value>
<value>MembersPortlet:true</value>
</values-param>
</init-params>
</component>
| Configuration name | Data Type | Possible value | Default Value | Description |
|---|---|---|---|---|
| SpaceActivityStreamPortlet | String | N/A | SpaceActivityStreamPortlet | The name of portlet displaying activities of spaces |
| space.apps | String list | Porlets' name: true/false | DashboardPortlet:true; SpaceSettingPortlet:false; MembersPortlet:true | The list of configurations for portlets used as portlet applications. |
<external-component-plugins>
<target-component>org.exoplatform.social.core.space.spi.SpaceService</target-component>
<component-plugin>
<name>portlets.prefs.required</name>
<set-method>setPortletsPrefsRequired</set-method>
<type>org.exoplatform.social.core.application.PortletPreferenceRequiredPlugin</type>
<init-params>
<values-param>
<name>portletsPrefsRequired</name>
<value>SpaceActivityStreamPortlet</value>
<value>SpaceSettingPortlet</value>
<value>MembersPortlet</value>
</values-param>
</init-params>
</component-plugin>
</external-component-plugins>
In which:
| Name | Set-method | Type | Description |
|---|---|---|---|
| PortletPreferenceRequiredPlugin | setPortletsPrefsRequired | org.exoplatform.social.core.application.PortletPreferenceRequiredPlugin | Configure the list of portlet names which will have portlet preference of space context. |
Init-params:
| Name | Possible value | Default Value | Description |
|---|---|---|---|
| portletsPrefsRequired | Portlet names | SpaceActivityStreamPortlet; SpaceSettingPortlet; MembersPortlet | List of portlets which need to be saved and get the space context name. |
<component-plugin>
<name>OSHtmlSanitizer</name>
<set-method>addProcessorPlugin</set-method>
<type>org.exoplatform.social.core.processor.OSHtmlSanitizerProcessor</type>
<init-params>
<values-param>
<name>allowedTags</name>
<value>b</value>
<value>i</value>
<value>a</value>
<value>span</value>
<value>em</value>
<value>strong</value>
<value>p</value>
<value>ol</value>
<value>ul</value>
<value>li</value>
<value>br</value>
<value>img</value>
</values-param>
</init-params>
</component-plugin>
In which,
| Name | Set-method | Type | Description |
|---|---|---|---|
| OSHtmlSanitizerProcessor | addProcessorPlugin | org.exoplatform.social.core.processor.OSHtmlSanitizerProcessor | The plugin that renders valid html tags appearing in the Activity body (content). |
Init-params:
| Name | Possible value | Default Value | Description |
|---|---|---|---|
| allowedTags | html tags | b, i, a, span, em, strong, p, ol, ul,li, br, img | To process and render html tags in the activity content (body). |
<external-component-plugins>
<target-component>org.exoplatform.social.core.manager.ActivityManager</target-component>
<component-plugin>
<name>MentionsProcessor</name>
<set-method>addProcessorPlugin</set-method>
<type>org.exoplatform.social.core.processor.MentionsProcessor</type>
<init-params>
<value-param>
<name>priority</name>
<description>priority of this processor (lower number will be executed first)</description>
<value>2</value>
</value-param>
</init-params>
</component-plugin>
</external-component-plugins>
In which:
| Name | Set-method | Type | Description |
|---|---|---|---|
| MentionsProcessor | addProcessorPlugin | org.exoplatform.social.core.processor.MentionsProcessor | A processor that substitutes @username expressions by a link on the user profile. |
Init-params:
| Name | Possible value | Default Value | Description |
|---|---|---|---|
| priority | priority number | 2 | Priority of this processor (The lower level will be executed first). |
The service is to manipulate the identity operations like creating, getting, deleting or finding a profile.
<component>
<key>org.exoplatform.social.core.manager.IdentityManager</key>
<type>org.exoplatform.social.core.manager.IdentityManager</type>
<component-plugins>
<component-plugin>
<name>SpaceIdentityProvider plugin</name>
<set-method>registerIdentityProviders</set-method>
<type>org.exoplatform.social.core.identity.IdentityProviderPlugin</type>
<init-params>
<values-param>
<name>providers</name>
<description>Identity Providers</description>
<value>org.exoplatform.social.core.identity.provider.SpaceIdentityProvider</value>
</values-param>
</init-params>
</component-plugin>
</component-plugins>
</component>
In which:
| Name | Set-method | Type | Description |
|---|---|---|---|
| SpaceIdentityProvider plugin | registerIdentityProviders | org.exoplatform.social.core.identity.IdentityProviderPlugin | The plugin that provides identity for a space |
Init-params:
| Name | Possible value | Default Value | Description |
|---|---|---|---|
| providers | Every other identity providers | org.exoplatform.social.core.identity.provider.SpaceIdentityProvider | Identity Provider instances for managing identities. |
The service is used to configure the portal container name when there is a OpenSocial REST API request. By configuring this service, we can make sure to to reach the right portal container. The default portal container is portal.
This should be used when there is a portal container different than the default portal one.
<external-component-plugins>
<target-component>org.exoplatform.social.opensocial.auth.RestPortalContainerNameConfig</target-component>
<component-plugin>
<name>set portal container name used for REST service</name>
<set-method>setRestContainerName</set-method>
<type>org.exoplatform.social.opensocial.auth.RestPortalContainerNameConfig</type>
<init-params>
<value-param>
<name>rest-container-name</name>
<value>socialdemo</value>
</value-param>
</init-params>
</component-plugin>
</external-component-plugins>
In which:
| Name | Set-method | Type | Description |
|---|---|---|---|
| set portal container name used for REST service | setRestContainerName | org.exoplatform.social.opensocial.auth.RestPortalContainerNameConfig | The plugin provided to set rest portal container name for OpenSocial REST API request |
Init-params:
| Name | Possible value | Default Value | Description |
|---|---|---|---|
| rest-container-name | any valid portal container name | N/A | Portal container name |
In the eXo Spaces, we may have two space types (classic and webos spaces). This is for the classic mode (it's the only one implemented now).
For the classic space, we can pre-configure the template, meaning that you can set up where your menu will be displayed or where your application will be displayed.
Here is an example of configuration file that displays the menu on the left. The Application will be inserted in the container with the id Application:
<page>
<owner-type/>
<owner-id/>
<name/>
<container id="SpacePage" template="system:/groovy/portal/webui/container/UITableColumnContainer.gtmpl">
<container id="Menu" template="system:/groovy/portal/webui/container/UIContainer.gtmpl">
<portlet-application>
<portlet>
<application-ref>space</application-ref>
<portlet-ref>SpaceMenuPortlet</portlet-ref>
</portlet>
<access-permissions>*:/platform/users</access-permissions>
<show-info-bar>false</show-info-bar>
</portlet-application>
</container>
<container id="Application" template="system:/groovy/portal/webui/container/UIContainer.gtmpl">
</container>
</container>
</page>
In this example, the outer container contains two inner containers: one container has id as Menu for your Menu and another has id as Application containing your applications.
If you want to put your menu in right and your application in left, you can swap the declared position of two containers:
<page>
<owner-type/>
<owner-id/>
<name/>
<container id="SpacePage" template="system:/groovy/portal/webui/container/UITableColumnContainer.gtmpl">
<container id="Application" template="system:/groovy/portal/webui/container/UIContainer.gtmpl">
<container id="Menu" template="system:/groovy/portal/webui/container/UIContainer.gtmpl">
<portlet-application>
<portlet>
<application-ref>space</application-ref>
<portlet-ref>SpaceMenuPortlet</portlet-ref>
</portlet>
<access-permissions>*:/platform/users</access-permissions>
<show-info-bar>false</show-info-bar>
</portlet-application>
</container>
</container>
</container>
</page>
Here is the configure file in FishEye: http://fisheye.exoplatform.org/browse/social/trunk/extension/war/src/main/webapp/WEB-INF/conf/portal/template/pages/space/page.xml.
In your tomcat, this configuration file is at $EXOTOMCAT/webapps/social-ext/WEB-INF/conf/portal/template/pages/space/page.xml.
This is to explain how to configure the oAuth 2 legs scenario in openSocial.
For more information about this, visit the website: great article
To generate the key:
$ openssl req -newkey rsa:1024 -days 365 -nodes -x509 -keyout testkey.pem
-out testkey.pem -subj '/CN=mytestkey'
$ openssl pkcs8 -in testkey.pem -out oauthkey.pem -topk8 -nocrypt -outform PEM