someController/someAction?param1=aa¶m2=bb のような uri があります
このuriからコントローラー名とアクション名を抽出できるgrailsの方法はありますか。
またはshiroには、このuriが許可されていることを検出する方法がありますか?
私はドメイン メニュー (名前、URL) を持っており、現在のユーザーに許可されているメニュー リストを取得したいと考えています。
/auth/login (user:login としてマッピングされている可能性があります)、/user/login などの URL
だから2日前に私はこの質問をします。
メニューを (name,controller,action,param) に変更し、メニューリストを次のようにフィルタリングします。
def subject = SecurityUtils.subject;
menuList.each{
if(it.permission){
def perm = shiroPermissionResolver.resolvePermission("${it.permission.controller}:${it.permission.action}")
def isPermitted = subject.isPermitted(perm)
println "$isPermitted -> ${it.permission.controller}:${it.permission.action}"
}
}
下手な英語で申し訳ありません。返信ありがとうございます。
ところで、shiro をキャッシュする方法に関するもう 1 つの質問があります 。grails shiro でキャッシュ権限を使用する方法
大量に: メニューリストを保存するより良い方法は何だと思いますか? 原因:
- ユーザーの権限により、ユーザーに異なるメニューを表示する必要があります。
- ときどき webapp を更新しますが、後でユーザーにメニューを表示したいとします。そのため、menu.visible などを変更するだけです。(ハード コードの cfg やソースを変更するよりも優れています)。
- メニューを表示するためにextjsを使用しています(そのため、navプラグインは使用できません)。