当前位置: 首页 > 图灵资讯 > 技术篇> Java shiro面试题及答案汇总

Java shiro面试题及答案汇总

来源:图灵教育
时间:2023-04-11 10:03:27

  Apache Shiro是强大易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro易于理解API,任何应用程序都可以快速轻松地获得,从最小的移动应用到最大的网络和企业应用都可以。今天我们来盘点一下面试中经常考的人。shiro面试问题,并附上答案,供应java程序员更好的学习和就业,顺利通过面试。

  1、简单介绍一下Shiro框架?

  答:Shiro是Java的安全框架。使用Shiro可以很容易地开发出足够好的应用程序。它不仅可以用于JavaSE环境,也可以用于JavaEE环境。Shiro可以帮助我们完成认证、授权、加密、会话管理、与Web集成、缓存等功能。

  三个核心组件分别是Subject,SecurityManagerRealms。

  2、Shiro的主要组件?

  答:(1)SecurityManager:典型的Facade,Shiro通过它提供各种外部安全管理服务;(2)Authenticator:对“Who are you?”进行核实。通常涉及用户名和密码。该组件负责收集principals 并向应用系统提交credentials。如果提交的credentials和应用系统提供的 如果credentials一致,可以继续访问,否则需要重新提交principals和credentials,或者直接访问 终止访问;(3)Authorizer:身份验证通过后,该组件将对登录人员进行访问控制筛选,如“who can do what”,或者“who can do which actions”。Shiro采用“基于Realm”方法,即用户 (又称Subject)、用户组、角色和permission的聚合物;(4)Session Manager:该组件保证了异构客户端的访问,配置简单。它是基于POJO/J2SE,没有任何关系 绑定客户端或协议

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

  6、如何授权粗粒和细粒?

  答:对于粗粒度的授权,很容易做到系统结构级功能,即系统功能操作采用统一的粗粒度权限管理。对于细粒度的授权,不建议制作系统架构级功能,因为数据级别的控制是系统的业务需求。随着业务需求的变化,业务功能发生变化的可能性很大。建议将数据级别的权限控制在业务层面进行个性化开发。例如,用户只允许修改他们创建的商品信息实现了service接口的添加验证。service接口需要输入当前操作员的标识。如果与商品信息创建者的标识不一致,则不允许修改商品信息。

  粗颗粒权限:过滤器可用于统一拦截url。

  细颗粒权限:在控制service,控制程序级别,个性化编程。

  7、shiro有什么优点?

  答:简单的身份验证,支持各种数据源;简单授权角色,支持细粒度授权;支持一级缓存,以提高应用程序的性能;基于内置适用于web和非web环境的POJO企业会话管理;非常简单的API加密;不绑定任何框架,可独立运行。

  8、Spring如何配置? Shiro?

  答:首先在 web.xml 中配置 Shiro 的 Filter;其次在 Spring 配置在配置文件中 Shiro:

  > 配置自定义 Realm:实现自定义认证和授权

  > 配置 Shiro 实体类使用的缓存策略

  > 配置 SecurityManager

  > 配置保证 Shiro 内部 Bean 声明周期已经执行。 Lifecycle Bean 后置处理器

  > 配置AOP 方法级权限检查

  > 配置 Shiro Filter

  9、比较 Spring Security和Shiro?

  答:相比Spring Security, Shiro 在保持强大功能的同时, 使用简单和灵活性;Spring 即使是一个简单的请求,Security也必须经过至少8个Filter;

  Spring Springrity必须是Spring 在环境中使用。

  10、Shiro授权过程是什么?

  答:(1)调用任何Subjecthasrole*的应用程序或框架代码, checkRole*, is Permitted*,或者check Permission*变体的方法, 传递任何所需的权限;(2)Subject 的实例 调用security使用security Manager 对应的方法,Subject 实例;(3)

  Security Manager调用orger.apache.shiro.authz.Authorizer 默认情况下,接口的对应方法,authorizer 实例是一个 Modular Realm Authorizer实例, 它支持在任何授权操作过程中协调一个或多个Realm 实例;(4) 每一个配置都很好 Realm 被检查是否实现了相同的检查 Authorizer 接口. 如果是, Realm 各自的 hasRole*, checkRole*,isPermitted*,或 checkPermission* 该方法将被调用。

  这10个问题是Shiro中的常见面试问题。我相信你可以学习和准备这些问题,并在java面试中更容易地回答问题。但与此同时,我也希望你能更多地丰富Shiro的知识,比如Shiro安全框架培训课程不仅对上述面试问题有更深入的了解,而且可以快速掌握Shiro安全框架知识,解决项目开发中的身份认证和授权相关安全问题,进一步提高java技能。