[
https://issues.apache.org/jira/browse/CALCITE-1282?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Josh Elser resolved CALCITE-1282.
---------------------------------
Resolution: Fixed
Fixed in
https://git1-us-west.apache.org/repos/asf?p=calcite.git;a=commit;h=6000c9e7c24d487517df1f93a3a174e38821cdae
> Avatica will only accept SPNEGO-authenticated clients from the same realm as
> the server's principal
> ---------------------------------------------------------------------------------------------------
>
> Key: CALCITE-1282
> URL: https://issues.apache.org/jira/browse/CALCITE-1282
> Project: Calcite
> Issue Type: Bug
> Components: avatica
> Affects Versions: avatica-1.8.0
> Reporter: Josh Elser
> Assignee: Josh Elser
> Priority: Critical
> Fix For: avatica-1.9.0
>
>
> When setting up the Jetty security Constraint class, Jetty treats Kerberos
> realms as "roles". When configuring allowed users to Jetty with some
> constraint, you have to set what roles (realms) are allowed.
> Presently, Avatica just sets the realm of the server's principal as allowed,
> which means that in some multi-realm KDC (or cross-domain MIT KRB+Active
> Directory) setup, users from the other realm which should be allowed are
> denied.
> Even better, Jetty's syntax for {{\*}} for allowing any role (realm) doesn't
> actually work. Their logic in 9.2.15 for {{ConstraintSecurityHandler}}
> appears broken:
> {code}
> //handle * role constraint
> if (roleInfo.isAnyRole() && request.getUserPrincipal() != null &&
> isUserInRole)
> {
> return true;
> }
> {code}
> The above check should let users through with any role when {{isAnyRole()}}
> returns true, but the final {{isUserInRole}} check requires that the role is
> explicitly listed in the list of allowedRoles.
> As such, we're going to need to expose an API which allows users to set a
> list of allowed realms since Jetty is busted to make Kerberos authentication
> actually work correctly.
> Thanks to [~kliew] for bringing this one to my attention.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)