1. 程式人生 > >shiro內建過濾器

shiro內建過濾器

shiro內建過濾器

anon org.apache.shiro.web.filter.authc.AnonymousFilter
authc org.apache.shiro.web.filter.authc.FormAuthenticationFilter
authcBasic org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter
perms org.apache.shiro.web.filter.authz.PermissionsAuthorizationFilter
port org.apache.shiro.web.filter.authz.PortFilter
rest org.apache.shiro.web.filter.authz.HttpMethodPermissionFilter
roles org.apache.shiro.web.filter.authz.RolesAuthorizationFilter
ssl org.apache.shiro.web.filter.authz.SslFilter
user org.apache.shiro.web.filter.authc.UserFilter
rest:例子/admins/user/**=rest[user],根據請求的方法,相當於/admins/user/**=perms[user:method] ,其中method為post,get,delete等。 port:例子/admins/user/**=port[8081],當請求的url的埠不是8081是跳轉到schemal://serverName:8081?queryString,其中schmal是協議http或https等,serverName是你訪問的host,8081是url配置裡port的埠,queryString 是你訪問的url裡的?後面的引數。 perms:
例子/admins/user/**=perms[user:add:*],perms引數可以寫多個,多個時必須加上引號,並且引數之間用逗號分割,例如/admins/user/**=perms["user:add:*,user:modify:*"],當有多個引數時必須每個引數都通過才通過,想當於 isPermitedAll()方法。 roles:例子/admins/user/**=roles[admin],引數可以寫多個,多個時必須加上引號,並且引數之間用逗號分割,當有多個引數時,例如/admins/user/**=roles["admin,guest"],每個引數通過才算通過,相當於hasAllRoles()方法。 anon:例子/admins/**=anon 沒有引數,表示可以匿名使用。 authc:例如/admins/user/**=authc表示需要認證才能使用,沒有引數 authcBasic:例如/admins/user/**=authcBasic沒有引數表示httpBasic認證 ssl:例子/admins/user/**=ssl沒有引數,表示安全的url請求,協議為https user:例如/admins/user/**=user沒有引數表示必須存在使用者,當登入操作時不做檢查   這些過濾器分為兩組,一組是認證過濾器,一組是授權過濾器。其中anon,authcBasic,auchc,user是第一組, perms,roles,ssl,rest,port是第二組



這是shiro內部自己實現的九個過濾器  用的多的就3個 認證的anon authc 授權的perms  如果這幾個過濾器不能滿足自己的需求 還可以自己定義過濾器來實現