写点什么

SpringBoot+JWT+Shiro,linux 高级编程面试题

  • 2022 年 4 月 13 日
  • 本文字数:910 字

    阅读完需:约 3 分钟

一. 什么是架构和架构本质

在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。 此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。


Linux 有架构,MySQL 有架构,JVM 也有架构,使用 Java 开发、MySQL 存储、跑在 Linux 上的业务系统也有架构,应该关注哪一个?想要清楚以上问题需要梳理几个有关系又相似的概念:系统与子系统、模块与组建、框架与架构


5.搭配 Shiro 注解配置权限,高度灵活,提供按钮级别的权限控制,后端接口只验证权限,不看角色。用自定义 @CurrentUser 注解获取当前登录用户,Controlle 层统一异常处理:



6.用 SpringAOP 切面编程进行声明式事务,过滤请求参数,防止 XSS 攻击。


7.使用 POST 请求登录返回 token 和权限信息,保证请求无状态,返回实体如果属性为空不显示。


三、程序逻辑

1.填写用户名密码用 POST 请求访问/login 接口,返回 token 令牌等信息,失败则直接跳转 401 错误页面。



2.在之后需要验证身份的请求的 Headers 中添加 Authorization 和登录时返回的 token 令牌。


3.服务端进行 token 认证,失败跳转 401 页面。


4.用 jwt 做认证(登录),Shiro 做授权。

四、运行项目

项目结构:



  • 通过 git 下载源码,本项目基于 JDK1.8

  • 采用 Maven 项目管理,模块化,导入 IDE 时直接选定 liugh-parent 的 pom 导入

  • 创建数据库 liugh,数据库编码为 UTF-8,执行 liugh.sql 文件,初始化数据

  • 修改 application-dev.properties,更新 MySQL 账号和密码

  • Eclipse、IDEA 运行 SpringbootApplication.java,则可启动项目


《一线大厂 Java 面试真题解析+Java 核心总结学习笔记+最新全套讲解视频+实战项目源码》开源


Java 优秀开源项目:

  • ali1024.coding.net/public/P7/Java/git

最后

这份文档从构建一个键值数据库的关键架构入手,不仅带你建立起全局观,还帮你迅速抓住核心主线。除此之外,还会具体讲解数据结构、线程模型、网络框架、持久化、主从同步和切片集群等,帮你搞懂底层原理。相信这对于所有层次的 Redis 使用者都是一份非常完美的教程了。



整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~


你的支持,我的动力;祝各位前程似锦,offer 不断!!!

用户头像

还未添加个人签名 2022.04.13 加入

还未添加个人简介

评论

发布
暂无评论
SpringBoot+JWT+Shiro,linux高级编程面试题_Java_爱好编程进阶_InfoQ写作平台