james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric Charles (JIRA)" <server-...@james.apache.org>
Subject [jira] Commented: (JAMES-745) XMLVirtualUserTable and JDBCVirtualUserTable not work symetric
Date Sat, 14 Aug 2010 16:22:18 GMT

    [ https://issues.apache.org/jira/browse/JAMES-745?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12898607#action_12898607
] 

Eric Charles commented on JAMES-745:
------------------------------------

for 3.0-M1, we could align JDBCVirtualUserTable to existing XMLVirtualUserTable, with a *
as wildcard.
This means that previous 2.3 deployments should upgrade and replace % with * (of well in xml,
of well in database).
This would be an additional action to be documented in the migration path.
If ok, JDBCVirtualUserTable.mapAddressInternal could be adapted to reflect XMLVirtualUserTable.mapAddressInternal.


> XMLVirtualUserTable and JDBCVirtualUserTable not work symetric
> --------------------------------------------------------------
>
>                 Key: JAMES-745
>                 URL: https://issues.apache.org/jira/browse/JAMES-745
>             Project: JAMES Server
>          Issue Type: Bug
>    Affects Versions: 2.2.0, 2.3.0
>            Reporter: Norman Maurer
>            Assignee: Eric Charles
>             Fix For: 3.0-M1
>
>
> from ml:
> 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 message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
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