江南一点雨的专栏

专注Java一百年
私信 关注
_江南一点雨
码龄7年

Java攻城狮

  • 6,057,740
    被访问量
  • 645
    原创文章
  • 130
    作者排名
  • 20,595
    粉丝数量
  • 于 2013-11-03 加入CSDN
  • 入选《本周创作者榜》第18名
获得成就
  • 博客专家认证
  • 获得8,089次点赞
  • 内容获得2,892次评论
  • 获得21,284次收藏
荣誉勋章
兴趣领域
  • #后端
    #MySQL#分布式#Linux#Spring#架构#Elasticsearch#Java#Redis#Spring Boot
TA的专栏
  • 关于Spring Boot
    140篇
  • idea
    1篇
  • Spring和SpringMVC框架案例
    9篇
  • android基础
    53篇
  • 自定义View
    9篇
  • 玩转ubuntu
    20篇
  • 关于MyBatis
    10篇
  • android源码解读
    12篇
  • Android5.0
    9篇
  • Git教程
    11篇
  • NDK实战
    9篇
  • MongoDB教程
    20篇
  • Spring Cloud系列
    32篇
  • java
    170篇
  • 玩转android
    152篇
  • javascript
    7篇
  • jquery
    6篇
  • jquery mobile
    4篇
  • 浏览器
    2篇
  • chrome
    1篇
  • c/c++
    2篇
  • jni
    2篇
  • 管中窥豹
    219篇
  • json
    2篇
  • 新技术
    2篇
  • webservice
    11篇
  • git
    11篇
  • oracle
    16篇
  • 数据库
    19篇
  • mysql
    8篇
  • linux
    19篇
  • ubuntu
    19篇
  • android5.0
    10篇
  • 开源控件
  • JavaEE
    92篇
  • elasticsearch
    6篇
  • redis
    10篇
  • docker
    2篇
我的书
我的书:

购买链接

天猫购买链接

京东购买链接

当当购买链接


欢迎大家访问松哥自己的独立站点:
www.javaboy.org
www.itboyhub.com


点击下载松哥手敲 274 页 Spring Boot 电子书:
提取码:0vg9


优质原创公众号:
【江南一点雨】每天推送原创技术干货,扫码关注后回复如下关键获取对应干货:
2TB,送你 2TB Java 学习资源
666,送你274页原创SpringBoot教程
ssm,送你10万字原创SSM教程
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

小伙伴们提的这个问题,我今天必须解决了!

hello 小伙伴们新年好~给大家拜个晚年~今年虽然倡导就地过年,松哥还是溜回家过年去了,回家那是真舒服啊,公众号都荒废了两周了~不过过年期间也不是一点事没干,过年期间终于抽空把小伙伴们反映很久的一个问题解决了~每次小伙伴们反映 www.javaboy.org 很慢,我都很焦虑,但是这个网站我暂时没办法解决慢的问题,我说说原因。javaboy.org 是我从国外服务商那里买的域名,当时选择这个的原因是不用备案,当天买当天网站就能上线,很快。服务器我也没有自己搭建,选择了 GitHub Pages
原创
214阅读
6评论
3点赞
发布博客于 4 天前

细品 Spring Boot+Thymeleaf,还有这么多好玩的细节!

文章目录1. Thymeleaf 简介2. 整合 Spring Boot2.1 基本用法2.2 手动渲染3. Thymeleaf 细节3.1 标准表达式语法3.1.1 简单表达式3.1.2 字面量3.1.3 文本运算3.1.4 算术运算3.1.5 布尔运算3.1.6 比较和相等3.1.7 条件运算符3.1.8 内置对象3.2 设置属性值3.3 遍历3.4 分支语句3.5 本地变量3.6 内联4. 小结虽然现在流行前后端分离,但是后端模版在一些关键地方还是非常有用的,例如邮件模版、代码模版等。当然也不排除一
原创
595阅读
2评论
0点赞
发布博客于 2 月前

Spring Boot 日志各种使用姿势,是时候捋清楚了!

文章目录1. Java 日志概览1.1 总体概览1.2 日志级别1.3 综合对比1.4 最佳实践2. Spring Boot 日志实现2.1 Spring Boot 日志配置2.2 Logback 配置2.2.1 基本配置2.2.2 输出到文件2.3 Log4j 配置3.小结之前录过一个视频和大家分享 Spring Boot 日志问题,但是总感觉差点意思,因此松哥打算再通过一篇文章来和大家捋一捋 Java 中的日志问题,顺便我们把 Spring Boot 中的日志问题也说清楚。1. Java 日志概览
原创
2319阅读
2评论
13点赞
发布博客于 2 月前

ElasticSearch 23 种映射参数详解

文章目录1.ElasticSearch 映射参数1.1 analyzer1.2 search_analyzer1.3 normalizer1.4 boost1.5 coerce1.6 copy_to1.7 doc_values 和 fielddata1.8 dynamic1.9 enabled1.10 format1.11 ignore_above1.12 ignore_malformed1.13 include_in_all1.14 index1.15 index_options1.16 norms1.1
原创
530阅读
1评论
3点赞
发布博客于 2 月前

ElasticSearch 动态映射和静态映射,以及四种字段类型

文章目录1.ElasticSearch 映射1.1 映射分类1.2 类型推断2.ElasticSearch 字段类型2.1 核心类型2.1.1 字符串类型2.1.2 数字类型2.1.3 日期类型2.1.4 布尔类型(boolean)2.1.5 二进制类型(binary)2.1.6 范围类型2.2 复合类型2.2.1 数组类型2.2.2 对象类型(object)2.2.3 嵌套类型(nested)2.3 地理类型2.3.1 geo_point2.3.2 geo_shape2.4 特殊类型2.4.1 IP2.4
原创
404阅读
0评论
0点赞
发布博客于 2 月前

ElasticSearch 文档并发处理以及文档路由

文章目录1. ElasticSearch 文档基本操作1.1 新建文档1.2 获取文档1.3 文档更新1.3.1 普通更新1.3.2 查询更新1.4 删除文档1.4.1 根据 id 删除1.4.2 查询删除1.5 批量操作2. ElasticSearch 文档路由3. ElasticSearch 版本控制3.1 锁3.2 版本控制3.2.1 内部版本3.2.2 外部版本3.2.3 最新方案(Es6.7 之后)ElasticSearch 系列教程我们前面已经连着发了两篇了,今天第三篇,我们来聊一聊 Es 中
原创
207阅读
0评论
1点赞
发布博客于 3 月前

ElasticSearch 中的中文分词器以及索引基本操作详解

文章目录1.ElasticSearch 分词器介绍1.1 内置分词器1.2 中文分词器1.2.1 安装1.2.2 测试1.2.3 自定义扩展词库1.2.3.1 本地自定义1.2.3.2 远程词库2. ElasticSearch 索引管理2.1 新建索引2.1.1 通过 head 插件新建索引2.1.2 通过请求创建2.2 更新索引2.3 修改索引的读写权限2.4 查看索引2.5 删除索引5.6 索引打开/关闭2.7 复制索引2.8 索引别名本文是松哥所录视频教程的一个笔记,笔记简明扼要,完整内容小伙伴们可
原创
310阅读
0评论
0点赞
发布博客于 3 月前

68篇干货,手把手教你通关 Spring Security!

Spring Security 系列前前后后整了 68 篇文章了,是时候告一个段落了。这两天松哥抽空把该系列的文章整理了一下,做成了一个索引,方便小伙伴们查找。教程地址如下:http://www.javaboy.org/springsecurityhttp://www.itboyhub.com/springsecurity对应的 Demo 地址如下:https://github.com/lenve/spring-security-sampleshttps://github.com/len
原创
1334阅读
3评论
9点赞
发布博客于 3 月前

ElasticSearch 入门

文章目录1.Lucene2.ElasticSearch3.安装3.1 单节点安装3.2 HEAD 插件安装3.2.1 浏览器插件安装3.2.2 下载插件安装3.3 分布式安装3.4 Kibana 安装4.ElasticSearch 核心概念介绍4.1 ElasticSearch 十大核心概念4.1.1 集群(Cluster)4.1.2 节点(Node)4.1.3 索引(Index)4.1.4 类型(Type)4.1.5 文档(Document)4.1.6 分片(Shards)4.1.7 副本(Replica
原创
449阅读
3评论
6点赞
发布博客于 3 月前

想做个项目练练手却不知道做啥?松哥准备了 50 个热门需求文档给大家!

之前有好几位小伙伴向松哥反映,学完了微人事项目的技术点之后,想再做个项目练练手,但是却不知道该做啥!不了解业务就无从下手。其实我理解大家的这种处境,因此,这个周末松哥花了两天时间,整理了 50+ 个热门项目需求文档给大家参考,小伙伴们只需要认真研读这些需求文档,照着需求文档所描述的业务功能去开发项目即可。这些需求文档基本都是 Java 企业级应用,一些业务简单的项目松哥建议大家采用 Spring Boot + Vue 技术栈来开发,有的业务比较复杂的,可以多找几个小伙伴一起开发,对于这种业务复杂的项目也
原创
870阅读
0评论
7点赞
发布博客于 3 月前

一个案例演示 Spring Security 中粒度超细的权限控制!

想要细化权限控制粒度,办法很多。本文接着上文(Spring Security 中如何细化权限粒度?),通过一个具体的案例来向小伙伴们展示基于 Acl 的权限控制。其他的权限控制模型后面也会一一介绍。1.准备工作首先创建一个 Spring Boot 项目,由于我们这里涉及到数据库操作,所以除了 Spring Security 依赖之外,还需要加入数据库驱动以及 MyBatis 依赖。由于没有 acl 相关的 starter,所以需要我们手动添加 acl 依赖,另外 acl 还依赖于 ehcache 缓存
原创
3102阅读
3评论
8点赞
发布博客于 5 月前

Spring Security 中如何细化权限粒度?

有小伙伴表示微人事(https://github.com/lenve/vhr)的权限粒度不够细。不过松哥想说的是,技术都是相通的,明白了 vhr 中权限管理的原理,在此基础上就可以去细化权限管理粒度,细化过程和还是用的 vhr 中用的技术,只不过设计层面重新规划而已。当然今天我想说的并不是这个话题,主要是想和大家聊一聊 Spring Security 中权限管理粒度细化的问题。因为这个问题会涉及到不同的权限管理模型,今天和小伙伴们聊一聊~1.权限管理模型要想将细化权限粒度,我们不可避免会涉及到一些权限
原创
1419阅读
4评论
3点赞
发布博客于 5 月前

Spring Security 权限管理的投票器与表决机制

今天咱们来聊一聊 Spring Security 中的表决机制与投票器。当用户想访问 Spring Security 中一个受保护的资源时,用户具备一些角色,该资源的访问也需要一些角色,在比对用户具备的角色和资源需要的角色时,就会用到投票器和表决机制。当用户想要访问某一个资源时,投票器根据用户的角色投出赞成或者反对票,表决方式则根据投票器的结果进行表决。在 Spring Security 中,默认提供了三种表决机制,当然,我们也可以不用系统提供的表决机制和投票器,而是完全自己来定义,这也是可以的。本
原创
1492阅读
3评论
3点赞
发布博客于 5 月前

Spring Security 中如何让上级拥有下级的所有权限?

答案是能!松哥之前写过类似的文章,但是主要是讲了用法,今天我们来看看原理!本文基于当前 Spring Security 5.3.4 来分析,为什么要强调最新版呢?因为在在 5.0.11 版中,角色继承配置和现在不一样。旧版的方案我们现在不讨论了,直接来看当前最新版是怎么处理的。1.角色继承案例我们先来一个简单的权限案例。创建一个 Spring Boot 项目,添加 Spring Security 依赖,并创建两个测试用户,如下:@Overrideprotected void configure
原创
1461阅读
9评论
8点赞
发布博客于 5 月前

什么是计时攻击?Spring Boot 中该如何防御?

松哥最近在研究 Spring Security 源码,发现了很多好玩的代码,抽空写几篇文章和小伙伴们分享一下。很多人吐槽 Spring Security 比 Shiro 重量级,这个重量级不是凭空来的,重量有重量的好处,就是它提供了更为强大的防护功能。比如松哥最近看到的一段代码:protected final UserDetails retrieveUser(String username, UsernamePasswordAuthenticationToken authentication)
原创
2654阅读
2评论
11点赞
发布博客于 5 月前

一个诡异的登录问题

美好周末,从解 BUG 开始!周五本来想早点下班,临了有一个简单的需求突然提上来,心想着整完了就走,没想到一下折腾了 1 个多小时才搞定,愉快的周末就从加班中开启了。回到家里把这件事复盘一下,小伙伴们看看是否能够从中 GET 到一些未知的东西。需求是这样的:项目是 Spring Boot 项目,里边对请求进行了划分,有的请求是 HTTP 协议,有的请求是 HTTPS 协议,项目规定,有一些请求必须是 HTTPS 协议,例如 /https 接口,该接口必须使用 HTTPS 协议访问,如果用户使用了 HT
原创
877阅读
3评论
4点赞
发布博客于 5 月前

为什么你使用的 Spring Security OAuth 过期了?

最近一段时间,大家在用 Spring Security OAuth2 时可能发现有很多类过期了。大家在选择 OAuth2 依赖的时候,可能也会困惑,有好几个地方都可以选:那么到底选择哪一个依赖合适呢?这不同的依赖又有什么区别?今天松哥就来和大家聊一聊 Spring Security 中关于 OAuth2 的恩怨。前言先来大致介绍一下 OAuth2 在 Spring 框架中的发展历程。大约十年前,Spring 引入了一个社区驱动的开源项目 Spring Security OAuth,并将其纳入
原创
2214阅读
2评论
12点赞
发布博客于 6 月前

Spring 源码第 8 篇,各种属性的解析

Spring 源码解析第 8 篇,继续。上篇文章我们分析了 bean 标签的解析过程,但是主要是涉及到一些简单的属性,一些冷门属性如 lookup-method 等没有和大家分析,主要是考虑到这些属性大家可能用得少,因此我上周录制了一个简单的视频,先带领小伙伴们复习了一下这些冷门属性的用法:Spring 中四个冷门属性,你可能没用过,挑战看一下!现在关于 bean 节点的配置大家都了解了,我们接下来就来看下完整的解析过程。阅读本系列前面文章,有助于更好的理解本文:Spring 源码解读计划Sp
原创
841阅读
1评论
7点赞
发布博客于 6 月前

Spring 源码解读第七弹!bean 标签的解析

Spring 源码解读继续。本文是 Spring 系列第八篇,如果小伙伴们还没阅读过本系列前面的文章,建议先看看,这有助于更好的理解本文。Spring 源码解读计划Spring 源码第一篇开整!配置文件是怎么加载的?Spring 源码第二弹!XML 文件解析流程Spring 源码第三弹!EntityResolver 是个什么鬼?Spring 源码第四弹!深入理解 BeanDefinition手把手教你搭建 Spring 源码分析环境Spring 源码第六弹!松哥和大家聊聊容器的始祖 Def
原创
3614阅读
5评论
13点赞
发布博客于 6 月前

盘点 Spring Security 框架中的八大经典设计模式

上次有小伙伴建议,源码分析太枯燥了,要是能够结合设计模式一起来,这样更有助于大家理解 Spring Security 源码,同时还能复习一波设计模式。因此松哥今天就试着整一篇,和大家来聊一聊 Spring Security 中涉及到的设计模式,不过 Spring Security 中涉及到的设计模式还是非常多的,松哥这里讲几个,剩下的欢迎小伙伴们留言补充。1.模板方法模式Template Pattern(模板方法模式)是一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将
原创
1149阅读
1评论
1点赞
发布博客于 7 月前

深入理解 WebSecurityConfigurerAdapter【源码篇】

我们继续来撸 Spring Security 源码,今天来撸一个非常重要的 WebSecurityConfigurerAdapter。我们的自定义都是继承自 WebSecurityConfigurerAdapter 来实现的,但是对于 WebSecurityConfigurerAdapter 内部的工作原理,配置原理,很多小伙伴可能都还不太熟悉,因此我们今天就来捋一捋。我们先来看一张 WebSecurityConfigurerAdapter 的继承关系图:在这层继承关系中,有两个非常重要的类:S
原创
2681阅读
2评论
6点赞
发布博客于 7 月前

花式玩 Spring Security ,这样的用户定义方式你可能没见过!

有的时候松哥会和大家分享一些 Spring Security 的冷门用法,不是为了显摆,只是希望大家能够从不同的角度加深对 Spring Security 的理解,这些冷门的用法非常有助于大家理解 Spring Security 的内部工作原理。我本来可以纯粹的去讲源码,讲原理,但是那样太枯燥了,所以我会尽量通过一些小的案例来帮助大家理解源码,这些案例的目的只是为了帮助大家理解 Spring Security 源码,仅此而已!所以请大家不要和我抬杠这些用户定义方式没用!好啦,我今天要给大家表演一个绝活,就
原创
675阅读
1评论
1点赞
发布博客于 7 月前

深入理解 AuthenticationManagerBuilder 【源码篇】

咱们继续来撸 Spring Security 源码。前面和大家分享了 SecurityBuilder 以及它的一个重要实现 HttpSecurity,在 SecurityBuilder 的实现类里边,还有一个重要的分支,那就是 AuthenticationManagerBuilder,AuthenticationManagerBuilder 看名字就知道是用来构建 AuthenticationManager 的,所以今天我们就来看一看 AuthenticationManager 到底是怎么构建的。1.初
原创
1851阅读
2评论
1点赞
发布博客于 7 月前

深入理解 HttpSecurity【源码篇】

HttpSecurity 也是 Spring Security 中的重要一环。我们平时所做的大部分 Spring Security 配置也都是基于 HttpSecurity 来配置的。因此我们有必要从源码的角度来理解下 HttpSecurity 到底干了啥?1.抽丝剥茧首先我们来看下 HttpSecurity 的继承关系图:可以看到,HttpSecurity 继承自 AbstractConfiguredSecurityBuilder,同时实现了 SecurityBuilder 和 HttpSecur
原创
1233阅读
1评论
10点赞
发布博客于 7 月前

深入理解 SecurityConfigurer 【源码篇】

我们来继续撸 Spring Security 源码。SecurityConfigurer 在 Spring Security 中是一个非常重要的角色。在前面的文章中,松哥曾经多次提到过,Spring Security 过滤器链中的每一个过滤器,都是通过 xxxConfigurer 来进行配置的,而这些 xxxConfigurer 实际上都是 SecurityConfigurer 的实现。所以我们今天有必要来跟大家把 SecurityConfigurer 从头到尾捋一捋。1. SecurityConfi
原创
1042阅读
0评论
8点赞
发布博客于 7 月前

深入理解 FilterChainProxy【源码篇】

昨天有小伙伴加松哥微信,说他把松哥的 Spring Security 系列撸完了。。but 松哥这个系列还没发完呢,在我的计划中,Spring Security 系列目前应该能更新一半,还剩一半,虽然有的小伙伴可能觉得好像已经没啥了,其实还有很多东西。。。松哥最近也是特别忙,Security 更新慢下来了,但是秉持前面说的,要学就成系列的学,要学就学透彻,这个系列我还会继续更下去。今天我们就来聊一聊 Spring Security 系列中的 FilterChainProxy。这是一个非常重要的代理
原创
835阅读
1评论
3点赞
发布博客于 7 月前

Spring 源码第六弹!容器的始祖 DefaultListableBeanFactory

Spring 源码继续开整!在 XML 文件解析流程一文中,松哥和大家分享了 Spring 中配置文件的加载方式,如果小伙伴们还没看过,一定先看一下,这有助于更好的理解本文,传送门:Spring 源码第一篇开整!配置文件是怎么加载的?。还记得该篇文章中的代码吗?XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("beans.xml"));User user = factory.getBean(User.class);
原创
500阅读
0评论
3点赞
发布博客于 7 月前

Spring Security 可以同时对接多个用户表?

文章目录1.原理1.1 Authentication1.2 AuthenticationManager1.3 ProviderManager1.4 AuthenticationProvider2.案例3.小结这个问题也是来自小伙伴的提问:其实这个问题有好几位小伙伴问过我,但是这个需求比较冷门,我一直没写文章。其实只要看懂了松哥前面的文章,这个需求是可以做出来的。因为一个核心点就是 ProviderManager,搞懂了这个,其他的就很容易了。今天松哥花一点时间,来和大家分析一下这个问题的核心,同时
原创
2434阅读
0评论
2点赞
发布博客于 7 月前

Spring Security 竟然可以同时存在多个过滤器链?

这是来自一个小伙伴的提问,我觉得很有必要和大家聊一聊这个问题:首先这个问题本身是有点问题的,因为 http.authorizeRequests() 并非总是第一个,虽然大部分情况下,我们看到的是第一个,但是也有很多情况 http.authorizeRequests() 不是首先出现。要搞明白这个问题,我们就要搞清楚 http.authorizeRequests() 到底是啥意思!这就涉及到 Spring Security 中过滤器链的配置问题了,本文松哥就来和大家稍微聊一聊。本文是 Spring S
原创
2238阅读
1评论
2点赞
发布博客于 7 月前

Spring 源码第四弹!深入理解 BeanDefinition

聚沙成塔!不知不觉 Spring 源码已经更到第五篇啦~看源码之前,要先会用功能,这是最基本的,因为在源码讲解中,默认大家已经熟知 Spring 基本用法了,如果还不熟悉 Spring 的基本用法,可以看一下松哥发布在 B 站上的免费入门视频:https://www.bilibili.com/video/BV1Wv41167TU。上篇文章和小伙伴们介绍了 Spring 源码中的 EntityResolver,这个是用来解决 XML 文件校验问题的。接下来本来应该接着第二弹的 XML 文件解析流程继续往
原创
882阅读
0评论
3点赞
发布博客于 7 月前

写了这么多年代码,这样的登录方式还是头一回见!

Spring Security 系列还没搞完,最近还在研究。有的时候我不禁想,如果从 Spring Security 诞生的第一天开始,我们就一直在追踪它,那么今天再去看它的源码一定很简单,因为我们了解到每一行代码的缘由。然而事实上我们大部分人都是中途接触到它的,包括松哥自己。所以在阅读源码的时候,有时候会遇到一些不是那么容易理解的东西,并不是说这个有多难,只是我们不了解 N 年前的开发环境,因此也就不容易理解某一行代码出现的意义。所以为了搞透彻这个框架,有时候我们还得去了解之前发生了什么。这就跟学
原创
1681阅读
1评论
3点赞
发布博客于 7 月前

GET 新技能!自己的网站突然就不香了

松哥自己的网站有两大类:一个就是大家看到的 www.javaboy.org,这个网站是基于 GitHub Pages 做的,使用的技术栈是 hexo+icarus,公众号上的所有文章我都会同步到这个网站上去。还有一类就是电子书网站,这个就比较多了:http://maven.javaboy.orghttp://spring.javaboy.orghttp://springmvc.javaboy.orghttp://mybatis.javaboy.orghttp://springboot.ja
原创
4306阅读
4评论
9点赞
发布博客于 7 月前

一文搞定 Spring Security 异常处理机制!

今天来和小伙伴们聊一聊 Spring Security 中的异常处理机制。在 Spring Security 的过滤器链中,ExceptionTranslationFilter 过滤器专门用来处理异常,在 ExceptionTranslationFilter 中,我们可以看到,异常被分为了两大类:认证异常和授权异常,两种异常分别由不同的回调函数来处理,今天松哥就来和大家分享一下这里的条条框框。1.异常分类Spring Security 中的异常可以分为两大类,一种是认证异常,一种是授权异常。认证异常
原创
3823阅读
2评论
3点赞
发布博客于 8 月前

Spring 源码第三弹!EntityResolver 是个什么鬼?

上篇文章和小伙伴们说了 Spring 源码中 XML 文件的解析流程,本来可以继续往下走看加载核心类了,但是松哥还是希望能够慢一点,既然要学就学懂,在 XML 文件解析的过程中还涉及到一些其他的类和概念,因此我就先用几篇文章介绍一下这些涉及到的概念或者类,然后我们再继续往下看。本文要和大家介绍的是上篇文章中涉及到的 EntityResolver 类,看看这个类到底是干嘛用的。本文是 Spring 源码系列第四篇,阅读前面文章有助于更好理解本文:Spring 源码解读计划Spring 源码第一篇开整
原创
901阅读
2评论
1点赞
发布博客于 8 月前

Spring Security 配置中的 and 到底该怎么理解?

我们先来看一个简单的配置:@Overrideprotected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .anyRequest().authenticated() .and() .formLogin() .loginProcessingUrl("/doLogin")
原创
2159阅读
3评论
3点赞
发布博客于 8 月前

神奇!自己 new 出来的对象一样也可以被 Spring 容器管理!

按理说自己 new 出来的对象和容器是没有关系的,但是在 Spring Security 框架中也 new 了很多对象出来,一样也可以被容器管理,那么它是怎么做到的?今天来和大家聊一个略微冷门的话题,Spring Security 中的 ObjectPostProcessor 到底是干嘛用的?本文是 Spring Security 系列第 32 篇,阅读前面文章有助于更好的理解本文:挖一个大坑,Spring Security 开搞!松哥手把手带你入门 Spring Security,别再问密码怎么
原创
1527阅读
0评论
1点赞
发布博客于 8 月前

Spring 源码第二弹!XML 文件解析流程

Spring 源码继续开整!上篇文章中,松哥和大家分享了 Spring 中配置文件的加载方式,如果小伙伴们还没看过,一定先看一下,这有助于更好的理解本文,传送门:Spring 源码第一篇开整!配置文件是怎么加载的?。上篇文章和大家分享了 Spring 中是如何加载本地配置文件的,如何将加载到的本地配置文件通过一个 InputStream 返回。了解到这一点之后,接下来就是对 InputStream 的解析了。本文我们就来看一下整个解析流程是什么样子的。1.XmlBeanDefinitionReade
原创
840阅读
0评论
1点赞
发布博客于 8 月前

花式玩 Spring Boot!过滤器竟有 N 种注册方式!松哥手把手教你

要说在 Spring Boot 中注册过滤器有三种方式,你都能想到哪些呢?今天松哥就来和大家聊一聊 Spring Boot 中注册过滤器的三种方式!其实本来是想和大家聊 Spring Security 过滤器链的问题的,结果看源码看着看着就跑题了,索性就先和大家聊一聊 Spring Boot 中注册过滤器的三种方式,算是给 后面的 Spring Security 打一点基础。1.@WebFilter通过 @WebFilter 注解来标记一个过滤器,这种方式相信大家很容易想到。这是将 Servlet 中
原创
1708阅读
0评论
4点赞
发布博客于 8 月前

Spring Security 多种加密方案共存,老破旧系统整合利器!

关于密码加密的问题,松哥之前已经和大家聊过了,参考:Spring Boot 中密码加密的两种姿势!这篇文章中,松哥给大家介绍了两种密码加密方案,但是两种都是独立使用的!能不能在同一个项目中同时存在多种密码加密方案呢?答案是肯定的!今天松哥就来和大家聊一聊,如何在 Spring Security 中,让多种不同的密码加密方案并存。本文是 Spring Security 系列第 31 篇,阅读前面文章有助于更好的理解本文:挖一个大坑,Spring Security 开搞!松哥手把手带你入门 S
原创
2236阅读
0评论
0点赞
发布博客于 8 月前

Spring Security 中的四种权限控制方式

Spring Security 中对于权限控制默认已经提供了很多了,但是,一个优秀的框架必须具备良好的扩展性,恰好,Spring Security 的扩展性就非常棒,我们既可以使用 Spring Security 提供的方式做授权,也可以自定义授权逻辑。一句话,你想怎么玩都可以!今天松哥来和大家介绍一下 Spring Security 中四种常见的权限控制方式。表达式控制 URL 路径权限表达式控制方法权限使用过滤注解动态权限四种方式,我们分别来看。本文是 Spring Security
原创
12739阅读
8评论
24点赞
发布博客于 8 月前

Spring Boot 中如何实现 HTTP 认证?

HttpBasic 认证有一定的局限性与安全隐患,因此在实际项目中使用并不多,但是,有的时候为了测试方便,开启 HttpBasic 认证能方便很多。因此松哥今天还是来和大家简单聊一聊 Spring Security 中的 HttpBasic 认证。本文是 Spring Security 系列第 29 篇,阅读前面文章有助于更好理解本文:挖一个大坑,Spring Security 开搞!松哥手把手带你入门 Spring Security,别再问密码怎么解密了手把手教你定制 Spring Secur
原创
1882阅读
0评论
1点赞
发布博客于 8 月前

Spring 源码第一篇开整!配置文件是怎么加载的?

上周把话撂出来,看起来小伙伴们都挺期待的,其实松哥也迫不及待想要开启一个全新的系列。但是目前的 Spring Security 系列还在连载中,还没写完。连载这事,一鼓作气,再而衰三而竭,一定要一次搞定,Spring Security 如果这次放下来,以后就很难再拾起来了。所以目前的更新还是 Spring Security 为主,同时 Spring 源码解读每周至少更新一篇,等 Spring Security 系列更新完毕后,就开足马力更新 Spring 源码。其实 Spring Security 中也
原创
1228阅读
0评论
6点赞
发布博客于 8 月前

Spring Boot 中三种跨域场景总结

文章目录1.什么是跨域2.解决方案2.1 存在的问题3.SpringSecurity3.1 方式一3.2 方式二4.OAuth25.小结跨域这个问题松哥之前写过文章,但是最近收到小伙伴们的一些问题,让我发现之前的总结不够全面,因此打算再写一篇文章,来和大家分享一下 Spring Boot 中的跨域问题。这次我把 Spring Boot 中的跨域问题分为了三个场景:普通跨域Spring Security 跨域OAuth2 跨域分为三种并非多此一举,主要是因为这三种场景的配置都不太一样,而这三种
原创
2152阅读
0评论
5点赞
发布博客于 8 月前

用 Swagger 测试接口,怎么在请求头中携带 Token?

来自一个小伙伴在微信上的提问:看到这个问题,松哥忽然想到我自己之前写过 Spring Boot+Swagger 的用法:SpringBoot 整合 Swagger2也写过 OAuth2 + Jwt 的用法:想让 OAuth2 和 JWT 在一起愉快玩耍?请看松哥的表演但是还没有将这两个结合在一起写过,所以小伙伴们对此有了疑问,想一想这还是一个非常常见的问题,因为现在使用令牌登录的场景越来越多,在这种情况下,如果使用 Swagger 来测试接口,要怎么在请求头中携带 Token 呢?今天松
原创
8056阅读
4评论
8点赞
发布博客于 8 月前

Spring Boot+CAS 默认登录页面太丑了,怎么办?

最近的又一头扎进 Spring Security+CAS 上面了,CAS 单点登录已经连续写了四篇了,小伙伴们一定按顺序阅读哦,这样后面的文章才好理解。上篇文章和大家分享了 CAS Server 接入数据库的问题,今天我们来看下如何在 CAS Server 上自定义登录页面,因为正常来说,我们是不会直接用官方给出的登录页面的。本文是 Spring Security 系列第 26 篇,阅读前面文章有助于更好的理解本文:挖一个大坑,Spring Security 开搞!松哥手把手带你入门 Spring
原创
2153阅读
0评论
1点赞
发布博客于 8 月前

Spring Boot+CAS 单点登录,如何对接数据库?

在前面的两篇文章中,松哥和大家分享了 CAS Server 的搭建以及如何使用 Spring Security 搭建 CAS Client。但是前面的案例有一个问题,就是登录用户是在 CAS Server 配置文件中写死的,没有对接数据库,实际项目中,这里肯定要对接数据库,所以今天,松哥就来和大家聊一聊 CAS Server 如何对接数据库。松哥最近和 Spring Security 杠上了,这是 Spring Security 系列的第 25 篇:挖一个大坑,Spring Security 开搞!
原创
1544阅读
2评论
3点赞
发布博客于 8 月前

Spring Boot 实现单点登录的第三种方案!

前面松哥发过两篇文章,也是两种方案,讲到单点登录问题:OAuth2+JWT 方案@EnableOAuth2Sso 注解方案今天再来和大家介绍第三种方案,使用 Spring Security 开发 CAS 单点登录系统客户端。上篇文章讲了 CAS 单点登录以及 CAS Server 的搭建问题,CAS Server 搭建好了,接下来我们要搭建具体的应用,本文我们就来看看 Spring Security+CAS 如何实现单点登录。本文在上篇文章的基础上继续完成,如果小伙伴们的 CAS Server
原创
4082阅读
0评论
6点赞
发布博客于 8 月前

微服务项目中如何管理依赖版本号?

本文是微服务项目代码组织形式三部曲中的第三篇,也是最后一篇,通过这三篇文章,相信大家对于如果组织微服务中的代码已经有了一个基本认知,前面两篇分别是:微服务项目搭建,到底要不要聚合工程?在微服务项目中,Maven 真的适合管理公共代码库吗?第三篇相对来说要简单一些,本来没打算写,但是上周有个小伙伴问了我一个 Maven 问题,然后我就发现有的小伙伴对聚合工程的认知还是不到位,因此才有了这篇文章,想和大家再聊聊聚合工程的问题。1.微服务架构理论上的微服务架构和实际应用的微服务,往往会有一些差异。
原创
2079阅读
0评论
0点赞
发布博客于 8 月前

松哥手把手教你入门 Spring Boot + CAS 单点登录

松哥周末抽空给 Spring Security 系列也录制了一套视频,目录如下:感兴趣的小伙伴戳这里–>Spring Boot+Vue+微人事视频教程我们来看今天的 CAS 单点登录。在微服务以及分布式系统中,单点登录变得越来越普遍,松哥之前也有两篇文章和大家介绍过单点登录的方案:OAuth2+JWT 方案@EnableOAuth2Sso 注解方案这两种方案中,JWT 存在一个注销登录的问题,要费点功夫解决。@EnableOAuth2Sso 注解这种方案不存在注销登录的问题,但是又不
原创
2927阅读
1评论
8点赞
发布博客于 8 月前

Spring Security 两种资源放行策略,千万别用错了!

事情的起因是这样,有小伙伴在微信上问了松哥一个问题:就是他使用 Spring Security 做用户登录,等成功后,结果无法获取到登录用户信息,松哥之前写过相关的文章(奇怪,Spring Security 登录成功后总是获取不到登录用户信息?),但是他似乎没有看懂。考虑到这是一个非常常见的问题,因此我想今天换个角度再来和大伙聊一聊这个话题。Spring Security 中,到底该怎么样给资源额外放行?1.两种思路在 Spring Security 中,有一个资源,如果你希望用户不用登录就能访问
原创
7232阅读
0评论
10点赞
发布博客于 9 月前

在微服务项目中,Maven 真的适合管理公共代码库吗?

今天我还是想和大家继续聊一聊微服务中代码的组织形式。昨天聊了微服务项目中要不要使用聚合工程的问题(微服务项目搭建,到底要不要聚合工程?),感觉小伙伴们对这个话题还挺感兴趣,因此今天我们就再来说说微服务中公共代码库的组织形式。1.公共代码库任何项目,我们都不可避免的会有一个公共代码库,这个公共代码库中可能存放了一些工具类或者实体类,供其他项目使用。常规的做法就是把公共代码库上传到公司私服,然后每个人各自在项目中添加依赖即可,这种方式,相信很多小伙伴们都玩过。但是不知道大家有没有想过,这种方式其实有一
原创
1475阅读
0评论
3点赞
发布博客于 9 月前

微服务项目搭建,到底要不要聚合工程?

这是一个入门问题,做微服务项目,首先就是要搭建 Project,代码采用什么样的形式来组织,这是我们面临的第一个问题。要扯清楚这个问题,首先对 Maven 的使用不能含糊,小伙伴们可以在公众号后台回复 ssm,获取松哥手敲的 Maven 教程。在传统的项目中,我们经常需要搭建聚合工程,这样可以方便的对项目进行分模块管理,降低维护难度。微服务项目中,我们是否还需要继续这种开发方式呢?今天松哥结合自己在项目中的经验和大家简单聊一下,微服务项目中代码的组织形式。1.开发模式要搞清楚代码如何组织,首先
原创
2253阅读
0评论
3点赞
发布博客于 9 月前

Spring Boot 中密码加密的两种姿势!

先说一句:密码是无法解密的。大家也不要再问松哥微人事项目中的密码怎么解密了!密码无法解密,还是为了确保系统安全。今天松哥就来和大家聊一聊,密码要如何处理,才能在最大程度上确保我们的系统安全。本文是 Spring Security 系列的第 20 篇,阅读本系列前面的文章有助于更好的理解本文:挖一个大坑,Spring Security 开搞!松哥手把手带你入门 Spring Security,别再问密码怎么解密了手把手教你定制 Spring Security 中的表单登录Spring Secur
原创
4451阅读
0评论
4点赞
发布博客于 9 月前

整理了八个开源的 Spring Boot 学习资源

Spring Boot 算是目前 Java 领域最火的技术栈了,松哥年初出版的 《Spring Boot + Vue 全栈开发实战》迄今为止已经加印了多次,Spring Boot 的受欢迎程度可见一斑。今天松哥整理了几个优质 Spring Boot 开源项目给大家参考,希望能够帮助到正在学习 Spring Boot 的小伙伴!1.javaboy-video-samplesstar: 230GitHub: https://github.com/lenve/javaboy-video-samplesG
原创
2549阅读
0评论
2点赞
发布博客于 9 月前

要学就学透彻!Spring Security 中 CSRF 防御源码解析

上篇文章松哥和大家聊了什么是 CSRF 攻击,以及 CSRF 攻击要如何防御。主要和大家聊了 Spring Security 中处理该问题的几种办法。今天松哥来和大家简单的看一下 Spring Security 中,CSRF 防御源码。本文是本系列第 19 篇,阅读本系列前面文章有助于更好的理解本文:挖一个大坑,Spring Security 开搞!松哥手把手带你入门 Spring Security,别再问密码怎么解密了手把手教你定制 Spring Security 中的表单登录Spring
原创
2233阅读
0评论
3点赞
发布博客于 9 月前

松哥手把手教你在 SpringBoot 中防御 CSRF 攻击!so easy!

CSRF 就是跨域请求伪造,英文全称是 Cross Site Request Forgery。这是一种非常常见的 Web 攻击方式,其实是很好防御的,但是由于经常被很多开发者忽略,进而导致很多网站实际上都存在 CSRF 攻击的安全隐患。今天松哥就来和大家聊一聊什么是 CSRF 攻击以及 CSRF 攻击该如何防御。本文是本系列第 18 篇,阅读本系列前面文章有助于更好的理解本文:挖一个大坑,Spring Security 开搞!松哥手把手带你入门 Spring Security,别再问密码怎么解密
原创
3397阅读
5评论
3点赞
发布博客于 9 月前

集群化部署,Spring Security 要如何处理 session 共享?

前面和大家聊了 Spring Security 如何像 QQ 一样,自动踢掉已登录用户(Spring Boot + Vue 前后端分离项目,如何踢掉已登录用户?),但是前面我们是基于单体应用的,如果我们的项目是集群化部署,这个问题该如何解决呢?今天我们就来看看集群化部署,Spring Security 要如何处理 session 并发。本文是 Spring Security 系列第 17 篇,阅读前面的文章有助于更好的理解本文:挖一个大坑,Spring Security 开搞!松哥手把手带你入门
原创
2250阅读
1评论
1点赞
发布博客于 9 月前

什么是会话固定攻击?Spring Boot 中要如何防御会话固定攻击?

前两天和大家聊了 Spring Security 中的 session 并发问题,和小伙伴们聊了如何像 QQ 一样,用户在一台设备上登录成功之后,就会自动踢掉另一台设备上的登录。当然,Spring Security 中,关于 session 的功能不仅仅是这些,之前和大家说我们学习 Spring Security,也是学习各种各样的网络攻击与防御策略,今天松哥就来和大家聊一个简单的:什么是会话固定攻击以及 Spring Security 中如何防止会话固定攻击。本文是 Spring Security 系
原创
1465阅读
0评论
0点赞
发布博客于 9 月前

Spring Security 自带防火墙!你都不知道自己的系统有多安全!

之前有小伙伴表示,看 Spring Security 这么麻烦,不如自己写一个 Filter 拦截请求,简单实用。自己写当然也可以实现,但是大部分情况下,大家都不是专业的 Web 安全工程师,所以考虑问题也不过就是认证和授权,这两个问题处理好了,似乎系统就很安全了。其实不是这样的!各种各样的 Web 攻击每天都在发生,什么固定会话攻击、csrf 攻击等等,如果不了解这些攻击,那么做出来的系统肯定也不能防御这些攻击。使用 Spring Security 的好处就是,即使不了解这些攻击,也不用担心这些攻
原创
2002阅读
0评论
3点赞
发布博客于 9 月前

Spring Boot+Vue 文件上传,如何携带令牌信息?

文章目录1.传统方案1.1 准备工作1.2 Ajax 上传1.3 使用 el-upload 组件1.4 两种方式比较2.手动传递令牌2.1 Ajax 传递令牌2.2 el-upload 处理令牌2.2.1 方案一2.2.2 方案二3.小结关于文件上传这块,松哥之前也写了好几篇文章了,甚至还有视频:Spring Boot+Vue+FastDFS 实现前后端分离文件上传但是,之前和小伙伴们提到的方案,是基于 session 来做认证的,所以并不需要考虑携带令牌的问题,但是在前后端分离开发中,我们可能采
原创
1774阅读
2评论
0点赞
发布博客于 9 月前

推荐三个 Vue 后台管理模版,配合 Spring Boot 使用真香!

最近因为因为项目的原因,一直在寻找一款合适的前端模版,之前的 Vue 前端页面都是自己写的,写多了就烦了,因为功能都差不多,写来写去就没意思了。所以在新项目中想看看市面上的 Vue 后台管理模版,找个现成的,改一改基本就 OK 了,团队也省事一些。老实说,Vue 的生态还是相当丰富的,经典的、新生的后台管理框架都有,我这里和大家分享我们这次重点比较的三个。vue-element-adminGitHub 地址:https://github.com/PanJiaChen/vue-element-adm
原创
18840阅读
21评论
31点赞
发布博客于 9 月前

Spring Boot + Vue 前后端分离项目,如何踢掉已登录用户?

上篇文章中,我们讲了在 Spring Security 中如何踢掉前一个登录用户,或者禁止用户二次登录,通过一个简单的案例,实现了我们想要的效果。但是有一个不太完美的地方,就是我们的用户是配置在内存中的用户,我们没有将用户放到数据库中去。正常情况下,松哥在 Spring Security 系列中讲的其他配置,大家只需要参考Spring Security+Spring Data Jpa 强强联手,...
原创
2356阅读
2评论
0点赞
发布博客于 9 月前

Spring Security 自动踢掉前一个登录用户,一个配置搞定!

登录成功后,自动踢掉前一个登录用户,松哥第一次见到这个功能,就是在扣扣里边见到的,当时觉得挺好玩的。自己做开发后,也遇到过一模一样的需求,正好最近的 Spring Security 系列正在连载,就结合 Spring Security 来和大家聊一聊这个功能如何实现。本文是本系列的第十三篇,阅读前面文章有助于更好的理解本文:挖一个大坑,Spring Security 开搞!松哥手把手带你...
原创
4334阅读
2评论
2点赞
发布博客于 9 月前

Spring Security 中如何快速查看登录用户 IP 地址等信息?

上篇文章跟大家聊了如何使用更加优雅的方式自定义 Spring Security 登录逻辑,更加优雅的方式可以有效避免掉自定义过滤器带来的低效,建议大家一定阅读一下,也可以顺便理解 Spring Security 中的认证逻辑。本文将在上文的基础上,继续和大家探讨如何存储登录用户详细信息的问题。本文是本系列第 12 篇,阅读本系列前面文章可以更好的理解本文:挖一个大坑,Spring Secu...
原创
2478阅读
0评论
2点赞
发布博客于 9 月前

Java 打怪升级路线图,大佬是这样炼成的!一定要收藏

技术日新月异,对于初入职场的同学来说,经常会困惑该往那个方向发展,这一点松哥是深有体会的。网上的资料多如牛毛,但是很多时候我们缺的不是一个资料,而是一个学习规划!就是说,做 Java 开发,我们应该从哪里开始学?应该学习哪些东西?应该按照什么样的顺序来学?松哥大二刚开始自学 Java 那会,最大的问题就是不知道该学什么,以及学习的顺序,自己一个人摸索了很长时间,后来才逐步建立起自己的知识体系...
原创
3172阅读
2评论
19点赞
发布博客于 10 月前

Spring Boot + Spring Security 实现自动登录功能

自动登录是我们在软件开发时一个非常常见的功能,例如我们登录 QQ 邮箱:很多网站我们在登录的时候都会看到类似的选项,毕竟总让用户输入用户名密码是一件很麻烦的事。自动登录功能就是,用户在登录成功后,在某一段时间内,如果用户关闭了浏览器并重新打开,或者服务器重启了,都不需要用户重新登录了,用户依然可以直接访问接口数据。作为一个常见的功能,我们的 Spring Security 肯定也提供了相应...
原创
2804阅读
2评论
2点赞
发布博客于 10 月前

Spring Boot+OAuth2,如何自定义返回的 Token 信息?

在本系列前面的文章中,正常情况下,OAuth2 返回的 access_token 信息一共包含五项:分别是:access_tokentoken_typerefresh_tokenexpires_inscope具体如下:{ "access_token": "b9c9e345-90c9-49f5-80ab-6ce5ed5a07c9", "token_type": "...
原创
5598阅读
1评论
3点赞
发布博客于 10 月前

Spring Boot+OAuth2,一个注解搞定单点登录!

需要先说一下,松哥最近写的教程,都是成系列的,有一些重复的东西写来写去就没意思了,所以每一篇文章都默认大家已经懂了前面的内容了,因此下文有任何看不懂的地方,建议一定先看下相关系列:Spring Security 系列:挖一个大坑,Spring Security 开搞!松哥手把手带你入门 Spring Security,别再问密码怎么解密了手把手教你定制 Spring Security 中...
原创
11792阅读
16评论
22点赞
发布博客于 10 月前

Spring Security+Spring Data Jpa 强强联手,安全管理只有更简单!

Spring Security+Spring Data Jpa 强强联手,安全管理没有简单,只有更简单!这周忙着更新 OAuth2,Spring Security 也抽空来一篇。Spring Security 系列我们前面已经更新了 6 篇了,本文是第 7 篇,建议先看本系列前面的文章,有助于更好的理解本文:挖一个大坑,Spring Security 开搞!松哥手把手带你入门 Sprin...
原创
2072阅读
0评论
2点赞
发布博客于 10 月前

死磕 OAuth2,教练我要学全套的!

昨天松哥和小伙伴们说了 OAuth2 中的授权码模式,我从头到尾写了一个非常详细的案例,来和小伙伴们分享授权码模式的使用。有小伙伴表示为什么没有另外三种授权模式的演示代码?要学就学全套的!这不,松哥赶紧把另外三个授权模式的代码整出来,供小伙伴们参考。今天的案例,我就不从头开始写了,我们就在上篇文章代码的基础上修改就行了,如果小伙伴们还没看过本系列前面几篇文章,建议一定先看下,否则本文可能看不懂...
原创
2715阅读
0评论
3点赞
发布博客于 10 月前

推荐七个略火的 SpringBoot+Vue 项目

前后端分离已经在慢慢走进各公司的技术栈,根据松哥了解到的消息,不少公司都已经切换到这个技术栈上面了。即使贵司目前没有切换到这个技术栈上面,松哥也非常建议大家学习一下前后端分离开发,以免在公司干了两三年,SSH 框架用的滚瓜烂熟,出来却发现自己依然没有任何优势!其实前后端分离本身并不难,后段提供接口,前端做数据展示,关键是这种思想。很多人做惯了前后端不分的开发,在做前后端分离的时候,很容易带进来一...
原创
3484阅读
1评论
5点赞
发布博客于 10 月前

这个案例写出来,还怕跟面试官扯不明白 OAuth2 登录流程?

昨天和小伙伴们介绍了 OAuth2 的基本概念,在讲解 Spring Cloud Security OAuth2 之前,我还是先来通过实际代码来和小伙伴们把 OAuth2 中的各个授权模式走一遍,今天我们来看最常用也最复杂的授权码模式。本文我将通过一个完整的 Demo ,注意,是一个完整的 Demo,带领小伙伴们把授权码模式走一遍。如果小伙伴们还没有看上篇文章可以先看下,这有助于你理解本文中的...
原创
2681阅读
1评论
2点赞
发布博客于 10 月前

都前后端分离了,咱就别做页面跳转了!统统 JSON 交互

文章目录1. 无状态登录1.1 什么是有状态1.2 什么是无状态1.3 如何实现无状态1.4 各自优缺点2. 登录交互2.1 前后端分离的数据交互2.2 登录成功2.3 登录失败3. 未认证处理方案4. 注销登录这是本系列的第四篇,有小伙伴找不到之前文章,松哥给大家列一个索引出来:挖一个大坑,Spring Security 开搞!松哥手把手带你入门 Spring Security,别再问密...
原创
36253阅读
31评论
116点赞
发布博客于 10 月前

奇怪,Spring Security 登录成功后总是获取不到登录用户信息?

有好几位小伙伴小伙伴曾向松哥求助过这个问题。一开始我觉得这可能是一个小概率 BUG,但是当问的人多了,我觉得这个问题对于新手来说还有一定的普遍性,有必要来写篇文章跟大家仔细聊一聊这个问题,防止小伙伴们掉坑。1.问题复现如果使用了 Spring Security,当我们登录成功后,可以通过如下方式获取到当前登录用户信息:SecurityContextHolder.getContext()....
原创
5936阅读
8评论
8点赞
发布博客于 11 月前

前后端分离中,使用 JSON 格式登录原来这么简单!

做微人事的小伙伴(https://github.com/lenve/vhr),应该都发现了在微人事中有一个极为特殊的请求,那就是登录。登录请求是一个 POST 请求,但是数据传输格式是 key/value 的形式。整个项目里就只有这一个 POST 请求是这样,其他 POST 请求都是 JSON 格式的数据。为什么做成这个样子呢?还是懒呗。因为 Spring Security 中默认的登录数据...
原创
4387阅读
3评论
8点赞
发布博客于 11 月前

松哥手把手教你定制 Spring Security 中的表单登录

Spring Security 系列继续。前面的视频+文章,松哥和大家简单聊了 Spring Security 的基本用法,并且我们一起自定义了一个登录页面,让登录看起来更炫一些!今天我们来继续深入这个表单配置,挖掘一下这里边常见的其他配置。学习本文,强烈建议大家看一下前置知识(松哥手把手带你入门 Spring Security,别再问密码怎么解密了),学习效果更佳。1.登录接口很多初学者...
原创
2022阅读
3评论
6点赞
发布博客于 11 月前

松哥手把手带你入门 Spring Security,别再问密码怎么解密了

文章目录1.新建项目2.用户配置2.1 配置文件2.2 配置类2.2.1 为什么要加密2.2.2 加密方案2.2.3 PasswordEncoder2.2.4 配置3.自定义表单登录页3.1 服务端定义3.2 前端定义4.小节因为之前有小伙伴在松哥群里讨论如何给微人事的密码解密,我看到聊天记录后就惊呆了。无论如何我也得写一篇文章,带大家入门 Spring Security!当我们在一个项目中引...
原创
6820阅读
0评论
2点赞
发布博客于 1 年前

程序员写书到底赚钱吗

时隔半年,昨天又收到了出版社一笔稿费,时间很突然,金额也很突然。年前的时候松哥发了一篇文章,说新书交稿后入手了一台 MacBook Pro(MacBook Pro 入手一年了,到底香不香?),于是有小伙伴问松哥,出书是不是赚翻了?老实说,这本书到现在赚的钱,买一台 MacBook Pro 肯定是够了,但是你要说赚翻了,我想这里肯定存在一些误解。今天我就来和大家聊一聊程序员的出书流程,收入结算,...
原创
3000阅读
0评论
6点赞
发布博客于 1 年前

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去?俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。首先一个基本观点,就是离职了也没必要和老东家弄的苦...
原创
122729阅读
140评论
74点赞
发布博客于 1 年前

Spring Boot+Vue前后端分离,如何避免前端页面 404

问题倒不难,但是这个问题之前被松哥忽略了。前两天有小伙伴提出这个疑问,我觉得有必要写篇文章和大家捋一捋这个问题。先来看一个简短的视频:视频地址一个简单的配置就解决掉 404 问题了,接下来,我再来把这件事的来龙去脉和大家仔细捋一捋。1.职责划分在传统的前后端不分的开发中,权限管理主要通过过滤器或者拦截器来进行(权限管理框架本身也是通过过滤器链来实现功能),如果用户不具备某一个角色或者某一...
原创
3930阅读
2评论
5点赞
发布博客于 1 年前

Spring Boot2 系列教程(三十四)Spring Security 添加验证码

登录添加验证码是一个非常常见的需求,网上也有非常成熟的解决方案,其实,要是自己自定义登录实现这个并不难,但是如果需要在 Spring Security 框架中实现这个功能,还得稍费一点功夫,本文就和小伙伴来分享下在 Spring Security 框架中如何添加验证码。关于 Spring Security 基本配置,这里就不再多说,小伙伴有不懂的可以参考 http://springboot.ja...
原创
2433阅读
0评论
6点赞
发布博客于 1 年前

Spring Boot 国际化踩坑指南

国际化,也叫 i18n,为啥叫这个名字呢?因为国际化英文是 internationalization ,在 i 和 n 之间有 18 个字母,所以叫 i18n。我们的应用如果做了国际化就可以在不同的语言环境下,方便的进行切换,最常见的就是中文和英文之间的切换,国际化这个功能也是相当的常见。在 Spring 中,就通过 AcceptHeaderLocaleResolver 对国际化提供了支持,开发...
原创
8188阅读
0评论
24点赞
发布博客于 1 年前

写博客必备!手把手教大家搭建免费图床,真香!

前段时间松哥发了一篇文章,鼓励大家写博客多做积累(如果你没写过博客,现在就是你写博客的最佳时机),有小伙伴告诉松哥他已经开始实践了,感觉到自己的苦口婆心总算有了一点点作用还是蛮欣慰的。今天想和大家分享一个写博客过程中经常遇到的技术性问题,就是博客图片存到哪里。因为松哥自己最近搞了一个免费的图床,感觉还是蛮香的,于是和大家伙分享下。蛮荒时代先说说我刚开始写博客的时候,就直接打开博客平台的后台编...
原创
2979阅读
1评论
0点赞
发布博客于 1 年前

Spring Security 如何添加登录验证码?松哥手把手教你给微人事添加登录验证码

登录添加验证码是一个非常常见的需求,网上也有非常成熟的解决方案。在传统的登录流程中加入一个登录验证码也不是难事,但是如何在 Spring Security 中添加登录验证码,对于初学者来说还是一件蛮有挑战的事情,因为默认情况下,在 Spring Security 中我们并不需要自己写登录认证逻辑,只需要自己稍微配置一下就可以了,所以如果要添加登录验证码,就涉及到如何在 Spring Securit...
原创
218阅读
1评论
0点赞
发布博客于 1 年前

手把手教你用 FastDFS 构建分布式文件管理系统

说起分布式文件管理系统,大家可能很容易想到 HDFS、GFS 等系统,前者是 Hadoop 的一部分,后者则是 Google 提供的分布式文件管理系统。除了这些之外,国内淘宝和腾讯也有自己的分布式文件管理系统,都叫 TFS(Taobao File System 和 Tencent File System)。相对于上面提到的这些分布式文件管理系统而言,FastDFS 可能离我们 Java 工程师更...
原创
3318阅读
1评论
3点赞
发布博客于 1 年前

Spring Boot2 系列教程(三十三)整合 Spring Security

Spring Security 是 Spring 家族中的一个安全管理框架,实际上,在 Spring Boot 出现之前,Spring Security 就已经发展了多年了,但是使用的并不多,安全管理这个领域,一直是 Shiro 的天下。【点击免费获取274页原创SpringBoot2教程】相对于 Shiro,在 SSM/SSH 中整合 Spring Security 都是比较麻烦的操作,所以,...
原创
3346阅读
3评论
0点赞
发布博客于 1 年前

Spring Boot 要怎么学?要学哪些东西?要不要先学 SSM?松哥说说看法

可能很多刚接触 Spring Boot 的小伙伴都会有这样的疑问,Spring Boot 要怎么学,要不要先学 SSM?今天结合自己的经验,和大家说一说我的看法,也顺便推荐几个 Spring Boot 学习资料。1.Spring Boot 是什么我们刚开始学习 JavaWeb 的时候,使用 Servlet/JSP 做开发,一个接口搞一个 Servlet ,很头大,后来我们通过隐藏域或者反射等方...
原创
9420阅读
9评论
76点赞
发布博客于 1 年前

新年新气象,接个私活赚点生活费?说说这里的弯弯绕

现在到处讲副业,怎么样利用副业赚钱,这能理解,一方面年轻人生存压力大,多赚钱点总是没有坏处;另一方面,每年的裁员信息看的人心惊胆颤,大家都想为自己留一条后路。新年伊始,想必很多小伙伴可能都想大展拳脚,新的一年好好干一番,很多人就想到了接私活,但是接私活到底赚不赚钱,这里有哪些坑,松哥和大家扯扯。松哥刚毕业的时候做 Android 开发,在做 Android 期间基本上没有接过私活,因为 And...
原创
15357阅读
11评论
132点赞
发布博客于 1 年前

简化 Spring Boot 项目部署,Flyway 搞起来

虽然我之前录了一个微人事(https://github.com/lenve/vhr)部署视频(新版微人事部署教程来啦),但是由于这次升级涉及到了 Redis 和 RabbitMQ,所以在本地跑微人事还是一件比较麻烦的事情,有的小伙伴甚至部署失败,所以我也一直在尝试简化部署步骤,这两天给项目加了 Flyway,数据库准备这块算是得到了一定程度简化。今天就和大家来大致说说 Flyway 的用法,以及...
原创
3350阅读
0评论
3点赞
发布博客于 1 年前

Spring入门.pdf

江南一点雨原创 Spring 入门教程,更多 Spring教程请关注我的 CSDN 博客:https://blog.csdn.net/u012702547
zip
发布资源于 1 年前

SpringMVC 入门教程.pdf

江南一点雨原创 SpringMVC 入门教程,更多 SpringMVC教程请关注我的 CSDN 博客:https://blog.csdn.net/u012702547
zip
发布资源于 1 年前

MyBatis入门教程

江南一点雨原创 MyBatis 入门教程,更多 MyBatis教程请关注我的 CSDN 博客:https://blog.csdn.net/u012702547
zip
发布资源于 1 年前

Spring Boot2 教程.pdf.zip

江南一点雨原创 Spring Boot2 教程合集。更多Spring Boot2资料可以关注我的 CSDN博客https://blog.csdn.net/u012702547
zip
发布资源于 1 年前

Spring Boot2 系列教程(三十二)Spring Boot 整合 Shiro

在 Spring Boot 中做权限管理,一般来说,主流的方案是 Spring Security ,但是,仅仅从技术角度来说,也可以使用 Shiro。今天松哥就来和大家聊聊 Spring Boot 整合 Shiro 的话题!一般来说,Spring Security 和 Shiro 的比较如下:Spring Security 是一个重量级的安全管理框架;Shiro 则是一个轻量级的安全管理框...
原创
4527阅读
1评论
12点赞
发布博客于 1 年前

懒人必备,IntelliJ IDEA中代码一键生成

之前有不少小伙伴问松哥微人事项目(https://github.com/lenve/vhr)使用的 MyBatis 逆向工程在哪里?其实旧版微人事当时没有使用逆向工程,是我自己手动敲出来的,当然手动敲的工作量非常大。今年发出来的新版微人事,我使用了逆向工程自动生成实体类和 dao 层的代码。MyBatis 的逆向工程要么需要添加依赖,要么需要自己去网上下载 jar,用起来还是有点麻烦,所以,今天...
原创
15292阅读
24评论
223点赞
发布博客于 1 年前

肺疫面前,段子手出动,但是玩笑也要分场合

开玩笑要分场合。这个话题其实不太好说,因为你一说,必然有人上来喷你开不起玩笑,但是我觉得还是有必要说说这个问题。因为最近有人因为开武汉肺疫的玩笑,结果两拨人在微信群里吵起来了,大过年的,真是煞风景。大家知道松哥本科是学管理的,当时我们有一门选修课,叫做《沟通的艺术》,一个学期就是讲和人沟通的事,分析不同人的性格(感兴趣的小伙伴我建议大家看下这本书),所以当我看到有人因为交流方式不当和别人吵起来...
原创
5806阅读
1评论
6点赞
发布博客于 1 年前

Spring Boot2 系列教程(三十一)Spring Boot 构建 RESTful 风格应用

RESTful ,到现在相信已经没人不知道这个东西了吧!关于 RESTful 的概念,我这里就不做过多介绍了,传统的 Struts 对 RESTful 支持不够友好 ,但是 SpringMVC 对于 RESTful 提供了很好的支持,常见的相关注解有:@RestController@GetMapping@PutMapping@PostMapping@DeleteMapping@Resp...
原创
3964阅读
1评论
3点赞
发布博客于 1 年前

MacBook Pro 入手一年了,到底香不香?

最近又有小伙伴问到底值不值得入手一台 MacBook Pro,松哥自己在 2018 年 10 月份的时候入手了一台,到现在为止,也用了一年多了,今天就来和小伙伴们聊一聊使用感受,至于到底值不值,需要大家自行判断。我的第一台笔记本是大一第二学期(2012 年 4 月份)入手的,是一台 Sony 的 VAIO,这台电脑现在也一直在用,给大家录制的视频教程都是用这台电脑录制了,在接近 8 年的时间里,...
原创
10167阅读
12评论
7点赞
发布博客于 1 年前

不用花一分线,松哥手把手教你上线个人博客

上一篇:听说你的 IDEA 昨天掉链子了?松哥给你准备了大招有不少小伙伴私信松哥,打听松哥的博客是怎么做的,其实这个我之前和大家聊过,今天就再来说一说。我记得是 2015 年 4 月 15 在CSDN上发表了我的第一篇博客,是一个学习笔记,从那之后开启了我博客写作之路,到今天为止 4 年多了。这 4 年时间我在 CSDN 上发表的博客最多,共有 550 篇原创,CSDN 是我的大本营,不过在...
原创
4023阅读
5评论
7点赞
发布博客于 1 年前

2019 原创技术干货整理

公众号的文章改整理一下了,老有小伙伴表示文章找不到,确实是这样,公众号的文章看过了没消化,后来再想找到有点难,有的小伙伴机智的收藏了一下,但是因为收藏夹里的东西太多了,后来还是不好找。其实松哥公众号上的文章,大家都可以直接在松哥博客上搜索,博客右上角有一个搜索功能:好了,今天我就把 2019 年公众号上的原创干货整理出来,做成索引,方便小伙伴们查找。Spring Boot 系列纯 Ja...
原创
4223阅读
2评论
8点赞
发布博客于 1 年前