JAMM — an update to the Java Mail Manager

A couple of changes to JAMM.

What is JAMM?

Quite simply, it’s a front-end written in Java which handles administration of LDAP-based virtual lookup tables. I use this alongside Postfix and Dovecot. JAMM comes with its own schema, which defines various hierarchies; domains fall within a ‘jvd’ (Jamm Virtual Domain) class, each of which may be delegated to and administered by a ‘sub-postmaster’. Aliasing is handled also.

Changes

The setup documentation requires ACLs to be set up — as you would expect — on the LDAP server. Due to the fact OpenLDAP now uses LDAP-based configuration files, replacing the usual slapd.conf, rules have had to be modified very slightly. For sake of completeness, here is my ACL ruleset for running JAMM — allowing for the Dovecot user to read the userPassword field, to facilitate authentication. You’ll obviously need to change this to suit your own configuration:

In cn=config (my mail vhost base resides at o=mailsrv,dc=rmacd,dc=com):

olcAccess: {0}to dn.subtree="o=mailsrv,dc=rmacd,dc=com"
    by dn.exact="cn=jadmin,dc=rmacd,dc=com" write
    by * break
olcAccess: {1}to dn.regex=".*,jvd=([^,]+),o=mailsrv,dc=rmacd,dc=com" attrs=userPassword
    by self write
    by group/jammPostmaster/roleOccupant.expand="cn=postmaster,jvd=$1,o=mailsrv,dc=rmacd,dc=com" write
    by dn="cn=dovecotuser,dc=rmacd,dc=com" read
    by * auth
olcAccess: {2}to dn.regex="jvd=([^,]+),o=mailsrv,dc=rmacd,dc=com"
    by group/jammPostmaster/roleOccupant.expand="cn=postmaster,jvd=$1,o=mailsrv,dc=rmacd,dc=com" write
    by dn="cn=dovecotuser,dc=rmacd,dc=com" read
    by * read

    ... [rest of non-mail ACL rules]

Download and install

Download the source package from the SF.net page at http://jamm.sourceforge.net/ and deploy the WAR file to your /webapps directory.

Once it’s all working, the base install should be available on your server under /jamm-0.9.6. Download jamm.patch and apply as usual: patch -p0 jamm.patch in the base directory of your Jamm installation.