Shiro-过滤器

1、shiro内置过滤器:web

  Shiro内置了不少默认的过滤器,好比:身份验证、受权等,默认过滤器能够参考“DefaultFilter”中的枚举过滤器:apache

package org.apache.shiro.web.filter.mgt; public enum DefaultFilter { anon(AnonymousFilter.class), authc(FormAuthenticationFilter.class), authcBasic(BasicHttpAuthenticationFilter.class), logout(LogoutFilter.class), noSessionCreation(NoSessionCreationFilter.class), perms(PermissionsAuthorizationFilter.class), port(PortFilter.class), rest(HttpMethodPermissionFilter.class), roles(RolesAuthorizationFilter.class), ssl(SslFilter.class), user(UserFilter.class); }

1. 身份验证相关:session

*******************************身份验证******************************************************** 1.authc:    -->org.apache.shiro.web.filter.authc.FormAuthenticationFilter 属于表单的过滤器,如"/**=authc",若是没有登陆会跳到相应的登陆页面登陆: 主要属性: usernameParam:表单提交的用户名参数名(username) passwordParam:表单提交的密码参数名(password) rememberMeParam:表单提交的密码参数名(rememberMe) loginUrl:登陆页面地址(/login.jsp) successUrl:登陆成功后的默认重定向地址 failureKeyAttribute:登陆失败后错误信息存储key(shiroLoginFailure) 2.authcBasic: -->org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter BaseHTTP身份验证过滤器,主要属性: applicationName:弹出框显示的信息(aoolication) 3.logout:   -->org.apache.shiro.web.filter.authc.LogoutFilter 退出过滤器,主要属性: redirectUrl:退出成功后重定向的地址(/) 4.user:   -->org.apache.shiro.web.filter.authc.UserFilter 用户过滤器,用户已经身份验证/记住我均可以,示例:"/**=user" 5.anon:   -->org.apache.shiro.web.filter.authc.AnonymousFilter 匿名过滤器,即不须要登陆也能够访问;通常用于静态资源过滤,示例:"/static/**=anon"

2.受权相关:app

**********************************受权***************************************************** 1.roles: -->org.apache.shiro.web.filter.authz.RolesAuthorizationFilter 角色受权过滤器,验证用户是否拥有角色: 主要属性: loginUrl:登陆页面地址(/login.jsp) unauthorizedUrl:未受权重定向地址;示例:"/admin/**=roles[admin]" 2.perms: -->org.apache.shiro.web.filter.authz.PermissionsAuthorizationFilter 受权过滤器,验证用户是否拥有权限,属性和Roles同样;示例:"/user/**=parms["user:create"]" 3.port: -->org.apache.shiro.web.filter.authz.PortFilter 端口过滤器,主要属性port(80),表示能够经过的端口;示例:"/test=port[80]",若是用户访问的页面是非80,会自动将端口改成80端口,其余路径参数都同样 4.rest: -->org.apache.shiro.web.filter.authz.HttpMethodPermissionFilter reset风格过滤器,会自动根据请求方法构建权限字符串 5.ssl: -->org.apache.shiro.web.filter.authz.SslFilter SSL过滤器,只有请求协议是https才能经过;不然会自动跳转到https端口(443);其余和port过滤器同样

3. 其余:jsp

***********************************Session**************************************************** 1.noSessionCreation: -->org.apache.shiro.web.filter.session.NoSessionCreationFilter 不建立会话过滤器,调用subject.getSession(false)不会由什么问题,可是若是subject.getSession(true)将抛出异常

 

 2、自定义过滤器:url

  经过自定义过滤器能够扩展功能,spa

    例如:动态url-叫哦/权限访问控制的实现,根据Subject身份信息获取用户信息绑定到Request(即设置通用数据)、验证码验证、在线用户信息保存等。rest

相关文章
相关标签/搜索