首页 > 编程知识 正文

java框架面试题及答案,java底层原理面试题

时间:2023-05-06 09:50:19 阅读:16858 作者:4890

另一方面,简单介绍Shiro框架ApacheShiro是java的安全框架。 使用shiro,不仅在JavaSE环境中,而且在JavaEE环境中也可以轻松地开发足够好的APP应用程序。 Shiro可以帮助您进行身份验证、许可、加密、会话管理、与Web集成、缓存等。

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

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

Subjuect代表当前用户的安全操作,SecurityManager管理所有用户的安全操作。

安全管理器:这是Shiro框架的核心,是典型的Facade模型。 Shiro通过安全管理器管理内部组件实例,并为安全管理提供各种服务。

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

二、Shiro的四个主要组件1、安全管理器:典型的Facade、Shiro通过他对外提供安全管理的各种服务

2、授权中心:验证“世卫组织ARE”。 通常涉及用户名和密码。 此组件收集principals和credentials,并将其提交到APP应用程序系统。 如果提交的凭证与APP应用程序系统提供的凭证温和,则可以继续访问。 否则,必须重新提交principals和credentials,或停止直接访问。

3、授权r :通过认证后,如“whocandowhat”或“whocando whichactions”,由该组件进行登录者的访问控制筛选。 Shiro采用基于Realm的方法。 这意味着用户、用户组、角色和权限的聚合物。

4、会话管理器:该组件保证异构客户端的访问,配置简单。 它基于POJO/J2SE,不与任何客户端或协议相关联。

三. Shiro运行原理

APP代码是我们自己的代码,如果程序中需要权限控制,则需要调用Subject的API。

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

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

Realm:Shiro从Realm获取安全数据(用户、角色和权限)。 也就是说,为了验证用户id,SecurityManager必须从Realm中检索相应的用户并进行比较,以确定用户id是否合法。 此外,还必须从Realm获得用户的相应角色/权限,以验证用户是否可以操作。 可以将Realm视为数据源,也就是安全的数据源。

四. Shiro的四重权限控制方式url级权限控制

方法注释权限控制

代码级权限控制

页面标签权限控件

五、授权实现的流程1、粗粒子和微粒的权限是什么?

资源类型的管理称为粗粒度权限控制,最多只能控制菜单、按钮和方法。 粗粒度的例子是用户具有用户管理权限和导出订单行的权限。 资源实例的管理被称为粒度权限管理,是管理城市数据级别的权限。 例如,用户只允许修改自己部门的员工信息,而用户只允许到处修改自己创建的订单详细信息。

总结:

粗粒子权限:控制url连接

微粒权限:数据级别控制

2、粗粒子和微粒怎么认可?

对于粗粒度授权,可以方便地进行系统架构级别的功能,即用于系统功能操作的统一粗粒度权限管理。

对于粒度较细的许可证,不建议将其设置为系统体系结构级别的犬能。 由于数据级控制是系统的业务需求,因此随着业务需求的变化,业务功能最可能发生变化的是在业务级定制和开发数据级权限控制。

粗粒子权限:可以使用过滤器统一监听url

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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。