2

ではshiro.ini、次の SQL クエリを宣言します。

jdbcRealm.authenticationQuery = SELECT password FROM Person WHERE email = ?
jdbcRealm.userRolesQuery = SELECT id FROM SecurityRole WHERE id = (SELECT securityRole_id FROM Person WHERE email = ?)
jdbcRealm.permissionsQuery = SELECT action FROM SecurityPermission WHERE id = (SELECT permissions_id FROM securityrole_securitypermission WHERE securityrole_id = ?)

?最後のクエリのを1db での実行に置き換えると、期待される結果が返されます。rest:*
ただし、ログインしているユーザーには id = 1 の割り当てられたロールがあり、id 1 と 1、および id のエントリがありますが、返されます1 には= "rest:*" があります。SecurityUtils.getSubject().isPermitted(new WildcardPermission("rest"));falsesecurityrole_securitypermissionsecuritypermissionaction

ここに画像の説明を入力

4

1 に答える 1

3

jdbcRealm.permissionsLookupEnabled = true仕事をした。;)

于 2013-10-09T17:45:09.963 に答える