I was reminded today by a colleague of a subtle nuance of Lotus Sametime and WebSphere Portal integration. For those not familiar with this area of integration, WebSphere Portal directly uses the STLinks toolkit from the Sametime server to provide awareness and chat capabilities with the Portal offering. The Sametime Links Toolkit (STLinks) has been released for some time now, and little has changed with respect to WebSphere's usage of the toolkit except for one seemingly minor detail.
Depending on your LDAP directory, the case of the LDAP user's distinguished name might be the lower case uid=idsuser1,cn=users,dc=ibm,dc=com as in the example above or mixed case UID=idsuser1,CN=users,DC=ibm,DC=com. This minor detail has an impact on WebSphere Portal V6's ability to easily integrate Sametime. In Portal V6, the distinguished name that is used as the first argument in the writeSTLinksApplet function is always lower case. WebSphere does this by default (designed behavior), and the result is the example shown above. If the case in LDAP differs, you'd ideally want Portal to use the following STLinks function call:
The above example is the behavior in Portal V5 - not so in Portal V6. Portal V6 changes all distinguished names to lower case. If you've ever designed your own application to use STLinks, the immediate response is, "so just change the case". This brings us to the relatively unknown nuance. The second argument in the writeSTLinksApplet function is the LTPAToken. The LTPAToken is a single sign on mechanism which is an encoded string of the LDAP realm, user's distinguished name, and expiration time. If attained from Portal V6, the token contains a distinguished name that is - you guessed it - lower case. When the Sametime server logs the user in using the writeSTLinksApplet call it will compare the name sent in the first argument and the name decrypted from the LTPAToken. If they differ (in case for example), no login to Sametime occurs. If you're troubleshooting but using the user's password as an argument, you might notice that you achieve awareness successfully. Again, the issue with case occurs only when using the LTPAToken.
This is a fairly long post for the simple fact that if your users in LDAP contain mixed case characters (Domino LDAP and Active Directory specifically), you will require a case fix applied to Sametime when integrated with Portal V6. If using Sametime 7.5.1+, this is trivial as a workaround is inherent in the product. If you're using any previous version of Sametime, you may need to contact support for added assistance. If using Sametime 7.5.1+, update the stlinks.js file's STlinksCaseSensitive variable to :
Append the AWARENESS_CASE_SENSITIVE=0 argument to the STLINKS_VM_ARGS property and add the AWARENESS_CASE_SENSITIVE=0 property value pair to the [Config] section. For example,
[STLinks]STLINKS_VM_ARGS=-Xmx128m -Xgcpolicy:optavgpause -Xrs -DAWARENESS_CASE