プロジェクトで Apache shiro を使用しています。URL をフィルタリングするためのデフォルト フィルタがいくつか用意されています。URLのフィルタリングに関する問題に遭遇しました。「/rest/user/info」のような API がある場合、そのメソッドが GET の場合、この API には誰でもアクセスできますが、POST の場合は管理者だけがアクセスできます。デフォルトフィルター「rest」を見つけましたが、何の役にも立ちません。誰でもアドバイスできますか?ありがとう。
質問する
506 次
1 に答える
0
次のような構成:
<property name="filterChainDefinitions">
<value>
/login = authc
/logout = logout
/rest/user/info = rest[user:info]
</value>
</property>
- post /rest/user/info needs perms[user:info:create]
- get /rest/user/info は perms[user:info:read] が必要です
- ...
管理者には [user:info:create] と perms[user:info:read] を与え、他の人には perms[user:info:read] だけを与えます。Realm の doGetAuthorizationInfo メソッドでユーザーのパーミッションを設定します。
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
info.addStringPermission("user:info:create");
info.addStringPermission("user:info:read");
return info;
}
于 2013-06-27T05:36:37.083 に答える