• shiro权限管理


    参考:https://blog.csdn.net/qq_39874546/article/details/79081950

    https://www.cnblogs.com/moonlightL/p/8126910.html

    1. Shiro入门

    ApacheShiro是一个功能强大且易于使用的Java安全框架,提供了认证,授权,加密,和会话管理。

    Shiro有三大核心组件:

    Subject:即当前用户,在权限管理的应用程序里往往需要知道谁能够操作什么,谁拥有操作该程序的权利,shiro中则需要通过Subject来提供基础的当前用户信息,Subject 不仅仅代表某个用户,与当前应用交互的任何东西都是Subject,如网络爬虫等。所有的Subject都要绑定到SecurityManager上,与Subject的交互实际上是被转换为与SecurityManager的交互。

    SecurityManager:即所有Subject的管理者,这是Shiro框架的核心组件,可以把他看做是一个Shiro框架的全局管理组件,用于调度各种Shiro框架的服务。作用类似于SpringMVC中的DispatcherServlet,用于拦截所有请求并进行处理。

    Realm:Realm是用户的信息认证器和用户的权限人证器,我们需要自己来实现Realm来自定义的管理我们自己系统内部的权限规则。SecurityManager要验证用户,需要从Realm中获取用户。可以把Realm看做是数据源。

    2. 依赖

     <!--shiro核心类库-->
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-core</artifactId>
            <version>1.2.3</version>
        </dependency>

    3.过滤器解释

     1 /admins/**=anon               # 表示该 uri 可以匿名访问
     2 /admins/**=auth               # 表示该 uri 需要认证才能访问
     3 /admins/**=authcBasic         # 表示该 uri 需要 httpBasic 认证
     4 /admins/**=perms[user:add:*]  # 表示该 uri 需要认证用户拥有 user:add:* 权限才能访问
     5 /admins/**=port[8081]         # 表示该 uri 需要使用 8081 端口
     6 /admins/**=rest[user]         # 相当于 /admins/**=perms[user:method],其中,method 表示  get、post、delete 等
     7 /admins/**=roles[admin]       # 表示该 uri 需要认证用户拥有 admin 角色才能访问
     8 /admins/**=ssl                # 表示该 uri 需要使用 https 协议
     9 /admins/**=user               # 表示该 uri 需要认证或通过记住我认证才能访问
    10 /logout=logout                # 表示注销,可以当作固定配置
    注意:
    
    anon,authcBasic,auchc,user 是认证过滤器。
    
    perms,roles,ssl,rest,port 是授权过滤器。
  • 相关阅读:
    FILE
    基础知识const/typedef/函数指针/回调函数
    strchr
    ftell
    rewind
    fread
    poj 2309BST解题报告
    hdoj 4004The Frog's Games解题报告
    哈理工oj 1353LCM与数对解题报告
    poj 2453An Easy Problem解题报告
  • 原文地址:https://www.cnblogs.com/zuoxh/p/9768821.html
Copyright © 2020-2023  润新知