james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Norman Maurer ...@byteaction.de>
Subject Re: JDBCVirtualUserTable weird behaviour (BUG!)
Date Mon, 18 Dec 2006 06:24:11 GMT
Stefano Bagnara schrieb:
> Looking at the virtualusertable query I see that if I only add the rule
> user=bago
> domain=%
> target=bago@catchalldomain.com
>
> It will never alias any recipient: neither bago@someremotedomain nor
> bago@somelocaldomain.
>
> If I instead add another generic mapping referring to the domain like:
> user=nonexistinguser
> domain=somedomain
> target=nonexistinguser@somedomain
> (yes, this does not change anything, but I need to add it to make the
> previous work)
>
> Then a message to bago@somedomain will be rewritten to
> bago@catchalldomain.com
>
> This is the query:
> -- 
> SELECT VirtualUserTable.target_address
> FROM VirtualUserTable, VirtualUserTable as VUTDomains
> WHERE
> (VirtualUserTable.user like ? OR VirtualUserTable.user like '\%')
> AND
> (VirtualUserTable.domain like ? OR
>    (VirtualUserTable.domain like '\%' AND VUTDomains.domain like ?))
> ORDER BY
> concat(VirtualUserTable.user,'@',VirtualUserTable.domain) desc
> LIMIT 1
> ---
> And the key/guilty part is the self-join and the "AND
> VUTDomains.domain like ?"
>
> This mean that domain=% will match any domain already used in another
> rule. This is not documented anywhere and I also think this is not an
> intended behaviour.
>
> Was this hack used to try to alias only local domains?
> Should we change it to consider % valid for any local domain
> (specified in servernames) even if not used in other mapping rules and
> document it this way?
> Do we need to introduce a new wildcard to specify ANY domain (even the
> non local)?
>
> On the other side the XMLVirtualUserTable seems to have not such
> behaviour and to always rewrite any domain, even remote one or domains
> not used in other mapping rules.
>
> So what is the intended behaviour? I think that is really bad that XML
> and JDBC behave differently wrt this issue.
>
> My preference is:
> 1) use the XML behaviour by default when using %
> 2) optionally introduce later a new wildcart to match only local
> domains (this can be already achieved by using HostIsLocal matcher for
> the virtual users table.
>
> This means: remove the self join and the where condition on VUTDomains
> from JDBCVirtualUserTable.
>
> WDYT?
>
> Stefano
>
>

This make sense to me. Optional we could also check in
mailetContext.isLocalServer(domain) for local domains.

+1

bye
Norman




---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Mime
View raw message