大家好,如果你准备参加Java和Spring开发的面试,那么你应该准备一下Spring Security。由于安全是一个重要的话题,而Spring安全是在Java网络应用程序中实现安全的最流行的框架,所以在Java开发者面试中总有一些基于Spring安全的问题。在过去,我曾分享过Spring Boot问题、Spring Data JPA问题、Spring Cloud问题和微服务面试问题,在这篇文章中,我将分享20个流行的Spring安全问题供大家练习。我还分享了答案,以便你能快速复习Spring安全的关键概念。
为面试做充分的准备对任何去面试的人来说都是一件非常重要的事情。你不能不做准备,然后期望在最后得到好的结果,因为适当的准备与好的结果是相辅相成的。
面试可以扭转你的生活,所以你必须以应有的严肃态度对待它。试想一下,进入面试室,马上看到面试小组,你就会意识到自己根本没有为面试做好准备。
你会逃跑还是会面对小组?为了使自己免于这种尴尬,你只需要做一件事,那就是做好准备。
做好准备不仅仅是对自己说你已经准备好了,或者告诉你的朋友你已经准备好了,而是需要你迈出一步,找出在这种特定类型的面试中通常会问的问题类型。
一旦你知道了常问的那种问题,你就会更上一层楼,最终会成为你在面试当天的一个额外优势。就我而言,我敏锐地想到了你,因此研究并汇编了你在Spring Security面试中不会错过的问题。
20个Spring安全面试问题及答案
这里有20个Spring安全问题,你可以准备好在Spring开发者面试中表现出色。我试图通过这些问题涵盖重要的Spring安全概念,但如果你认为有什么遗漏,请随时建议离子评论。如果你有一个不知道答案的Spring安全问题,欢迎在评论中分享,我将尝试回答。
我在下面为你提到的问题有20个,我坚信在你期待通过面试时,它们会对你有很大的帮助。请仔细看一下这些问题。
1.什么是Spring Security?
答案:Spring SecuritySpring Security基本上是一个强大的认证和访问控制框架。它是高度可定制的,它主要关注于为Java应用程序提供认证和授权。
2.Spring框架的模块有哪些?
答案:Spring框架有以下四个模块:
-
测试
-
数据访问
-
AOP
-
网络
3.Spring安全中使用的预定义过滤器有哪些?
答案:根据出现的顺序,一些预定义的过滤器如下所示
-
SecurityContextPersistenceFilter - 它在HTTP请求之间存储SecurityContext内容。
-
ConcurrentSessionFilter - 负责处理并发会话。
-
UsernamePasswordAuthenticationFilter--它是最流行的认证过滤器。
-
ExceptionTranslationFilter--它负责处理安全拦截器抛出的异常。
-
FilterSecurityInterceptor--它保证了HTTP资源的安全。
4.为了使DelegatingFilterProxy按要求工作,你必须遵循哪些规则和限制?
答案:是。
-
目标Bean必须实现javax.servlet.Filter接口。
-
在你的web.xml中声明委托过滤器代理作为过滤器是必须的。
-
过滤器名称元素和目标Bean必须有相同的名称。
5.什么是安全上下文?
答案:安全上下文被定义为Spring安全框架中的一个接口,它定义了与当前执行线程相关的最低安全信息。
6.什么是PasswordEncoder?
答案:它是一个Spring安全接口,提供密码编码或密码散列。
7.Spring Security的一些基本特征是什么?
答案:Spring Security的一些基本功能包括。
-
它以一种非常有组织、全面和灵活的方式支持认证和授权。
-
它与Servlet API集成。
-
它提供了与Spring Web MVC的可选集成。
-
便于检测和预防攻击。
8.什么是Spring Security中的ProviderManager?
答案:ProviderManager基本上是AuthenticationManager的默认实现。ProviderManager基本上是AuthenticationManager的默认实现。
9.什么是JWT?
答案:JWT(JSON网络令牌)是由服务器生成的令牌。JWT(JSON网络令牌)是服务器在网络应用程序中进行用户认证时生成的令牌,随后发送到客户端。
10.为什么需要拦截-url?
答案:Intercept-url是用来确定用户的身份的。Intercept-url用于定义应用程序感兴趣的URL模式集,以及配置如何处理它们。
11.在Spring Security中,有多少个用户角色?
答案:总共有三个用户角色,分别是。
-
出纳员
-
监督员
-
普通用户
12.Spring安全框架中的安全层是什么?
答案:Spring安全框架中有哪些安全层?
-
认证
-
网络请求安全
-
服务层和域对象安全
13.在哪个安全注解中使用了Spel?
答案:
-
@PostFilter
-
@预授权
-
@授权后
-
@前置过滤器
14.什么是Spring Security中的Principal?
答案:Principal指的是当前登录的用户。
15.什么是盐化?什么是密码散列?
答案:加盐是指在密码散列之前将随机数据和密码结合起来的过程。另一方面,密码散列是将加密的密码储存在数据库中的过程。
16.AOP中的建议有哪些类型?
答案:AOP。
-
建议之后
-
在建议之前
-
抛出建议
-
围绕建议
-
在返回建议之后
17.Spring所支持的ORM有哪些?
答案:
-
JPA (Java Persistence API)
-
Hibernate
-
JDO(Java数据对象)
-
iBatis
-
顶端链接
18.什么是相互认证?
答案:相互认证是一个过程,通信链路中的两个实体相互验证。它也被称为双向认证。
19.@secured和@rolesallowed的工作是什么?
答案:这两个注解都为Spring Bean提供了方法级别的安全性。两者的区别在于,@Secured是从2.0版本往后的Spring安全注释,而@RolesAllowed是JSR 250注释。
20.为什么当你试图登录时,应用程序会进入无尽的循环?
答案:这只发生在登录页面是一个安全资源的时候。通常情况下,登录页面不应该是安全的,而应该标记为ROLE_ANONYMOUS。
春季安全是一个非常有趣的领域或主题,如果你已经很好地完成了上述问题,你会喜欢在面试中回答这些问题。如果你没有掌握上述所有问题,请花点时间再看一遍这些问题,我相信你会发现这些问题就像其他问题一样,只要你在面试小组面前有足够的信心,你就可以很容易地回答这些问题。
永远记住,你在面试当天的信心取决于你的准备程度。不要把你的注意力转移到其他事情上,而是继续把问题和答案内化,最后你一定会为自己感到骄傲。
