Shiro安全框架面试题

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: Shiro安全框架面试题

1.什么是Shiro框架

Apache Shiro是一个强大易用的java安全框架,提供了认证、授权、加密和会话管理功能,可为任何应用提供安全保障-从命令应用、移动应用到大型网络及企业应用。

Shiro已将安全认证相关的功能抽取出来组成一个框架,使用Shiro就可以非常快速的完成认证、授权等功能,降低系统开发成本。

shiro使用广泛,shiro可以运行在web应用、非web应用、集群分布式应用中越来越多的用户开始使用shiro。

java领域中spring security也是一个开源的权限管理框架,但是spring security依赖spring运行,

而shiro就相对独立,最主要因为shiro使用简单、灵活。


总结

Apache Shiro 是 Java 的一个安全(权限)框架。


Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE 环境,也可以用在 JavaEE环境。


Shiro 可以完成:认证、授权、加密、会话管理、与Web 集成、缓存 等。


描述Shiro认证流程

1、收集用户身份/凭证

2、调用 Subject.login 进行登录

3、创建自定义的 Realm类,继承 org.apache.shiro.realm.AuthorizingRealm 类,实现 doGetAuthenticationInfo() 方法

4、提供 principals (身份)和 credentials(证 明)给 shiro,从而应用能验证用户身份


描述Shiro授权流程

1、在spring_shiro.xml中配置资源和页面相应信息

2、创建自定义的 Realm类,继承 org.apache.shiro.realm.AuthorizingRealm 类,实现 doGetAuthorizationInfo() 方法

3、编码实现:

(1) 获取登录用户基本信息principal
(2) 查询对应的角色进行循环存入Set集合中
(3) 创建AuthorizationInfo,对应设置Roles并返回即可

Shiro常用的哪些过滤器?分别是什么作用?

1.身份验证相关的

authc:证后访问
anon:匿名访问
logout:退出登录

2.授权相关的

roles[]:角色授权

什么是加密?

加密技术是对信息进行编码和解码的技术,编码是把原来可读信息(又称明文)译成代码形式(又称密文),其逆过程就是解码(解密)。加密技术的要点是加密算法,加密算法可以分为对称加密、非对称加密和不可逆加密三类算法。


描述什么是对称式加密?哪些常用加密算法?

对称加密:

数据加密和解密采用的都是同一个密钥,因而其安全性依赖于所持有密钥的安全性。

对称加密算法的主要优点是加密和解密速度快,加密强度高,且算法公开.

常用算法名称:DES (Data Encryption Standard)、 AES(Advanced Encryption Standard)


描述什么是非对称加密哪些常用加密算法?

非对称加密:

使用两把完全不同但又是完全匹配的一对钥匙(即一把公开密钥或加密密钥和专用密钥或解密密钥)—公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成

常用算法名称:SHS, RSA


描述什么是不可逆加密?哪些常用加密算法?

不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。

常用算法名称:MD5(32bit) SHA256(64bit) SHA512(生成128bit)


什么是加盐加密?

加盐加密是一种对系统登录口令的加密方式,它实现的方式是将每一个口令同一个叫做”盐“(salt)的n位随机数相关联


shiro框架的核心功能?

Authentication,Authorization,Cryptography,Session Management


shiro框架的核心组件?

Subject, SecurityManager 和 Realms


相关文章
|
1天前
|
缓存 安全 Java
【JavaEE】——单例模式引起的多线程安全问题:“饿汉/懒汉”模式,及解决思路和方法(面试高频)
单例模式下,“饿汉模式”,“懒汉模式”,单例模式下引起的线程安全问题,解锁思路和解决方法
|
4月前
|
Java
【Java集合类面试十二】、HashMap为什么线程不安全?
HashMap在并发环境下执行put操作可能导致循环链表的形成,进而引起死循环,因而它是线程不安全的。
|
4月前
|
安全 算法 Java
【Java集合类面试二】、 Java中的容器,线程安全和线程不安全的分别有哪些?
这篇文章讨论了Java集合类的线程安全性,列举了线程不安全的集合类(如HashSet、ArrayList、HashMap)和线程安全的集合类(如Vector、Hashtable),同时介绍了Java 5之后提供的java.util.concurrent包中的高效并发集合类,如ConcurrentHashMap和CopyOnWriteArrayList。
【Java集合类面试二】、 Java中的容器,线程安全和线程不安全的分别有哪些?
|
4月前
|
Go API 数据库
[go 面试] 分布式事务框架选择与实践
[go 面试] 分布式事务框架选择与实践
|
5月前
|
设计模式 存储 安全
Java面试题:设计一个线程安全的单例类并解释其内存占用情况?使用Java多线程工具类实现一个高效的线程池,并解释其背后的原理。结合观察者模式与Java并发框架,设计一个可扩展的事件处理系统
Java面试题:设计一个线程安全的单例类并解释其内存占用情况?使用Java多线程工具类实现一个高效的线程池,并解释其背后的原理。结合观察者模式与Java并发框架,设计一个可扩展的事件处理系统
70 1
|
6月前
|
XML 缓存 Java
大厂面试攻略:Spring框架核心要点精讲
Java SPI (Service Provider Interface) 是一种服务发现机制,允许在运行时动态加载和发现服务提供者。在数据库驱动加载中,SPI使得数据库驱动能够自动识别和注册,而无需显式加载。 Spring 是一个广泛应用的轻量级框架,核心功能包括依赖注入(DI)和面向切面编程(AOP)。不使用Spring时,开发人员需要手动管理对象的创建和依赖关系,使用Servlet等基础组件完成Web开发,以及手动处理JDBC操作。Spring通过管理Bean的生命周期和依赖关系,简化了企业级应用的开发,降低了代码的侵入性。
87 1
大厂面试攻略:Spring框架核心要点精讲
|
6月前
|
存储 安全 算法
Java基础19-一文搞懂Java集合类框架,以及常见面试题(二)
Java基础19-一文搞懂Java集合类框架,以及常见面试题(二)
65 8
|
6月前
|
安全 Java 开发工具
Java基础19-一文搞懂Java集合类框架,以及常见面试题(一)
Java基础19-一文搞懂Java集合类框架,以及常见面试题(一)
65 6
|
5月前
|
SQL Java 数据库连接
Java面试题:简述ORM框架(如Hibernate、MyBatis)的工作原理及其优缺点。
Java面试题:简述ORM框架(如Hibernate、MyBatis)的工作原理及其优缺点。
92 0
|
5月前
|
存储 安全 Java
Java面试题:请解释Java中的泛型集合框架?以及泛型的经典应用案例
Java面试题:请解释Java中的泛型集合框架?以及泛型的经典应用案例
61 0

热门文章

最新文章