A. apache shiro如何实现同时对前台和后台进行权限控制
一般的网站都分前台和后台,并且分别有两个登陆地址对应不同的数据库表,那么如果通过apache shiro分别对前台和后台进行权限控制呢?求解
B. springsecurity是不是用了apache的shiro呀
不是呀 这两个原理都不一样
springsecurity 的实现原理:
核心 :登陆验证拦截器 资源管理拦截器AbstractSecurityInterceptor以及AuthenticationManager、accessDecisionManager等组件来支撑。
流程:用户登陆,会被拦截,调用AuthenticationManager的实现,而且AuthenticationManager会调用ProviderManager来获取用户验证信息(不同的Provider调用的服务不同,因为这些信息可以是在数据库上,可以是在LDAP服务器上,可以是xml配置文件上等),如果验证通过后会将用户的权限信息封装一个User放到spring的全局缓存SecurityContextHolder中,以备后面访问资源时使用。 访问资源(即授权管理),访问url时,会通过AbstractSecurityInterceptor拦截器拦截,其中会调用的方法来获取被拦截url所需的全部权限,在调用授权管理器AccessDecisionManager,这个授权管理器会通过spring的全局缓存SecurityContextHolder获取用户的权限信息,还会获取被拦截的url和被拦截url所需的全部权限,然后根据所配的策略(有:一票决定,一票否定,少数服从多数等),如果权限足够,则返回,权限不够则报错并调用权限不足页面
shiro的实现原理:
Shiro的三个核心组件:Subject, SecurityManager 和 Realms.
Subject:即“当前操作用户”。但是,在Shiro中,Subject这一概念并不仅仅指人,也可以是第三方进程、后台帐户(Daemon Account)或其他类似事物。它仅仅意味着“当前跟软件交互的东西”。但考虑到大多数目的和用途,你可以把它认为是Shiro的“用户”概念。 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实现。
C. spring security与apache shiro 权限控制安全框架,那个更实用
具体要看权限控制到什么程度,简单的单纯用spring mvc 也能行,就是麻烦,什么版都要自己写。如果写不好,以权后也不好扩展,安全性得不到保证。
apache shiro的话,简单,易用,功能也强大,spring官网就是用的shiro,可见shiro的强大。shiro不仅支持web项目,还支持非web项目,和spring可以可以整合。
spring security功能更强大,但是比shiro复杂,学习成本高,
D. apache shiro 做的哪些事
Apache Shiro 是ASF旗下的一款开源软件(Shiro发音为“shee-roh”,日语“堡垒(Castle)”的意思),提供了一个强大而灵活的安全框架。可为任何应用提供安全保障— 从命令行应用、移动应用到大型网络及企业应用。
Apache Shiro提供了认证、授权、加密和会话管理功能,将复杂的问题隐藏起来,提供清晰直观的API使开发者可以很轻松地开发自己的程序安全代码。并且在实现此目标时无须依赖第三方的框架、容器或服务,当然也能做到与这些环境的整合,使其在任何环境下都可拿来使用。
Shiro将目标集中于Shiro开发团队所称的“四大安全基石”-认证(Authentication)、授权(Authorization)、会话管理(Session Management)和加密(Cryptography):
认证(Authentication):用户身份识别。有时可看作为“登录(login)”,它是用户证明自己是谁的一个行为。
授权(Authorization):访问控制过程,好比决定“认证(who)”可以访问“什么(what)”.
会话管理(SessionManagement):管理用户的会话(sessions),甚至在没有WEB或EJB容器的环境中。管理用户与时间相关的状态。
加密(Cryptography):使用加密算法保护数据更加安全,防止数据被偷窥。
此外还有一些附加的功能进行支持和加强,例如:
Web支持:利用Shiro的web支持API可以很容易地实现web程序安全;
Caching:Caching在Apache Shiro的API中是一等公民,确保安全认证的动作快速而有效。
并发(Concurrency):Apache Shiro支持多线程;
测试(Testing):支持测试,帮助你开发单元和综合测试程序确保你的代码如你所预期的那样进行安全认证。
“Run As”:允许用户使用其他用户身份(如果被允许),这在执行某些管理角本中非常有用。
“Remember Me”:在整个会话周期中(sessions)记住用户的身份,用户只需要在程序强制要求登录的情况下才需要登录。
E. apache shiro 支持不支持集群
支不支持集群和shiro没关系,你要看你的cache层,如果是Ehcache,那么要费劲点,如果是版其他的还权好点,如果是Redis,那么就没问题。Session共享,集群什么的都OK
推荐一套完整的ShiroDemo,免费的。
ShiroDemo:http://www.sojson.com/shiro
Demo已经部署到线上,地址是http://shiro.itboy.net
管理员帐号:admin,密码:sojson.com如果密码错误,请用sojson。PS:你可以注册自己的帐号,然后用管理员赋权限给你自己的帐号,但是,每20分钟会把数据初始化一次。建议自己下载源码,让Demo跑起来,然后跑的更快。
F. org.apache.shiro.web.util.webutils 引用什么jar
引用的是一个shiro-web-x.x.x.jar的包,你看下,这是最晚的回答了
G. apache shiro是个什么
推荐一套完整的Shiro Demo,免费的。
Shiro介绍文档:http://www.sojson.com/shiro
Demo已经部署到线上,地址是http://shiro.itboy.net
管理员回帐号:admin,密答码:sojson.com 如果密码错误,请用sojson。PS:你可以注册自己的帐号,然后用管理员赋权限给你自己的帐号,但是,每20分钟会把数据初始化一次。建议自己下载源码,让Demo跑起来,然后跑的更快。
H. org.apache.shiro.web.filter.authc.formauthenticationfilter 这个什么jar包
一般为所抄有的请求启用或禁用一个过滤器是通过设置其enabled 属性为true 或false。默认的设置是true, 因为 如果他们被配置在一个过滤器链中则本质上是需要执行的。禁用过滤器的例子如下:
[main]
# configure Shiro's default 'ssl' filter to be disabled while testing:
ssl.enabled = false
[urls]
/some/path = ssl, authc
/another/path = ssl, roles[admin]
I. apache.shiro需要哪些配置
配置较多,来无法细说。
推荐一自套完整的Shiro Demo,免费的。
Shiro介绍文档:http://www.sojson.com/shiro
Demo已经部署到线上,地址是http://shiro.itboy.net,
管理员帐号:admin,密码:sojson.com 如果密码错误,请用sojson。
PS:你可以注册自己的帐号,然后用管理员赋权限给你自己的帐号,但是,每20分钟会把数据初始化一次。建议自己下载源码,让Demo跑起来,然后跑的更快。