http://server:port/wps/portal/cxml/04_SD9ePMtCP1I800I_KydQvyHFUBADPmuQy?userid=userid&password=password
where you need to replace the variables for server,port, userid, and password with the values set for your environment. For example, th
http://server:port/wps/portal/cxml/04_SD9ePMtCP1I800I_KydQvyHFUBADPmuQy?userid=userid&password=password
<web-app action="locate"
element. To locate the login portlet you can use the uid for both web application(uid="login.war.webmod"), portlet(uniquename="wps.p.Login"). Portal server reads these values from the web.xml, portlet.xml so unless you went and changed the uid in your login portlet it should not be same on your environment as that used in this post. ONce the login portlet is located <component action="update"
element will take care of adding that portlet on the page.
<?xml version="1.0" encoding="UTF-8"?>
<!-- IBM WebSphere Portal/6.1.0.1 build wp6101_115_01 exported on Tue Mar 31 18:32:25 PDT 2009 from sunpatil-wxp/192.168.2.105 -->
<!-- 1 [content-node 6_000000000000000000000000A0] -->
<!-- 2 [content-node 6_CGAH47L00G72502N5S2MAV00M1 uniquename=wps.Login] -->
<!-- 3 [component 7_CGAH47L00G72502N5S2MAV00M7] -->
<!-- 4 [component 7_CGAH47L00G72502N5S2MAV00E0] -->
<!-- 5 [skin K_CGAH47L00G72502N5S2MAV00C6] -->
<!-- 6 [component 7_CGAH47L00G72502N5S2MAV00E4] -->
<!-- 7 [web-app 1_CGAH47L00G72502N5S2MAV00C3] -->
<!-- 8 [portlet-app 2_CGAH47L00G72502N5S2MAV00C7] -->
<!-- 9 [servlet V_CGAH47L00G72502N5S2MAV00S0] -->
<!-- 10 [portlet 3_CGAH47L00G72502N5S2MAV00S4] -->
<!-- 11 [portletinstance 5_CGAH47L00G72502N5S2MAV00E2] -->
<request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" build="wp6101_115_01" type="update" version="6.1.0.1" xsi:noNamespaceSchemaLocation="PortalConfig_6.1.0.xsd">
<portal action="locate">
<skin action="locate" domain="rel" objectid="K_CGAH47L00G72502N5S2MAV00C6" uniquename="wps.skin.thinSkin"/>
<web-app action="locate" domain="rel" objectid="1_CGAH47L00G72502N5S2MAV00C3" uid="login.war.webmod">
<servlet action="locate" domain="rel" name="Login Portlet" objectid="V_CGAH47L00G72502N5S2MAV00S0"/>
<portlet-app action="locate" domain="rel" name="wp.ap.login" objectid="2_CGAH47L00G72502N5S2MAV00C7" uid="login.war">
<portlet action="locate" domain="rel" name="Login Portlet" objectid="3_CGAH47L00G72502N5S2MAV00S4" uniquename="wps.p.Login"/>
</portlet-app>
</web-app>
<content-node action="locate" domain="rel" objectid="6_000000000000000000000000A0" uniquename="wps.content.root"/>
<content-node action="update" active="true" allportletsallowed="true" content-parentref="6_000000000000000000000000A0" create-type="explicit" domain="rel" objectid="6_CGAH47L00G72502N5S2MAV00M1" ordinal="350" type="page" uniquename="wps.Login">
<supported-markup markup="html" update="set"/>
<localedata locale="ar">
<title>بدء الاتصال</title>
</localedata>
<localedata locale="ca">
<title>Inicia una sessió</title>
</localedata>
<localedata locale="cs">
<title>Přihlásit se</title>
</localedata>
<localedata locale="da">
<title>Logon</title>
</localedata>
<localedata locale="de">
<title>Anmelden</title>
</localedata>
<localedata locale="el">
<title>ΣÏνδεση</title>
</localedata>
<localedata locale="en">
<title>Login</title>
</localedata>
<localedata locale="es">
<title>Iniciar sesión</title>
</localedata>
<localedata locale="fi">
<title>Kirjaudu sisään</title>
</localedata>
<localedata locale="fr">
<title>Connexion</title>
</localedata>
<localedata locale="hu">
<title>Bejelentkezés</title>
</localedata>
<localedata locale="it">
<title>Collegamento</title>
</localedata>
<localedata locale="iw">
<title>התחברות</title>
</localedata>
<localedata locale="ja">
<title>ãƒã‚°ã‚¤ãƒ³</title>
</localedata>
<localedata locale="ko">
<title>로그ì¸</title>
</localedata>
<localedata locale="nl">
<title>Aanmelden</title>
</localedata>
<localedata locale="no">
<title>Logg på</title>
</localedata>
<localedata locale="pl">
<title>Logowanie</title>
</localedata>
<localedata locale="pt">
<title>Iniciar sessão</title>
</localedata>
<localedata locale="pt_BR">
<title>Efetuar Login</title>
</localedata>
<localedata locale="ro">
<title>Logare</title>
</localedata>
<localedata locale="ru">
<title>Вход в ÑиÑтему</title>
</localedata>
<localedata locale="sk">
<title>Prihlásiť</title>
</localedata>
<localedata locale="sl">
<title>Prijava</title>
</localedata>
<localedata locale="sv">
<title>Inloggning</title>
</localedata>
<localedata locale="th">
<title>ลงชื่à¸à¹€à¸‚้าใช้</title>
</localedata>
<localedata locale="tr">
<title>Oturum Aç</title>
</localedata>
<localedata locale="uk">
<title>Вхід до ÑиÑтеми</title>
</localedata>
<localedata locale="zh">
<title>登录</title>
</localedata>
<localedata locale="zh_TW">
<title>登入</title>
</localedata>
<localedata locale="hr">
<title>Prijava</title>
</localedata>
<parameter name="RenderMode" type="string" update="set"><![CDATA[force_ssa]]></parameter>
<parameter name="com.ibm.portal.Hidden" type="string" update="set"><![CDATA[true]]></parameter>
<parameter name="com.ibm.portal.PageIcon" type="string" update="set"><![CDATA[icons/page/login.gif]]></parameter>
<parameter name="com.ibm.portal.ThemePolicy" type="string" update="set"><![CDATA[theme/SingleTopNavMinimal]]></parameter>
<access-control externalized="false" owner="undefined" private="false">
<role actionset="User" update="set">
<mapping subjectid="anonymous portal user" subjecttype="user" update="set"/>
<mapping subjectid="all authenticated portal users" subjecttype="user_group" update="set"/>
</role>
</access-control>
<component action="update" active="true" deletable="undefined" domain="rel" modifiable="undefined" objectid="7_CGAH47L00G72502N5S2MAV00M7" ordinal="100" orientation="H" skinref="undefined" type="container" width="undefined">
<component action="update" active="true" deletable="undefined" domain="rel" modifiable="undefined" objectid="7_CGAH47L00G72502N5S2MAV00E0" ordinal="99" orientation="V" skinref="undefined" type="container" width="700">
<component action="update" active="true" deletable="undefined" domain="rel" modifiable="undefined" objectid="7_CGAH47L00G72502N5S2MAV00E4" ordinal="99" skinref="K_CGAH47L00G72502N5S2MAV00C6" type="control" width="undefined">
<portletinstance action="update" domain="rel" objectid="5_CGAH47L00G72502N5S2MAV00E2" portletref="3_CGAH47L00G72502N5S2MAV00S4"/>
</component>
</component>
</component>
</content-node>
</portal>
<status element="all" result="ok"/>
</request>
dijit.form.Button
button.
<%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" session="false"%>
<%@taglib uri="http://java.sun.com/portlet" prefix="portlet"%>
<%@taglib uri="http://www.ibm.com/xmlns/prod/websphere/portal/v6.1/portlet-client-model" prefix="portlet-client-model"%>
<%@taglib uri="http://java.sun.com/portlet" prefix="portletx"%>
<portlet-client-model:init>
<portlet-client-model:require module="ibm.portal.xml.*" />
<portlet-client-model:require module="ibm.portal.portlet.*" />
</portlet-client-model:init>
<portlet:defineObjects />
<script>
dojo.require("dojo.parser");
dojo.require("dijit.form.Button");
dojo.addOnLoad( function (){
console.log("Inside dojo.addOnLoad()");
dojo.parser.parse( "portletWidgetContainer");
});
function call_function(){
console.log("Inside the button event handler");
alert("Inside the button event handler")
}
</script>
<div id="portletWidgetContainer">
<button dojoType="dijit.form.Button" onclick="call_function">
Hi I am the One !!
</button>
</div>
dojo.parser.parse(<enclosingelementid>)
to parse the markup of the portelt for dijit widgets
<user-attribute>
<description xml:lang="en">User Given Name</description>
<name>user.name.given</name>
</user-attribute>
<user-attribute>
<description xml:lang="en">User Last name</description>
<name>user.name.family</name>
</user-attribute>
Map userInfo = (Map)request.getAttribute(PortletRequest.USER_INFO);
if(userInfo != null){
String givenName = (String)userInfo.get("user.name.given");
String lastName =(String)userInfo.get("user.name.family");
response.getWriter().println("Hello " + givenName +" " + lastName);
}
public class PUMAPortlet extends javax.portlet.GenericPortlet {
private PumaHome pumaHome = null;
public void init() throws PortletException{
super.init();
PortletServiceHome portletServiceHome =null;
try {
Context context = new InitialContext();
portletServiceHome = (PortletServiceHome)
context.lookup("portletservice/com.ibm.portal.um.portletservice.PumaHome");
if(portletServiceHome != null){
pumaHome =(PumaHome)portletServiceHome.getPortletService(PumaHome.class);
}
} catch (NamingException e) {
e.printStackTrace();
}
}
public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
response.setContentType(request.getResponseContentType());
demoCurrentUser(request, response);
demoFindingUserByAttribute(request, response);
demoFindUserByDn(request,response);
}
public void demoCurrentUser(RenderRequest portletRequest, RenderResponse portletResponse){
try {
PumaProfile pumaProfile = pumaHome.getProfile(portletRequest);
User user = pumaProfile.getCurrentUser();
List attributeList = new ArrayList();
attributeList.add("sn");
attributeList.add("givenName");
attributeList.add("uid");
attributeList.add("preferredLanguage");
Map userAttributeMap = pumaProfile.getAttributes(user, attributeList);
PrintWriter out = portletResponse.getWriter();
out.println("DN of current User " + pumaProfile.getIdentifier(user) + "");
out.println("Attributes Values for current user
" );
Iterator userAttributeIt = userAttributeMap.keySet().iterator();
while(userAttributeIt.hasNext()){
String attributeName = (String)userAttributeIt.next();
Object attributeValue = userAttributeMap.get(attributeName);
out.println(attributeName + " = " + attributeValue);
out.println("
");
}
out.println("
");
System.out.println("Inside demoCurrentUser " + pumaProfile.getIdentifier(user));
} catch (PumaAttributeException e) {
e.printStackTrace();
} catch (PumaSystemException e) {
e.printStackTrace();
} catch (PumaModelException e) {
e.printStackTrace();
} catch (PumaMissingAccessRightsException e) {
e.printStackTrace();
} catch (PumaException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void demoFindingUserByAttribute(PortletRequest portletRequest, RenderResponse portletResponse){
try {
PumaLocator pumaLocator = pumaHome.getLocator(portletRequest);
PumaProfile pumaProfile = pumaHome.getProfile(portletRequest);
List userList = pumaLocator.findUsersByAttribute("uid", "sunilpatil");
List attributeList = new ArrayList();
attributeList.add("sn");
attributeList.add("givenName");
attributeList.add("uid");
attributeList.add("preferredLanguage");
User firstUser = (User)userList.get(0);
Map userAttributeMap = pumaProfile.getAttributes(firstUser, attributeList);
PrintWriter out = portletResponse.getWriter();
out.println("Attributes Values for uid=sunilpatil user
" );
Iterator userAttributeIt = userAttributeMap.keySet().iterator();
while(userAttributeIt.hasNext()){
String attributeName = (String)userAttributeIt.next();
Object attributeValue = userAttributeMap.get(attributeName);
out.println(attributeName + " = " + attributeValue);
out.println("
");
}
out.println("
");
} catch (PumaSystemException e) {
e.printStackTrace();
} catch (PumaModelException e) {
e.printStackTrace();
} catch (PumaMissingAccessRightsException e) {
e.printStackTrace();
} catch (PumaAttributeException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void demoFindUserByDn(RenderRequest renderRequest, RenderResponse renderResponse){
try {
PumaLocator pumaLocator = pumaHome.getLocator(renderRequest);
PumaProfile pumaProfile = pumaHome.getProfile(renderRequest);
User user = pumaLocator.findUserByIdentifier("uid=wasadmin,o=default organization");
List attributeList = new ArrayList();
attributeList.add("sn");
attributeList.add("givenName");
attributeList.add("uid");
attributeList.add("preferredLanguage");
Map userAttributeMap = pumaProfile.getAttributes(user, attributeList);
PrintWriter out = renderResponse.getWriter();
out.println("Attributes Values for 'uid=wasadmin,o=default organization' user
" );
Iterator userAttributeIt = userAttributeMap.keySet().iterator();
while(userAttributeIt.hasNext()){
String attributeName = (String)userAttributeIt.next();
Object attributeValue = userAttributeMap.get(attributeName);
out.println(attributeName + " = " + attributeValue);
out.println("
");
}
out.println("
");
} catch (PumaSystemException e) {
e.printStackTrace();
} catch (PumaModelException e) {
e.printStackTrace();
} catch (PumaMissingAccessRightsException e) {
e.printStackTrace();
} catch (PumaAttributeException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
wp-query-attribute-config
task explained in Querying LDAP attribute gives you high level mapping of LDAP attribute vs WebSphere Portal attribute. ./ConfigEngine.sh wp-validate-standalone-ldap-attribute-config
task that can be used to get more detailed information
[wplc-validate-ldap-attribute-config] The following attribues are defined in Portal but not in LDAP - You should either flag them as unsupported or define an attribute mapping:
[wplc-validate-ldap-attribute-config] [groups, identifier, ibm-jobTitle, entitlementInfo, realm, viewIdentifiers, certificate, stateOrProvinceName, createTimestamp, modifyTimestamp, ibm-primaryEmail, children, parent, c, partyRoles, principalName, countryName, localityName]
[wplc-validate-ldap-attribute-config] The following attributes are flagged as required in LDAP but not in Portal - You should flag them as required in Portal, too:
[wplc-validate-ldap-attribute-config] [sn, cn]
[wplc-validate-ldap-attribute-config] FYI: The following attributes have a diffenrent type in Portal and in LDAP - No action is required:
[wplc-validate-ldap-attribute-config] jpegPhoto: Base64Binary <> 1.3.6.1.4.1.1466.115.121.1.5
[wplc-validate-ldap-attribute-config] password: Base64Binary <> 1.3.6.1.4.1.1466.115.121.1.5
[wplc-validate-ldap-attribute-config] seeAlso: String <> 1.3.6.1.4.1.1466.115.121.1.12
[wplc-validate-ldap-attribute-config] Possible problems for Group:
[wplc-validate-ldap-attribute-config] The following attribues are defined in Portal but not in LDAP - You should either flag them as unsupported or define an attribute mapping:
[wplc-validate-ldap-attribute-config] [modifyTimestamp, groups, members, identifier, displayName, parent, children, entitlementInfo, partyRoles, viewIdentifiers, createTimestamp]
[wplc-validate-ldap-attribute-config] The following attributes are flagged as required in LDAP but not in Portal - You should flag them as required in Portal, too:
[wplc-validate-ldap-attribute-config] []
[wplc-validate-ldap-attribute-config] FYI: The following attributes have a diffenrent type in Portal and in LDAP - No action is required:
[wplc-validate-ldap-attribute-config] seeAlso: String <> 1.3.6.1.4.1.1466.115.121.1.12
[wplc-validate-ldap-attribute-config] Status = Complete
Target finished: wp-validate-standalone-ldap-attribute-config
Mon Mar 30 12:51:21 EDT 2009
Target started: action-post-config
standalone.ldap.attributes.nonSupported=certificate, members
standalone.ldap.attributes.nonSupported.delete=
standalone.ldap.attributes.mapping.ldapName=mail,title
standalone.ldap.attributes.mapping.portalName=ibm-primaryEmail, ibm-jobTitle
standalone.ldap.attributes.mapping.entityTypes=PersonAccount, Group
ConfigEngine.bat wp-update-standalone-ldap-attribute-config
task to either map attributes from LDAP to portal or mark attributes as not supported.
./ConfigEngine.sh wp-la-install-ear
task, this task will install WIMSYSTEM.ear which contains wimejb.jar on your portal server. The wimejb.jar is used for actual attribute addition
com.ibm.CORBA.loginUserid=wasadmin
com.ibm.CORBA.loginPassword=wasadmin
la.providerURL=corbaloc:iiop:localhost:10031
la.propertyName=postOfficeBox
la.entityTypes=PersonAccount
la.dataType=String
la.multiValued=yes
./ConfigEngine.sh wp-add-property -DparentProperties=/software/IBM/WebSphere/wp_profile/ConfigEngine/config/helpers/addattribute.properties
./ConfigEngine.sh wp-query-attribute-config
to check the updated attribute attribute mapping, you should see name of the postOfficeBox attribute in the listConfigEngine.bat wp-query-attribute-config
configuration command. This command creates availableAttributes.html in the wp_profile/ConfigEngine/log directory. This HTML file has table with two columns. First column lists out the attributes defined in the WebSphere Portal and second column lists out how it is mapped to LDAP attribute. If there is a match it will show checked sign. If not it will show "not supported" to indicate that this attribute is not supported. If the attribute in LDAP has different name then it will display the attribute name in ldap in second column. Take a look at this screen shot which says that homePostalAddress
attribute is not supported and password
is mapped to userPassword
in LDAP.
# The id specifies a unique identifier for the repository within the cell
# Characters that are not allowed in normal XML strings ( & < > " ' ) cannot be used in the repository ID.
standalone.ldap.id=spinfotech
# Specifies the host name of the primary LDAP server. This host name is either an IP address or a domain name service (DNS) name.
standalone.ldap.host=192.168.174.1
# Specifies the LDAP server port.
standalone.ldap.port=389
# Specifies the distinguished name for the application server to use when binding to the LDAP repository.
standalone.ldap.bindDN=uid=wpsbind,cn=users,dc=spinfotech,dc=com
# Specifies the password for the application server to use when binding to the LDAP repository.
standalone.ldap.bindPassword=wpsbind
# Specifies the type of LDAP server to which you connect
# Supported values on WAS 6.1: IDS4, IDS51, IDS52, IDS6, SECUREWAY
# Note: If your LDAP server version is not listed, enter the value for the highest listed version of your server
# Supported values on WAS 7: IDS
standalone.ldap.ldapServerType=IDS6
# Specifies the LDAP filter that maps the short name of a user to an LDAP entry.
# For example, to display entries of the object class = inetOrgPerson type by their IDs, specify inetOrgPerson:uid.
# This field takes multiple objectclass:property pairs delimited by a semicolon (;).
# note: not used during node federation to DMGR with WAS ldap security enabled
standalone.ldap.userIdMap=*:uid
# Specifies the LDAP filter that maps the short name of a group to an LDAP entry.
# Specifies the piece of information that represents groups when groups display. For example, to display groups by their names, specify *:cn.
# The asterisk (*) is a wildcard character that searches on any object class in this case.
# This field takes multiple objectclass:property pairs, delimited by a semicolon (;).
# note: not used during node federation to DMGR with WAS ldap security enabled
standalone.ldap.groupIdMap=*:cn
# Specifies the LDAP filter that identifies user-to-group relationships.
# Specifies which property of an objectclass stores the list of members belonging to the group represented by the objectclass.
# For directory types SecureWay, and Domino, this field takes multiple objectclass:property pairs, delimited by a semicolon (;).
# For IBM Directory Server, Sun ONE, and Active Directory, this field takes multiple group attribute:member attribute pairs delimited by a semicolon (;).
# For more information about this syntax, see the LDAP directory service documentation.
# note: not used during node federation to DMGR with WAS ldap security enabled
standalone.ldap.groupMemberIdMap=
# Specifies the LDAP user filter that searches the user registry for users.
# For example, to look up users based on their user IDs, specify (&(uid=%v)(objectclass=inetOrgPerson))
# note: not used during node federation to DMGR with WAS ldap security enabled
standalone.ldap.userFilter=(&(uid=%v)(objectclass=inetOrgPerson))
# Specifies the LDAP group filter that searches the user registry for groups.
# note: not used during node federation to DMGR with WAS ldap security enabled
standalone.ldap.groupFilter=(&(cn=%v)(objectclass=groupOfUniqueNames))
# Specifies a user ID and password in the repository that is used for internal process communication.
# note: not used during node federation to DMGR with WAS ldap security enabled
standalone.ldap.serverId=uid=wpsbind,cn=users,dc=spinfotech,dc=com
standalone.ldap.serverPassword=wpsbind
# The security context of this server. A realm with this name will be created.
standalone.ldap.realm=spinfotech
# The ID of the WAS admin user. The ID must exist in the LDAP server.
standalone.ldap.primaryAdminId=uid=wasadmin,cn=users,dc=spinfotech,dc=com
standalone.ldap.primaryAdminPassword=wasadmin
# The ID of the portal admin user. The ID must exist in the LDAP server.
standalone.ldap.primaryPortalAdminId=uid=wasadmin,cn=users,dc=spinfotech,dc=com
standalone.ldap.primaryPortalAdminPassword=wasadmin
# The user group with admin permission in portal. The group must exist in the LDAP server.
standalone.ldap.primaryPortalAdminGroup=cn=wpsadmins,cn=groups,dc=spinfotech,dc=com
# The LDAP base entry.
# This is the startpoint for all LDAP searches of Websphere Application Server Security
standalone.ldap.baseDN=dc=spinfotech,dc=com
########################
##
## LDAP entity types
##
########################
# Entity type Group
# The search filter that you want to use to search the entity type.
# VMM uses this filter as an addition during search requests in your environment
# The syntax is like a standard LDAP searchfilter like (objectclass=groupOfUniqueNames)
# In general this value can be left blank
standalone.ldap.et.group.searchFilter=
# One or more object classes (separated by ';') for the entity type.
standalone.ldap.et.group.objectClasses=groupOfUniqueNames
# The object class(es) (separated by ';') to use when an entity type is created. If the value of this parameter is the same as the objectClass parameter, you do not need to specify this parameter.
standalone.ldap.et.group.objectClassesForCreate=
# The search base or bases to use while searching the entity type.
standalone.ldap.et.group.searchBases=
# Entity type PersonAccount
# The search filter that you want to use to search the entity type.
# VMM uses this filter as an addition during search requests in your environment
# The syntax is like a standard LDAP searchfilter like (objectclass=inetOrgPerson)
# In general this value can be left blank
standalone.ldap.et.personaccount.searchFilter=
# One or more object classes (separated by ';') for the entity type.
# Please check this value with the objectclass used in your LDAP for type User
standalone.ldap.et.personaccount.objectClasses=inetOrgPerson
# The object class(es) (separated by ';') to use when an entity type is created. If the value of this parameter is the same as the objectClass parameter, you do not need to specify this parameter.
standalone.ldap.et.personaccount.objectClassesForCreate=
# The search base or bases to use while searching the entity type.
standalone.ldap.et.personaccount.searchBases=
########################
##
## End LDAP entity types
##
########################
###################################################
##
## Group member attributes
##
###################################################
# The name of the LDAP attribute that is used as the group member attribute. For example, member or uniqueMember.
standalone.ldap.gm.groupMemberName=uniqueMember
# The group object class that contains the member attribute. For example, groupOfNames or groupOfUnqiueNames.
# If you do not define this parameter, the member attribute applies to all group object classes.
standalone.ldap.gm.objectClass=groupOfUniqueNames
# The scope of the member attribute. The valid values for this parameter include the following:
# direct - The member attribute only contains direct members.
# nested - The member attribute that contains the direct members and the nested members.
standalone.ldap.gm.scope=direct
# If you create a group without specifying a member, a dummy member will be filled in to avoid creating an exception about missing a mandatory attribute.
standalone.ldap.gm.dummyMember=uid=dummy
###############################
# Default parent, RDN attribute
###############################
# The default parents to be set for the the entity types PersonAccount and Group
standalone.ldap.personAccountParent=cn=users,dc=spinfotech,dc=com
standalone.ldap.groupParent=cn=groups,dc=spinfotech,dc=com
# The RDN attribute names for the entity types PersonAccount and Group
# To reset all the values of the rdnProperties parameter, specify a blank string ("").
standalone.ldap.personAccountRdnProperties=uid
standalone.ldap.groupRdnProperties=cn
###################################################
##
## End Group member attributes
##
###################################################
###############################################################################
##
## Advanced Properties
##
###############################################################################
###################
# Group config
###################
# The name of the membership attribute. For example, memberOf in an active directory server and ibm-allGroups in IDS.
standalone.ldap.gc.name=
# Updates the group membership if the member is deleted or renamed. Some LDAP servers, for example, Domino server, do not clean up
# the membership of the user when a user is deleted or renamed. If you choose these LDAP server types in the ldapServerType property,
# the value of this parameter is set to true. Use this parameter to change the value. The default value is false.
standalone.ldap.gc.updateGroupMembership=
# The scope of the membership attribute. The valid values for this parameter include the following:
# direct - The membership attribute only contains direct groups.
# nested - The membership attribute that contains the direct groups and the nested groups.
# all - The membership attribute contains direct groups, nested groups, and dynamic members.
# The default value is direct.
standalone.ldap.gc.scope=direct
# Controls how aliases are dereferenced. The default value is always. Valid values include:
# always - always deference aliases
# never - never deference aliases
# finding - deference aliases only during name resolution
# searching - deference aliases only after name resolution
standalone.ldap.derefAliases=always
# Indicates the authentication method to use. The default value is simple. Valid values include: none or strong.
standalone.ldap.authentication=simple
# The LDAP referral. The default value is ignore. Valid values include: follow, throw, or false.
standalone.ldap.referral=ignore
# Specifies the delimiter used for this realm. The default value is /.
standalone.ldap.delimiter=/
# Whether the query matches case sensitivity.
# note: not used during node federation to DMGR with WAS ldap security enabled
standalone.ldap.ignoreCase=true
# Specifies whether secure socket communication is enabled to the LDAP server.
# When enabled (sslEnabled=true), the Secure Sockets Layer (SSL) settings for LDAP are used.
# The default value is false.
standalone.ldap.sslEnabled=false
# Specifies the name of the application server SSL configuration to be used for SSL enabled LDAP server.
# This property is used to specify a non default SSL configuration if standalone.ldap.sslEnabled=true is set
standalone.ldap.sslConfiguration=
# Specifies whether to map X.509 certificates into a LDAP directory by exact distinguished name or certificate filter.
# Specify the certificate filter to use the specified filter for the mapping, if client certificate authentication is used
# for portal server.
# Valid values include: EXACT_DN, CERTIFICATE_FILTER
standalone.ldap.certificateMapMode=EXACT_DN
# Specifies the filter certificate mapping property for the LDAP filter, if client certificate authentication is used
# for portal server.
# The filter is used to map attributes in the client certificate to entries within the LDAP repository.
standalone.ldap.certificateFilter=
# Should be set to true by default to reuse the LDAP connection.
# note: not used during node federation to DMGR with WAS ldap security enabled
standalone.ldap.reuseConnection=true
# Specifies the timeout value in miliseconds for an LDAP server to respond before aborting a request.
standalone.ldap.searchTimeLimit=120000
# Defines if VMM will enable the ConnectionPool
standalone.ldap.connectionPool=false
# Indicates if sorting is supported or not. The default value is false.
standalone.ldap.supportSorting=false
# Indicates if paging is supported or not.
standalone.ldap.supportPaging=false
# Indicates if transactions are supported or not. The default value is false.
standalone.ldap.supportTransactions=false
# Specifies if the external ID is unique. The default value is true.
standalone.ldap.isExtIdUnique=true
# Indicates if external names are supported or not. The default value is false.
standalone.ldap.supportExternalName=false
# Indicates to translate RDN or not. The default value is false.
standalone.ldap.translateRDN=false
# The value of the search count limit.
standalone.ldap.searchCountLimit=500
# The value of search page size.
standalone.ldap.searchPageSize=
# Indicates to return to the primary LDAP server when it is available. The default value is true.
standalone.ldap.returnToPrimaryServer=
# Indicates the polling interval for testing the primary server availability.
# The value of this parameter is specified in minutes. The default value is 15.
standalone.ldap.primaryServerQueryTimeInterval=
# Indicates the property name used for login.
standalone.ldap.loginProperties=uid
# The maximum number of context instances that can be maintained concurrently by the context pool.
# The default value is 20.
standalone.ldap.cp.maxPoolSize=20
./ConfigEngine.sh validate-standalone-ldap -DWasPassword=wasadmin -DparentProperties=/software/IBM/WebSphere/wp_profile/ConfigEngine/config/helpers/wp_security_ids.properties
./ConfigEngine.sh wp-modify-ldap-security -DWasPassword=wasadmin -DparentProperties=/software/IBM/WebSphere/wp_profile/ConfigEngine/config/helpers/wp_security_ids.properties
backupConfig
command is a simple utility to back up the configuration of your node to a file. It is highly recommended that you backup your configuration before you make any major configuration change. When you execute the backupConfig command it will take backup of your profile configuration and if something goes wrong you can restore configuration by using restoreConfig
command
./backupConfig.sh /tmp/WebSphere_Portal_03_29_2009.zip
ConfigEngine.bat activate-portlets
task to synchronize changes to all portals and activate deployed portlet.Portal Search |
|
Virtual Member Manager |
|
Web Content Management |
|
Access Control |
|
XMLAccess |
|
<services xmi:type="traceservice:TraceService" xmi:id="TraceService_1226779529755" enable="false" startupTraceSpecification="*=info:com.ibm.wps.ac.*=all" traceOutputType="SPECIFIED_FILE" traceFormat="LOG_ANALYZER">
<traceLog xmi:id="TraceLog_1226779529758" fileName="${SERVER_LOG_ROOT}/trace.log" rolloverSize="20" maxNumberOfBackupFiles="3"/>
</services>
AJAX Proxy Configuration.ear
file that define Ajax Proxy at the level of portal. All portlets, themes, other enterprise applications can use it.wp_profile\installedApps\sunpa\AJAX Proxy Configuration.ear\wp.proxy.config.war\WEB-INF\proxy-config.xml
and restart the Ajax Proxy Configuration application.wp_profile\installedApps\sunpa\wps.ear\wps.war\WEB-INF\web.xml
. By default it is configured to forward every request to /wps/proxy and /wps/myproxy to the Ajax Proxy Servlet. So if you want to support any other url mapping such as /ibm then you will have to change the web.xml file in the wps.war and redeploy it.
proxy.enforce.global.config = true
<?xml version="1.0" encoding="UTF-8"?>
<proxy-rules xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:proxy="http://www.ibm.com/xmlns/prod/sw/ajax/proxy-config/1.0">
<proxy:mapping contextpath="/ibm" url="http://www.ibm.com" />
<proxy:policy url="http://www.ibm.com/*" acf="none">
<proxy:actions>
<proxy:method>GET</proxy:method>
<proxy:method>POST</proxy:method>
</proxy:actions>
</proxy:policy>
<proxy:meta-data>
<proxy:name>max-connections-per-host</proxy:name>
<proxy:value>5</proxy:value>
</proxy:meta-data>
<proxy:meta-data>
<proxy:name>max-total-connections</proxy:name>
<proxy:value>100</proxy:value>
</proxy:meta-data>
</proxy-rules>
function getYahooData(){
console.log("getYahooData.xhrGet()");
try{
dojo.xhrGet({
url: "/ibm",
load: function(data,error){
alert(data)
},
error: function(data, error){
alert("Error occured in accessing http://www.yahoo.com")
}
});
}catch(e){
alert(e);
}
}
ConfigEngine.sh create-virtual-portal
task to create virtual portal. Please note one important point that when you create a virtual portal using configuration task, portal will create blank/empty virtual portal.-DparentProperties=<pathofvirtualportal.properties>
command line parameter