1.最基础的⽅法——权限五张表
最基础最重要的,后⾯的shiro和spring security都是基于权限五张表2.shiro
Apache Shiro是⼀个强⼤且易⽤的Java安全框架,执⾏⾝份验证、授权、密码和会话管理。使⽤Shiro的易于理解的API,您可以快速、轻松地获得任何应⽤程序,从最⼩的移动应⽤程序到最⼤的⽹络和企业应⽤程序。 主要功能
三个核⼼组件:Subject, SecurityManager 和 Realms.
Subject:即“当前操作⽤户”。但是,在Shiro中,Subject这⼀概念并不仅仅指⼈,也可以是第三⽅进程、后台帐户(DaemonAccount)或其他类似事物。它仅仅意味着“当前跟软件交互的东西”。
Subject代表了当前⽤户的安全操作,SecurityManager则管理所有⽤户的安全操作。
SecurityManager:它是Shiro框架的核⼼,典型的Facade模式,Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务。
Realm: Realm充当了Shiro与应⽤安全数据间的“桥梁”或者“连接器”。也就是说,当对⽤户执⾏认证(登录)和授权(访问控制)验证时,Shiro会从应⽤配置的Realm中查找⽤户及其权限信息。
从这个意义上讲,Realm实质上是⼀个安全相关的DAO:它封装了数据源的连接细节,并在需要时将相关数据提供给Shiro。当配置Shiro时,你必须⾄少指定⼀个Realm,⽤于认证和(或)授权。配置多个Realm是可以的,但是⾄少需要⼀个。
Shiro内置了可以连接⼤量安全数据源(⼜名⽬录)的Realm,如LDAP、关系数据库(JDBC)、类似INI的⽂本配置资源以及属性⽂件等。如果缺省的Realm不能满⾜需求,你还可以插⼊代表⾃定义数据源的⾃⼰的Realm实现。
3.Spring Security简介
Spring Security 的前⾝是 Acegi Security ,是 Spring 项⽬组中⽤来提供安全认证服务的框架。
Spring Security 为基于J2EE企业应⽤软件提供了全⾯安全服务。特别是使⽤领先的J2EE解决⽅案-Spring框架开发的企业软件项⽬。 功能
Spring Security对Web安全性的⽀持⼤量地依赖于Servlet过滤器。这些过滤器拦截进⼊请求,并且在应⽤程序处理该请求之前进⾏某些安全处理。 Spring Security提供有若⼲个过滤器,它们能够拦截Servlet请求,并将这些请求转给认证和访问决策管理器处理,从⽽增强安全性。根据⾃⼰的需要,可以使⽤适当的过滤器来保护⾃⼰的应⽤程序。
如果使⽤过Servlet过滤器且令其正常⼯作,就必须在Web应⽤程序的web.xml⽂件中使⽤ FilterToBeanProxy是⼀个特殊的Servlet过滤器,它本⾝做的⼯作并不多,⽽是将⾃⼰的⼯作委托给Spring应⽤程序上下⽂ 中的⼀个Bean来完成。被委托的Bean⼏乎和其他的Servlet过滤器⼀样,实现javax.servlet.Filter接 ⼝,但它是在Spring配置⽂件⽽不是web.xml⽂件中配置的。 实际上,FilterToBeanProxy代理给的那个Bean可以是javax.servlet.Filter的任意实现。这可以是 Spring Security的任何⼀个过滤器,或者它可以是⾃⼰创建的⼀个过滤器。但是正如本书已经提到的那样,Spring Security要求⾄少配置四个⽽且可能⼀打或者更多的过滤器。 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 69lv.com 版权所有 湘ICP备2023021910号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务