能力说明:
精通JVM运行机制,包括类生命、内存模型、垃圾回收及JVM常见参数;能够熟练使用Runnable接口创建线程和使用ExecutorService并发执行任务、识别潜在的死锁线程问题;能够使用Synchronized关键字和atomic包控制线程的执行顺序,使用并行Fork/Join框架;能过开发使用原始版本函数式接口的代码。
十年软件开发及授课经验,专注毕业设计
前言 在前两个章节中,一一哥 带大家学习了Spring Security内部关于认证授权的核心API,以及认证授权的执行流程和底层原理。掌握了这些之后,对于Spring Security,我们不仅做到了 "知其然",而且也做到了 "知其所以然"! 在现在的求职环境下,只知道某个技能点的用法是远远不够的,面试官会要求我们研究某个技术的底层实现原理,所以虽然前面的两章内容掌握起来很有难度,但是还是希望各位小伙伴结合源码认真研读,这样你才能在编程之路上走的更远更高! 总是研究底层,对于我们初学者来说,既有难度,也会影响咱们的学习积极性,所以从本篇文章开始,咱们继续学习Spring Securit
前言 在上一章节中,一一哥 带大家认识了Spring Security内部关于认证授权的几个核心API,以及这几个核心API之间的引用关系,掌握了这些之后,我们就能进一步研究分析认证授权的内部实现原理了。这样才真正的达到了 "知其所以然"! 本篇文章中,壹哥 带各位小伙伴进一步分析认证授权的源码实现,请各位再坚持一下吧...... 一. Spring Security认证授权流程图概述 在上一章节中,壹哥就给各位贴出过Spring Security的认证授权流程图,该图展示了认证授权时经历的核心API,并且展示了认证授权流程。接下来我们结合源码,一点点分析认证和授权的实现过程。 二. 简要
前言 经过前面几个章节的学习,一一哥 带大家实现了基于内存和数据库模型的认证与授权,尤其是基于自定义的数据库模型更是可以帮助我们进行灵活开发。但是前面章节的内容,属于让我们达到了 "会用" 的层级,但是 "为什么这么用",很多小伙伴就会一脸懵逼了。对于技术学习来说,我们追求的不仅要 "知其然",更要 "知其所以然"! 本篇文章中,壹哥 就跟各位小伙伴一起来了解剖析Spring Security源码内部,实现认证授权的具体过程及底层原理。接下来请各位做好心理准备,以下的学习过程可能会让你心理 “稍有不适” 哦,因为每次看源码都懵懵的...... 一. Spring Security认证请求完整
前言 在上一个章节中,一一哥 给大家讲解了如何基于默认的数据库模型来实现认证授权,在这种模型里,用户的信息虽然是保存在数据库中的,但是有很多的限制!因为我们必须按照源码规定的方式去建库建表,存在灵活性不足的问题。而我们真正开发时,用户角色等表肯定要根据自己的项目需求来单独设计,所以我们有必要进行用户及角色表的自定义设计。 那么在本篇文章中,壹哥 就带各位,结合自己的实际项目需求,进行数据库和表的自定义设计,然后在这个自定义的数据库中实现用户信息的认证与授权工作。 一. 核心API源码介绍 1. UserDetailsService源码 在上一章节中,我给大家介绍了一个JdbcUserDeta
前言 在上一个章节中,一一哥 给大家讲解了如何基于内存模型来实现授权,在这种模型里,用户的信息是保存在内存中的。你知道,保存在内存中的信息,是无法持久化的,也就是程序一旦关闭,或者断电等情况发生,内存中的信息就丢失了,所以这种方式并不适用于生产环境! 那么我们肯定要把用户信息持久化, 但是持久化到哪里去呢?那就是数据库呗!数据库是我们做程序员必会必熟的知识点,尤其是做后端开发,开发时常用的数据库有MySQL和Oracle,本案例中我们采用的是MySQL数据库。 一. JdbcUserDetailsManager类介绍 在进行编码实现之前,壹哥 先和各位一起来看看Spring Security
前言 在前面的几个章节中,一一哥 带大家学会了如何创建Spring Security项目,3种认证方式,以及在前后端分离时的安全处理方案。在之前的这几章节中,我们主要学习的还是关于 "认证" 的知识点,但是安全框架还有另一大核心功能,就是 "授权"! 所以接下来请各位跟着 一一哥 来学习Spring Security的授权功能,只有 "认证" + "授权" 双剑合璧,才能真正发挥Spring Security的威力! 这时候小伙伴会问,"一一哥,那啥是授权啊?我连授权还不知道呢,更别说怎么实现授权了,呜呜......"!别急,接下来咱们先看看授权的概念! 一. 授权简介 1. 授权概念 所
前言 在前面的几个章节中,一一哥 带大家学会了如何利用Spring Security来保护我们的Web项目,以及3种认证方式。你可能会觉得,Spring Security没啥东西啊,代码也不复杂呀!别急,我们的学习是渐进的,Spring Security的内容和功能都多着呢,我们要Get的点也多着呢。 今天 一一哥 就带大家来学习一下在前后端分离的开发模式下,如何保护我们项目的安全。有的小伙伴会问,啥是前后端分离啊?如果你对此一无所知,一一哥 只能建议你先查阅一下相关资料,本文 一一哥 只能带你简单了解一下前后端分离的概念,毕竟今天我们是在讲解如何保证安全性的。 还有的小伙伴会说,前后端分离有
前言 在前面的2个章节中,一一哥 带大家认识了Spring Security中的第基本认证与表单认证 2种认证方式,其中表单认证是Spring Security默认的认证方式,也是开发时最常用的认证方式。有的小伙伴会问,不是还有第3种认证方式吗?对的,还有第三种摘要认证方式!在本文中,我们来学习了解一下HTTP摘要认证。 但是对于摘要认证,我们仅做了解即可,因为这种认证方式仅比基本认证稍微安全一点,开发时用的也不是很多。抱着艺多不压身的心态,我们多了解一点反正也没坏处。
前言 在上一章节中,一一哥 带大家认识了Spring Security中的第一种认证方式,但是这种基本认证的方式,UI效果不漂亮,安全性也很差,好像一无是处的样子,那么有没有更好一点的认证方式呢?有的!接下来我给大家介绍一个新的认证方式,即Form表单认证。 一. Form表单认证 1. 认证方式 我们从前文中得知,Spring Security中的认证方式可以分为HTTP层面和表单层面,常见的认证方式如下: • ①. HTTP基本认证; • ②. Form表单认证; • ③. HTTP摘要认证;
在上一章节中,一一哥 带大家搭建了第一个Spring Security项目,相信小伙伴已经学会了如何利用Spring Security来保护我们的Java Web项目。但是第一个案例只是属于HelloWorld入门级别的项目,关于SpringSecurity的具体使用细节,我们还有很多不了解的。接下来,一一哥 从认证方式开始,与各位一起学习如何进行各种认证。 一. Spring Security的认证方式 1. 认证概念 在进行编码之前,我们还是老规矩,先了解一下"认证"的概念,不能连认证是啥意思都不知道,就去撸码,撸了半天都不知道撸的是什么,这有个什么劲啊。 认证: 所谓的认证,就是用来判
在上一章节中,一一哥 已经带大家认识了Spring Security,对其基本概念已有所了解,但是作为一个合格的程序员,最关键的肯定还是得动起手来,所以从本篇文章开始,我就带大家搭建第一个Spring Security项目,看看如何利用Spring Security来保护我们的Java Web项目。 我们的Spring Security系列教程会基于SpringBoot环境,并且以案例迭代的方式进行开发,所以为了方便后续案例的编写,我们先提前搭建一个SpringBoot环境的Web项目。
在开始学习Spring Security系列教程之前,一一哥 先带大家来了解一下Spring Security,看看它到底是什么,有哪些功能,有什么特点,以及它与别的同类框架相比,有什么不同,我们以后学习任何一个新技术,其实都可以遵循"3W1H"法则,这样学习起来才能更有条理。 首先请各位跟着 一一哥 来了解一下 Spring Security的概念,我们得先知道要学习的是个什么东西,以后我们出去面试的时候,面试官可能会问你,"请你介绍一下Spring Security",那么答案其实就是这个概念了。
很多小伙伴进行Web开发时,都会面临一些很头疼的问题: 项目中有些页面或接口可以直接访问,有些必须登录后才能访问,还有些登录之后也不一定能直接访问,必须具有一定的角色身份才能访问......或者我们想在同一时刻,只允许用户在一个设备上登录..... 如何实现一个安全可靠的登录操作?只是简单的进行数据库查询吗?...... 其实所有的这些问题,都是事关 安全大事 的问题!如果我们不能解决这些问题,就无法保护好自己的项目,那么这样的项目就如同没有任何安保措施的银行,我们的财产就是毡板上的肉,认人随意支取!所以作为一个合格的程序员,必须加强项目的安全保障!