Permission(權限)
權限隻是定義行為狀态,并不指定關聯。
案例一:
等同于
案例二(冒号前是操作對象,冒号後是操作權限):
printer:print
printer:manage
可以簡寫為(長度沒有限制,可以繼續加在後面權限)
案例三(擷取printer操作對象的所有權限):
案例四(擷取應用中所有可操作對象的view權限):
案例五(層次型權限設定);
printer:query:lp7200
printer:print:epsoncolor
第一個為操作對象,第二個為操作權限,第三個為操作層次。
案例六:
案例七:
案例八:
案例九:
案例十(通配符“*”表示所有,在末尾可以省略,在中間不可以):
等價于
但是
不等價于
一般情況下,權限的設定越廣泛越好,而權限的判定越詳細越好。這是因為,權限設定廣泛可以避免多次進行權限修改,顯得更加靈活;判定設定詳細是為了确定使用者的具體權限,避免因判定範圍過大而導緻驗證失敗。(可以這麼設定的基礎是,Shiro的權限判定并不是單純的字元串内容比較,而是要将字元串映射至對象,進行兩個權限對象的比較。)