Java岗大厂面试百日冲刺【Day43】— Shrio1 (日积月累,每日三题

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

正文

  • 面试题1:你来简单介绍一下Shiro框架吧?

    • 追问1:Shiro常见的权限控制方式有哪几种?
  • 追问2:你还知道Shiro的其他组件么?简单说一下

  • 面试题2:说一下Shiro认证和授权过程

  • 面试题3:Shiro中常见的异常有哪些?

  • 每日小结


本栏目Java开发岗高频面试题主要出自以下各技术栈:Java基础知识集合容器并发编程JVMSpring全家桶MyBatis等ORMapping框架MySQL数据库Redis缓存RabbitMQ消息队列Linux操作技巧等。

相信很多朋友简历中都写了熟练使用Shrio框架,这也是我们做单点登录经常会用到的途径之一。既然写上了,就要做好被问到的准备,一般会问哪些呢?其实,除了你使用过程中出现的一些实际操作遇到的BUG以外,以下问题我劝你都了解一下,这是用好Shrio的同学都应该了解的内容,淦(juan)!

面试题1:你来简单介绍一下Shiro框架吧?

=====================================================================================

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

在这里插入图片描述

Shiro包括三个核心组件:Subject,SecurityManager和Realm。

  • Subject:即当前操作用户。Subject在shiro中是一个接口,定义了很多认证授权的方法,外部程序通过Subject进行认证授权,而Subject通过SecurityManager进行认证授权。其实SecurityManager才是实际的执行者。

  • SecurityManager安全管理器所有与安全有关的操作都会与SecurityManager交互,且管理着所有的Subject,是shiro的核心,负责与shiro其他组件进行交互,如通过Authenticator进行认证,通过Authorizer进行授权,通过SessionManager进行会话管理等。SecurityManager也是一个接口,继承了Authenticator,Authorizer,SessionManager三个接口

  • Realm:Realm充当了Shiro与应用安全数据间的“桥梁”或者“连接器”。Shiro从Realm获取安全数据(如用户,角色,权限);也就是说SecurityManager要验证用户身份或操作权限,需要从Realm获取相应数据来判断(用户是否能登录,是否拥有什么权限等)。

追问1:Shiro常见的权限控制方式有哪几种?


● 方法注解权限控制

● 页面标签权限控制

● 代码级别权限控制

● URL级别权限控制

1. 方法注解权限控制:

基于代理技术实现,首先要在spring配置文件中进行声明开启shiro注解,然后在代码方法上用注解声明调用该方法需要什么权限。

<bean id=“defaultAdvisorAutoProxyCreator”

class=“org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator”>

然后在方法上声明:

@RequiresPermissions(“user-delete”)

//执行这个方法,需要当前用户具有user-delete这个权限

public String deleteUser(){

staffService.deleteUser(user_name);

return LIST;

}

2. 页面标签权限控制:

首先要在jsp页面进入表签:

<%@ taglib uri=“http://shiro.apache.org/tags” prefix=“shiro” %>

然后包裹权限控制的内容

<shiro:hasPermission name=“user-delete”>

<!— 有权限 —>

删除用户

</shiro:hasPermission>

3.代码级别权限控制:

public String deleteUser(Model model){

Subject subject = SecurityUtils.getSubject();

if(subject…checkPermission(“user-delete”)) {

//有权限

} else {

//无权限

}

}

4. URL拦截权限控制:

基于filter过滤器实现,我们在spring配置文件中配置shiroFilter时配置

/css/ = anon

/js/ = anon

/images/ = anon

/validatecode.jsp = anon

/login.jsp = anon

/user/userlogin = anon

/user/deleteUser = perms[“user-delete”]

/** = authc

正常情况下,没有授权会跳转到为授权(登录)页面

anon:表示不拦截(匿名用户可访问)

user:使用rememberme的用户可访问

perms:对应权限可访问

role:对应的角色才能访问

authc:认证用户可访问

使用shiro进行权限控制时 这四种方法并不是进行单一的使用,是相互结合的使用从而完整的进行权限控制。

追问2:你还知道Shiro的其他组件么?简单说一下

最后我们该如何学习?

1、看视频进行系统学习

这几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。

另外,我自己也珍藏了好几套视频资料躺在网盘里,有需要的我也可以分享给你:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2、读源码,看实战笔记,学习大神思路

“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。

Spring源码深度解析:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Mybatis 3源码深度解析:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Redis学习笔记:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Spring Boot核心技术-笔记:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3、面试前夕,刷题冲刺

面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。

关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

只有技术过硬,在哪儿都不愁就业,“万般带不去,唯有业随身”学习本来就不是在课堂那几年说了算,而是在人生的旅途中不间断的事情。

人生短暂,别稀里糊涂的活一辈子,不要将就。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
,“万般带不去,唯有业随身”学习本来就不是在课堂那几年说了算,而是在人生的旅途中不间断的事情。

人生短暂,别稀里糊涂的活一辈子,不要将就。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-Qsby31jx-1713547548212)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值