01-基本概念

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> 
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容