理解 OAuth 2.0

OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。 本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。 一、应用场景为了理解OAuth的适用场合,让我举一个假设的例子。 有一个”云冲印”的网站,可以将用户储存在Google的照片,冲印出来。用户为了使用该服务,必须让”云冲印”读取自己储...

SpringBoot 集成 Spring Security(5)——权限控制

在第一篇中,我们说过,用户<–>角色<–>权限三层中,暂时不考虑权限,在这一篇,是时候把它完成了。 为了方便演示,这里的权限只是对角色赋予权限,也就是说同一个角色的用户,权限是一样的。当然了,你也可以精细化到为每一个用户设置权限,但是这不在本篇的探讨范围,有兴趣可以自己实验,原理都是一样的。 源码地址:https://github.com/jitwxs/blog_samp...

Nginx 缓存使用官方指南

我们都知道,应用程序和网站一样,其性能关乎生存。但如何使你的应用程序或者网站性能更好,并没有一个明确的答案。代码质量和架构是其中的一个原因,但是在很多例子中我们看到,你可以通过关注一些十分基础的应用内容分发技术,来提高终端用户的体验。其中一个例子就是实现和调整应用栈(application stack)的缓存。这篇文章,通过几个例子来讲述如何使用Nginx缓存。此外,结尾处还列举了一些常见问题及解...

SpringBoot 集成 Spring Security(4)——自定义表单登录

通过前面三篇文章,你应该大致了解了 Spring Security 的流程。你应该发现了,真正的 login 请求是由 Spring Security 帮我们处理的,那么我们如何实现自定义表单登录呢,比如添加一个验证码… 源码地址:https://github.com/jitwxs/blog_sample 一、添加验证码1.1 验证码 Servlet验证码的 Servlet 代码,大家无需关心...

SpringBoot 集成 Spring Security(3)——异常处理

源码地址:https://github.com/jitwxs/blog_sample 不知道你有没有注意到,当我们登陆失败时候,Spring security 帮我们跳转到了 /login?error Url,奇怪的是不管是控制台还是网页上都没有打印错误信息。 这是因为首先 /login?error 是 Spring security 默认的失败 Url,其次如果你不手动处理这个异常,这个异...

SpringBoot 集成 Spring Security(2)——自动登录

在上一章:《SpringBoot集成Spring Security(1)——入门程序》中,我们实现了入门程序,本篇为该程序加上自动登录的功能。 源码地址:https://github.com/jitwxs/blog_sample 一、修改 login.html在登陆页添加自动登录的选项,注意自动登录字段的 name 属性必须是 remember-me : login.html123456789...

SpringBoot 集成 Spring Security(1)——入门程序

因为项目需要,第一次接触 Spring Security,早就听闻 Spring Security 功能强大但上手困难,学习了几天出入门道,特整理这篇文章希望能让后来者少踩一点坑(本文附带实例程序,请放心食用) 本篇文章环境:SpringBoot 2.0 + Mybatis + Spring Security 5.0 源码地址:https://github.com/jitwxs/blog_sam...

ActiveMQ 初探(3)——与 SpringBoot 整合

源码地址:https://github.com/jitwxs/blog_sample 一、发送即时消息1.1 添加依赖包这里我们不使用网上大多数的 spring-boot-starter-activemq,因为我配的时候总是有问题,我改为使用如下的三个依赖包,分别是 activemq连接池包、activemq包 和 jms包: 12345678910111213141516<!-- Ac...

ActiveMQ 初探(2)——与 Spring 整合

一、环境准备 源码地址:https://github.com/jitwxs/blog_sample 与 Spring 整合,除了原本的 activemq-all 外,还需导入 spring-context-support 和 spring-jms 包,如果 Spring 为5.0+,需要 javax.jms-api 依赖: 123456789101112131415161718192021<...
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×