摘要:章节目录 "第一章 spring boot 2.x基础及概念入门" "1.1.spring boot 产生的背景及其优势" "1.2.spring boot 2.x 新特性说明" "1.3.helloworld及项目结构介绍" "1.4.IDEA结合spring boot开发技巧" "第二章 RES 阅读全文
posted @ 2019-10-18 22:23 字母哥博客 阅读 (164) 评论 (1) 编辑
摘要:一、Nacos简介 Nacos是用于微服务管理的平台,其核心功能是服务注册与发现、服务配置管理。 Nacos作为服务注册发现组件,可以替换Spring Cloud应用中传统的服务注册于发现组件,如:Eureka、consul等,支持服务的健康检查。 Nacos作为服务配置中心,可以替换Spring 阅读全文
posted @ 2019-12-13 13:08 字母哥博客 阅读 (186) 评论 (0) 编辑
摘要:一、公益图书馆例子 笔者不想直接用专业的术语来说明“微服务注册与发现”,365bet体育在线365bet体育在线们来看生活中的一个案例:“公益图书馆”。随着人们生活水平的不断提高,追求精神食粮的朋友也越来越多。笔者曾经在一些城市看见过公益图书馆,其运行逻辑是:一些公益组织和个人提供一块场所,然后由组织内的人向图书馆内捐书。捐出的书越 阅读全文
posted @ 2019-12-12 07:47 字母哥博客 阅读 (303) 评论 (0) 编辑
摘要:Spring Data JPA最为优秀的特性就是可以通过自定义方法名称生成查询来轻松创建查询SQL。Spring Data JPA提供了一个Repository编程模型,最简单的方式就是通过扩展JpaRepository,365bet体育在线们获得了一堆通用的CRUD方法,例如save,findAll,delete等 阅读全文
posted @ 2019-12-10 14:05 字母哥博客 阅读 (122) 评论 (1) 编辑
摘要:在上一篇文章中365bet体育在线们给大家介绍了OAuth2授权标准,并且着重介绍了OAuth2的授权码认证模式。目前绝大多数的社交媒体平台,都是通过OAuth2授权码认证模式对外开放接口(登录认证及用户信息接口等)。但是,365bet体育在线们也看到OAuth2有一定的复杂性,如果所有的代码都由365bet体育在线们自己开发,还是有一定的工作量的。因 阅读全文
posted @ 2019-12-10 08:45 字母哥博客 阅读 (115) 评论 (0) 编辑
摘要:一、OAuth2需求场景 在说明OAuth2需求及使用场景之前,需要先介绍一下OAuth2授权流程中的各种角色: 资源拥有者(User) 指应用的用户 认证服务器 (Authorization Server) 提供登录认证接口的服务器,比如:github等 资源服务器 (Resources Serv 阅读全文
posted @ 2019-12-09 13:32 字母哥博客 阅读 (306) 评论 (0) 编辑
摘要:一、什么是CSRF 很多朋友在学习Spring Security的时候,会将CORS(跨站资源共享)和CSRF(跨站请求伪造)弄混,以为二者是一回事。其实不是,先解释一下: CORS(跨站资源共享)是局部打破同源策略的限制,使在一定规则下HTTP请求可以突破浏览器限制,实现跨站访问。 CSRF是365体育投注 阅读全文
posted @ 2019-12-09 10:22 字母哥博客 阅读 (198) 评论 (0) 编辑
摘要:365bet体育在线主要说明一下开发者如何在QQ互联创建测试应用,从而分配给365bet体育在线们一套APP ID和APP KEY,在365bet体育在线们平时学习的时候使用。 一、QQ互联注册开发者 要想使用QQ登陆的功能,首先你必须是腾讯开发者。腾讯搞了一大堆的开放平台,有点乱。如果你还不是腾讯开发者,先去QQ互联网站 "https://conn 阅读全文
posted @ 2019-12-05 08:07 字母哥博客 阅读 (284) 评论 (1) 编辑
摘要:一、CORS简述 要说明CORS(Cross Origin Resourse Sharing) 跨站资源共享,就必须先说同源策略。长话短说,同源策略就是向服务端发起请求的时候,以下三项必须与当前浏览器应用一致:域名、端口、协议。用白话说:就是你的应用发送请求不能访问别人的资源,否则浏览器就会限制你。 阅读全文
posted @ 2019-12-04 08:00 字母哥博客 阅读 (47) 评论 (0) 编辑
摘要:通过笔者前两篇文章的说明,相信大家已经知道JWT是什么,怎么用,该如何结合Spring Security使用。那么本节就用代码来具体的实现一下JWT登录认证及鉴权的流程。 一、环境准备工作 建立Spring Boot项目并集成了Spring Security,项目可以正常启动 通过controlle 阅读全文
posted @ 2019-12-03 07:54 字母哥博客 阅读 (228) 评论 (1) 编辑
摘要:一、回顾JWT的授权及鉴权流程 在笔者的上一篇文章中,已经为大家介绍了JWT以及其结构及使用方法。其授权与鉴权流程浓缩为以下两句话 授权:使用可信用户信息(用户名密码、短信登录)换取带有签名的JWT令牌 鉴权:解签JWT令牌,校验用户权限。具有某个接口访问权限,开放该接口访问。 二、Spring S 阅读全文
posted @ 2019-12-02 13:30 字母哥博客 阅读 (252) 评论 (0) 编辑
摘要:一、基于Session的应用开发的缺陷 在365bet体育在线们传统的B\S应用开发方式中,都是使用session进行状态管理的,比如说:保存登录、用户、权限等状态信息。这种方式的原理大致如下: 用户登陆之后,将状态信息保存到session里面。服务端自动维护sessionid,即将sessionid写入cookie 阅读全文
posted @ 2019-12-02 07:38 字母哥博客 阅读 (391) 评论 (0) 编辑
摘要:一、验证码生成之配置使用kaptcha 使用google开源的验证码实现类库kaptcha,通过maven坐标引入 假设365bet体育在线们的配置文件是application.yml,新建一个单独的文件叫做kaptcha.properties。因为kaptcha的配置不符合yaml的规范格式,365bet体育在线只能采用prope 阅读全文
posted @ 2019-11-29 13:37 字母哥博客 阅读 (53) 评论 (0) 编辑
摘要:在本号的一系列Spring Security文章中,先后介绍了各种登录验证及授权中的知识点,如:spring security简介并与shiro对比、 formLogin模式登录认证、动态数据登录验证与权限分配、账户多次登录失败锁定、RememberMe记住365bet体育在线功能,等等文章。笔者觉得以上的这些实际上 阅读全文
posted @ 2019-11-29 07:51 字母哥博客 阅读 (411) 评论 (0) 编辑
摘要:365bet体育在线是Spring Security系列中的一篇。在上一篇文章中,365bet体育在线们通过实现UserDetailsService和UserDetails接口,实现了动态的从数据库加载用户、角色、权限相关信息,从而实现了登录及授权相关的功能。这一节就在此基础上新增,登录过程中经常使用的“记住365bet体育在线”功能,也就是365bet体育在线们经常 阅读全文
posted @ 2019-11-28 13:10 字母哥博客 阅读 (295) 评论 (0) 编辑
摘要:在上一次写的文章中,为大家说到了如何动态的从数据库加载用户、角色、权限信息,从而实现登录验证及授权。在实际的开发过程中,365bet体育在线们通常会有这样的一个需求:当用户多次登录失败的时候,365bet体育在线们应该将账户锁定,等待一定的时间之后才能再次进行登录操作。 一、基础知识回顾 要实现多次登录失败账户锁定的功能,365bet体育在线们需要先回 阅读全文
posted @ 2019-11-28 07:44 字母哥博客 阅读 (262) 评论 (0) 编辑
摘要:很多人觉得Spring Security实现登录验证很难,365bet体育在线最开始学习的时候也这样觉得。因为365bet体育在线好久都没看懂365bet体育在线该怎么样将自己写的用于接收用户名密码的Controller与Spring Security结合使用,这是一个先入为主的误区。后来365bet体育在线搞懂了:根本不用你自己去写Controller。你只需要告诉S 阅读全文
posted @ 2019-11-27 07:39 字母哥博客 阅读 (347) 评论 (2) 编辑
摘要:在本号之前的文章中,已经为大家介绍了很多关于Spring Security的使用方法,也介绍了RBAC的基于角色权限控制模型。但是很多朋友虽然已经理解了RBAC控制模型,但是仍有很多的问题阻碍他们进一步开发。比如: RBAC模型的表结构该如何创建? 具体到某个页面,某个按钮权限是如何控制的? 为了配 阅读全文
posted @ 2019-11-26 13:30 字母哥博客 阅读 (334) 评论 (0) 编辑
摘要:网上有很多《使用swagger2构建API文档》的文章,该文档是一个在线文档,需要使用HTTP访问。但是在365bet体育在线们日常使用swagger接口文档的时候,有的时候需要接口文档离线访问,如将文档导出为html、markdown格式。又或者365bet体育在线们不希望应用系统与swagger接口文档使用同一个服务,而是导出HT 阅读全文
posted @ 2019-11-26 07:58 字母哥博客 阅读 (475) 评论 (0) 编辑
摘要:365bet体育在线们开发一个系统,必然面临权限控制的问题,即不同的用户具有不同的访问、操作、数据权限。形成理论的权限控制模型有:自主访问控制(DAC: Discretionary Access Control)、强制访问控制(MAC: Mandatory Access Control)、基于属性的权限验证(ABAC 阅读全文
posted @ 2019-11-25 12:22 字母哥博客 阅读 (482) 评论 (1) 编辑
摘要:365bet体育在线将介绍在Spring Security框架下如何实现用户的"退出"logout的功能。其实这是一个非常简单的功能,365bet体育在线见过很多的程序员在使用了Spring Security之后,仍然去自己写controller方法实现logout功能,这种做法就好像耕地,你有机械设备你不用,你非要用牛。 一、lo 阅读全文
posted @ 2019-11-25 07:49 字母哥博客 阅读 (239) 评论 (0) 编辑
摘要:在365bet体育在线中,将为大家说明如何结合Spring Security 和Spring Session管理web应用的会话。 一、Spring Security创建使用session的方法 Spring Security提供4种方式精确的控制会话的创建: always :如果当前请求没有session存在,S 阅读全文
posted @ 2019-11-22 07:40 字母哥博客 阅读 (59) 评论 (0) 编辑
摘要:一、SPEL表达式权限控制 从 开始已经可以使用 表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。Spring Security可用表达式对象的基类是SecurityExpressionRoot。 | 表达式函数 | 描述 | | | | | ) | 用户拥有指定的角色时返回tr 阅读全文
posted @ 2019-11-21 08:03 字母哥博客 阅读 (295) 评论 (1) 编辑
摘要:一、需要自定义登录结果的场景 在365bet体育在线之前的文章中,做过登录验证流程的源码解析。其中比较重要的就是 当365bet体育在线们登录成功的时候,是由AuthenticationSuccessHandler进行登录结果处理,默认跳转到defaultSuccessUrl配置的路径对应的资源页面(一般是首页index.html)。 阅读全文
posted @ 2019-11-20 07:50 字母哥博客 阅读 (218) 评论 (0) 编辑
摘要:一、常用注解回顾 1.1 @RequestBody与@ResponseBody 如上代码所示: @RequestBody修饰请求参数,注解用于接收HTTP的body,默认是使用JSON的格式 @ResponseBody修饰返回值,注解用于在HTTP的body中携带响应数据,默认是使用JSON的格式。 阅读全文
posted @ 2019-11-19 08:10 字母哥博客 阅读 (252) 评论 (0) 编辑
摘要:一、登录认证基于过滤器链 Spring Security的登录验证流程核心就是过滤器链。当一个请求到达时按照过滤器链的顺序依次进行处理,通过所有过滤器链的验证,就可以访问API接口了。 SpringSecurity提供了多种登录认证的方式,由多种Filter过滤器来实现,比如: BasicAuthe 阅读全文
posted @ 2019-11-18 07:55 字母哥博客 阅读 (246) 评论 (0) 编辑