Hey folks,

I'm a bit confused on the interaction between two different authorizing
realms.

My application is entirely permission-based, permissions are checked either
direct by calls to Subject.isPermitted or with
the PermissionsAuthorizationFilter.

My deployment environment is as follows:

Authentication is handled via Kerberos. The input is an HTTP header and the
output is a principal (for example, "kevints"). This is handled by a custom
Kerberos5Realm.

Authorization data is stored in LDAP. The input is a userId and the output
is a list of roles, populated from data in LDAP. For example "kevints" =>
{"capacity-planning", "free-ice-cream"}. This is handled by a custom
JdbcRealm

Application role to permission mapping is stored in a shiro.ini file. This
uses an IniRealm and looks like:

[users]
# doesn't work unless I add
# kevints = _, capacity-planning

[roles]
capacity-planning = thrift:setQuota, thrift:getQuota

It seems IniRealm only provides a mapping from its internally-defined roles
to permissions. This seems counterintuitive - is there a way to get it to
provide mappings for all roles returned by any other Authorizer?

Reply via email to