美文网首页
01-基本概念

01-基本概念

作者: 16325 | 来源:发表于2020-09-04 14:16 被阅读0次

    Apache Shiro 的三大核心组件:

    • 1、Subject :当前用户的操作

    • 2、SecurityManager:用于管理所有的Subject

    • 3、Realms:用于进行权限信息的验证

    Authentication 和 Authorization

    在shiro的用户权限认证过程中其通过两个方法来实现:

    1、Authentication:是验证用户身份的过程。说白了就是获取验证用户

    2、Authorization:是授权访问控制,用于对用户进行的操作进行认证授权,证明该用户是否允许进行当前操作,如访问某个链接,某个资源文件等。说白了就是用户验证用户权限

    其他组件:

    除了以上几个组件外,Shiro还有几个其他组件:

    • 1、SessionManager :Shiro为任何应用提供了一个会话编程范式。

    • 2、CacheManager :对Shiro的其他组件提供缓存支持。

    image.png

    基础例子

    • 编写操作用户业务的Service:
      通过用户名查询用户信息
      通过用户名查询用户权限字符串

    • 编写shiro组件自定义Realm:
      实现获取AuthorizationInfo,权限字符串的方法
      实现获取AuthenticationInfo,认证信息的方法

    • 编写登录功能

    SecurityUtils.getSecurityManager().logout(SecurityUtils.getSubject());  
            // 登录后存放进shiro token  
            UsernamePasswordToken token = new UsernamePasswordToken(user.getUsername(), user.getPassword());  
            Subject subject = SecurityUtils.getSubject();  
            subject.login(token);  
    
    • 定义shiro的filter
    <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">  
            <property name="securityManager" ref="securityManager" />  
            <property name="loginUrl" value="/toLogin" />  
            <property name="successUrl" value="/home" />  
            <property name="unauthorizedUrl" value="/403" />  
               
            <property name="filterChainDefinitions">  
                <value>  
                    /toLogin = authc <!-- authc 表示需要认证才能访问的页面 -->  
                    /home = authc, perms[/home]  <!-- perms 表示需要该权限才能访问的页面 -->  
                </value>  
            </property>  
        </bean> 
    

    相关文章

      网友评论

          本文标题:01-基本概念

          本文链接:https://www.haomeiwen.com/subject/jupzsktx.html