It take login user, pass and other dat from connection like remote ip and send to a Java App with special security. If the result of Java App is correct (more difficult to explain), then it pass ask to standard courier ldap plugin.
2010/11/16 Alex Baule alexwbaule@gmail.com:
What the preauthcustom.c does ? something special or setting some rights from users ?
If was only auth, PAM is much more easy....
2010/11/16 Antonio Perez-Aranda aperezaranda@yaco.es
Maybe, but I haven't got any experience with PAM modules as with dovecot.
I have a preauthcustom.c from courier which I have to migrate to dovecot.
Dovecot plugins works with hooks. This hooks allow you customize some actions.
You need to find the authentication hook, and rewrite it's actions.
Inside the userdb.c have it void userdbs_init(void), but you change the shared name, so you need to change inside your plugin too.
But, you're trying to do something with auth, you can use PAM, it's more easy. (i think)
2010/11/16 Antonio Perez-Aranda aperezaranda@yaco.es
Well, all modules start with ifdef like this:
#ifdef USERDB_CUSTOM
And in this case, this isn't defined. I commet out this ifdef/else/if block and then I have got more errors, I can continure.
2010/11/16 Antonio Perez-Aranda aperezaranda@yaco.es:
Not, userdb-custom and passdb-custom are copies from userdb-passwd-file and passdb-passwd-file.
I try with this function now, thanks.
2010/11/16 Alex Baule alexwbaule@gmail.com:
inside your plugin, have this function ?
Every plugin must have a "init" function and it must call "plugin-name_init"
2010/11/16 Antonio Perez-Aranda aperezaranda@yaco.es
> Is it needed to include custom db on usedb.c and passdb.c ? > > I can see at userdb.c: > > void userdbs_init(void) > > with all userdb registered, and similar at passdb.c > > > At now, I get the follow line loading the module and trying to access > vía imap login > > Nov 16 17:54:28 auth: Error: module > /usr/lib64/dovecot/auth/libauthdb_custom.so:
2010/11/16 Alex Baule alexwbaule@gmail.com: dlsym(authdb_custom_init)
> failed: /usr/lib64/dovecot/auth/libauthdb_custom.so: undefined symbol: > authdb_custom_init > Nov 16 17:54:28 auth: Error: Module doesn't have init function: > /usr/lib64/dovecot/auth/libauthdb_custom.so > > > > 2010/11/16 Antonio Perez-Aranda aperezaranda@yaco.es: > > Well, I didn't execute ./configure on $DOVECOT path > > > > 2010/11/16 Antonio Perez-Aranda aperezaranda@yaco.es: > >> gcc -fPIC -shared -g -Wall
> >> -I$DOVECOT
> >> -I$DOVECOT/src/lib
> >> -I$DOVECOT/src/lib-auth
> >> -I$DOVECOT/src/lib-sql
> >> -I$DOVECOT/src/lib-settings
> >> -I$DOVECOT/src/lib-ntlm
> >> -I$DOVECOT/src/lib-master
> >> -I$DOVECOT/src/auth
> >> -DHAVE_CONFIG_H
> >> -DAUTH_MODULE_DIR=\"passdb-custom\"
> >> passdb-custom.c -o passdb-custom.o > >> > >> With this I get: > >> > >> error on auth-common.h > >> ... > >> config.h Not found. > >> > >> > >> But config.h are in $DOVECOT path > >> > >> > >> 2010/11/15 Timo Sirainen tss@iki.fi: > >>> On 15.11.2010, at 18.03, Antonio Perez-Aranda wrote: > >>> > >>>> gcc -fPIC -shared -g -Wall -I$DOVECOT
> >>>> -I$DOVECOT/src/lib
> >>>> -I$DOVECOT/src/lib-auth
> >>>> -I$DOVECOT/src/lib-sql
> >>>> -I$DOVECOT/src/lib-settings
> >>>> -I$DOVECOT/src/lib-ntlm
> >>>> -I$DOVECOT/src/lib-master
> >>>> -I$DOVECOT/src/auth
> >>>> passdb-passwd-file.c -o passdb-passwd-file.o > >>>> > >>>> With this, I get errors relate with uoff_t > >>> > >>> You need to add -DHAVE_CONFIG_H > >>> > >>> > >> > > >