整理出来的精选shiro面试题

         

1、简要介绍Shiro框架吗?

Apache Shiro是Java的安全框架。 使用Shiro,可以轻松地开发足够好的APP应用程序。 这不仅可以用于JavaSE环境,也可以用于JavaEE环境。 Shiro提供了身份验证、许可、加密、会话管理、与Web集成和缓存等功能。

三个核心组件: Subject、SecurityManager和Realms。

Subject :“当前操作的用户”。 然而,在Shiro中,Subject的概念不仅仅指人,还可以是第三方进程、后台账户(Daemon Account )或其他类似物。 那只意味着“现在和软件对话的东西”。 但是,考虑到很多目的和用途,可以认为是Shiro的“用户”概念。 Subject表示当前用户的安全操作。

安全管理器:是管理所有用户安全操作的Shiro框架的核心和典型的Facade模型。 Shiro通过安全管理器管理内部组件实例,并通过这些实例提供各种安全管理服务。

Realm:Realm作为Shiro与APP应用程序安全数据之间的“桥梁”或“连接器”。 也就是说,当Shiro对用户执行验证(登录)和授权(访问控制)时,它将从APP应用程序配置的Realm中搜索用户及其权限信息。

2、Shiro的四个主要组件?

安全管理器

典型的Facade、Shiro通过它对外提供安全管理的各种服务。

评估器

“世卫组织Are you? "进行验证。 通常涉及用户名和密码。 此组件收集principals和credentials,并将其提交到APP应用程序系统。 如果提交的凭证与APP应用程序系统提供的凭证匹配,则可以继续访问。 如果不匹配,则必须重新提交principals和credentials或终止直接访问。

Authorizer

通过认证后,此组件将帮助您筛选登录者的访问控制,包括“世卫组织can do what”和“世卫组织can do which actions”。 Shiro采用“基于Realm”的方法。 这意味着用户、用户组、角色和权限的聚合物。

会话管理器

该组件保证了异构客户端的访问,配置简单。 它基于POJO/J2SE,不与任何客户端或协议相关联。

3、Shiro的工作原理?

APP代码(APP应用代码是我们自己的代码。 程序内需要权限控制时,需要调用Subject的API。

Subject :主体表示当前用户。 所有Subject都与SecurityManager捆绑在一起,与Subject的所有交互都委托给SecurityManager,可以将Subject视为一扇门。 真正的执行者是安全管理器。

SecurityManage (所有安全相关操作都与SecurityManager交互并管理所有Subject的安全管理器。

Realm (域shiro从Realm获取安全数据(用户、角色、权限)。 即安全管理器

要验证用户id,必须从Realm中获取相应的用户并进行比较,以确定用户id是否合法。 此外,还必须从Realm获得用户的相应角色/权限,以验证用户是否可以操作。 Realm可以被认为是数据源,也就是安全的数据源。

4、Shiro的四种权限控制方式?

url级别的权限控制

方法注释权限控制

代码级别的权限控制

5、什么是粗粒子和微粒的权限?

资源类型的管理称为粗粒度权限控制,只能控制菜单、按钮和方法。 作为粗粒度的例子,用户具有用户管理的权限,并具有导出订单行的权限。

管理资源实例称为粒度管理,它管理数据级别的权限。 例如,用户只允许修改自己部门的员工信息,用户只允许导出自己创建的订单详细信息。

总结:

粗粒子权限:对url链接的控制。

微粒权限:数据级别的控制。

例如,卫生局可以咨询所有用户,卫生室只能咨询我们的用户。

6、粗粒子和微粒如何认可?

对于粗粒度的授权,很容易使用系统架构级别的功能,即系统功能操作中统一的粗粒度权限管理。 对于精细粒度授权,建议不要将其作为系统体系结构级别的功能。 由于数据级管理是系统的业务需求,业务功能很可能会随着业务需求的变化而发生变化,因此建议在业务级定制和开发数据级权限管理。 例如,用户只能通过在服务接口中添加验证实现来更改自己创建的商品信息,服务接口必须接收当前操作员的标识信息。 与商品信息制作者的识别信息进行比较,如果不一致,则不允许变更商品

粗粒子权限:可以用过滤器批量阻止url。

微粒权限:服务控制,程序级控制,定制编程。

        

        以上就是“整理出来的精选shiro面试题”,你能回答上来吗?如果想要了解更多的相关内容,可以评论留言,或者私信博主。

你可能感兴趣的:(java,sql)