Author: Jeff Potts

Goodnight, Bucharest!

My last night here in Bucharest was delightful. Two Swiss Optarians (Tito & Loic) and I were given the grand tour of downtown by Mirela, the leader of Optaros Bucharest. I’ve posted the pictures from the end of the day at the office and our tour around town here.

I have to say that every meal we ate in Bucharest was delicious but the dinner we had at Burebista Bucuresti was outstanding. I had fried chicken legs on a bed of polenta with a big side of knock-you-on-your-ass garlic sauce. After dinner we tried palinca which is one of the “National Drinks of Romania”. It is essentially liquid fire with a hint of plum and a lip-numbing finish. I’m glad I tried it but next time I’ll stick with the Silva Dark.

It was great meeting and working with the Optaros team here in Bucharest. Working remotely is a natural part of everyday life for us at Optaros but these face-to-face meetings are the best way to build relationships. Thanks for everything, Optaros Bucharest, and I’ll see you soon.

I’m in Bucharest

I’m visiting the Optaros office in Bucharest this week. I thought I might get a respite from the Texas heat but it’s much hotter here than it is in Dallas right now.

Yesterday afternoon I took a stroll around Herestrau park and this morning I explored downtown (Here are a few pics).

Off-topic: Lone Star shines bright in vacuum of Dallas airspace

With the exception of KERA 90.1 and KNON 89.3, Dallas radio has been a cold, empty place, completely devoid of decent music since the George Gimarc days of KDGE 94.5. Now a bright shining star has made an appearance: KZPS “Lone Star” 92.5 has changed its format from Classic Rock to Americana/Root Rock. In just a short trip running errands today I heard Ryan Adams, Black Crowes (they play a lot of Crowes), and Slobberbone. Todd Snider gets a ton of play as well as does Son Volt, particularly tracks off of their recent release, The Search. What’s even more amazing to me is that this is a Clear Channel station. If you like alt-country or Americana, give them a listen.

New Alfresco tutorial on working with a custom content model

UPDATE (2012): I’ve recently published a second edition of this tutorial that updates the original with Alfresco Share and CMIS.

UPDATE (2014): I’ve moved the tutorial and the source code to GitHub. The HTML version of the tutorial is here. It has been updated for Maven and AMPs.

I’ve written a new article (with sample files) that talks about how to extend Alfresco with your own content model and how to work with content that leverages that model via the Web Services API. All of the examples are written in Java but I do include one in PHP just for grins.

Most of the code is based on the Alfresco SDK Web Services sample code, but I’ve tweaked it here and there and I break it down into smaller chunks with commentary. I also think it is good to have one example to follow that takes you from designing the content model to implementing it to writing code that might leverage it.

More about the Alfresco Developer Series.

West Coast Alfresco/Liferay Meetup July 18th

I’m terribly disappointed that I won’t be able to make it, but I wanted to pass it on: There’s an Alfresco/Liferay Meetup in Ontario, California on July 18th. The format will be a collection of small roundtables. It should be a great opportunity for people who are exploring Alfresco and Liferay (together or separately) to learn more and for others to share their knowledge and experiences. If you are on or near the West Coast you should check it out. Learn more and sign up at http://web.meetup.com/44/.

Alfresco-LDAP integration notes

Getting Alfresco to authenticate against LDAP is a pretty straightforward task that’s documented on the Alfresco wiki. But this week I’ve had to play around with a few specific implementation details beyond just users in a directory with plain-text passwords and simple authentication. Here are some rough notes that might save others some time.

Alfresco-LDAP notes

  • If “admin” is still your administrative user, don’t forget to set up a corresponding entry for the admin user in your LDAP directory.
  • “Simple” authentication works when OpenLDAP stores either plain text passwords or MD5 passwords (Base64-encoded). If your MD5 passwords happen to be in hex you can convert them to Base64 using your favorite programming language. I used perl.
  • “DIGEST-MD5” authentication works when OpenLDAP stores plain text passwords but I could not get it to work when using MD5 passwords.
  • “DIGEST-MD5” authentication only works when OpenLDAP is configured to support DIGEST-MD5 as a SASL mechanism. Query the LDAP server’s “Supported SASL Mechanisms” property to see if DIGEST-MD5 is listed.
  • If you are compiling OpenLDAP from source, you must configure it with the –with-cyrus-sasl flag. In order to be able to do this, you must already have Cyrus SASL installed.
  • There are two ways user home folders can get created: (1) When a user logs in for the first time, but before a user sync has occurred or (2) When a user sync occurs. How the user folder gets created is configured differently in each case. In the first case, the bean referenced by the defaultProvider property of the homeFolderManager bean configured in authentication-services-context.xml is used. For the sync, the cm:homeFolderProvider key value in the ldap authentication context XML file references the HomeFolderProvider bean. If you want the behavior to be consistent, you’ll need to make sure to point to the same HomeFolderProvider bean in both places.
  • There are several HomeFolderProvider beans configured OOTB. For example, the userHomesHomeFolderProvider bean creates the user’s home folder as a folder under User Homes named using the user’s user ID.
  • If you want to store a password in SASL’s database, use saslpasswd2 -c
  • If a user does not exist in SASL’s database it will look for the userPassword attribute in the LDAP directory.
  • You must add authz-regexp entries to slapd.conf to map the SASL authorization requests to actual LDAP entries.
  • Once your openldap server is running with SASL enabled, you may need to use the -x command-line switch when using things like ldapsearch, ldapadd, and ldapmodify if you still want to use simple authentication.

If I get some time I may reorganize these rough notes into an easier-to-follow step-by-step setup guide.