• Shiro-过滤器


    一、shiro内置过滤器:

      Shiro内置了很多默认的过滤器,比如:身份验证、授权等,默认过滤器可以参考“DefaultFilter”中的枚举过滤器:

    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. 身份验证相关:

    *******************************身份验证********************************************************
    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.授权相关:

    **********************************授权*****************************************************
        
    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. 其他:

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

     

     二、自定义过滤器:

      通过自定义过滤器可以扩展功能,

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

  • 相关阅读:
    Java基本类型和引用类型 分类: Java 2015-08-04 14:51 6人阅读 评论(0) 收藏
    串口通信校验方式(even,odd,space,mark) 分类: 开发工具 2015-07-31 16:01 5人阅读 评论(0) 收藏
    学习SerialPort的笔记 分类: 开发工具 2015-07-31 15:51 5人阅读 评论(0) 收藏
    Java操作串口 分类: Java 2015-07-30 23:18 11人阅读 评论(0) 收藏
    JAVA Swt初识 分类: Java 2015-07-30 10:51 22人阅读 评论(0) 收藏
    用Java Swing编写简单的测试小工具界面(源码) 分类: Java 2015-07-30 10:49 23人阅读 评论(0) 收藏
    Java串口助手(程序源码) 分类: Java 2015-07-30 10:13 16人阅读 评论(0) 收藏
    Android使用蓝牙与PC端进行通信 分类: Android 2015-07-30 09:45 15人阅读 评论(0) 收藏
    Android当无线鼠标,通过蓝牙与pc通信,pc端用java写 分类: Android 2015-07-30 09:24 18人阅读 评论(0) 收藏
    Struts2注解
  • 原文地址:https://www.cnblogs.com/luliang888/p/11171485.html
Copyright © 2020-2023  润新知