【shiro】11.shiro過濾器鑑權setFilterChainDefinitionMap

陆陆无为而治者發表於2024-10-18

之前學習shiro的時候,設定了登入頁面和主頁面(需要登入才能範圍的頁面。)

1 //配置系統公共資源
2 Map<String,String> map = new HashMap<>();
3 // authc 請求這個資源需要認證和授權
4 map.put("/index", "authc");
5 //預設認證介面路徑
6 shiroFilterFactoryBean.setLoginUrl(loginUrl);
7 shiroFilterFactoryBean.setFilterChainDefinitionMap(map);

map的第二個引數是什麼含義的?——鑑權。即當前頁面或資源訪問許可權(多個引數用逗號分割)。

https://blog.csdn.net/wan1996my/article/details/95448594/

引數 含義
anon 沒有引數,表示可以匿名使用
authc 表示需要認證(登入)才能使用,沒有引數
authcBasic 表示需要Basic認證才能使用,沒有引數
logout 退出logout,第一個參數列示地址,shiro會清除session
noSessionCreation
perms 多個授權,引數可以寫多個,多個時必須加上引號,並且引數之間用逗號分割,例如/admins/user/**=perms["user:add:*,user:modify:*"],當有多個引數時必須每個引數都透過才透過,想當於isPermitedAll()方法
port org.apache.shiro.web.filter.authz.PortFilter port[8081],當請求的url的埠不是8081是跳轉到schemal://serverName:8081?queryString,其中schmal是協議http或https等,serverName是你訪問的host,8081是url配置裡port的埠,queryString是你訪問的url裡的?後面的引數。
rest org.apache.shiro.web.filter.authz.HttpMethodPermissionFilter 根據請求的方法,相當於/admins/user/**=perms[user:method] ,其中method為post,get,delete等。
roles org.apache.shiro.web.filter.authz.RolesAuthorizationFilter 引數可以寫多個,多個時必須加上引號,並且引數之間用逗號分割,當有多個引數時,例如admins/user/**=roles["admin,guest"],每個引數透過才算透過,相當於hasAllRoles()方法
ssl 表示安全的url請求,協議為https
user 沒有參數列示必須存在使用者,當登入操作時不做檢查
captchaValidate
需要驗證碼透過

相關文章