天天看點

Apache Shiro Permission學習筆記

Permission(權限)

權限隻是定義行為狀态,并不指定關聯。

案例一:

    等同于

案例二(冒号前是操作對象,冒号後是操作權限):

printer:print
printer:manage
           

    可以簡寫為(長度沒有限制,可以繼續加在後面權限)

案例三(擷取printer操作對象的所有權限):

案例四(擷取應用中所有可操作對象的view權限):

案例五(層次型權限設定);

printer:query:lp7200
printer:print:epsoncolor
           

    第一個為操作對象,第二個為操作權限,第三個為操作層次。

案例六:

案例七:

案例八:

案例九:

案例十(通配符“*”表示所有,在末尾可以省略,在中間不可以):

    等價于

但是

    不等價于

一般情況下,權限的設定越廣泛越好,而權限的判定越詳細越好。這是因為,權限設定廣泛可以避免多次進行權限修改,顯得更加靈活;判定設定詳細是為了确定使用者的具體權限,避免因判定範圍過大而導緻驗證失敗。(可以這麼設定的基礎是,Shiro的權限判定并不是單純的字元串内容比較,而是要将字元串映射至對象,進行兩個權限對象的比較。)