spring security笔记】的更多相关文章

在第一节 Spring Security笔记:Hello World 的基础上,只要把Spring-Security.xml里改一个位置 <http auto-config="true"> <intercept-url pattern="/admin" access="ROLE_USER" /> <http-basic /> </http> 注意第三行,加上<http-basic/>后,…
本文演示了Spring Security的最最基本用法,二个页面(或理解成二个url),一个需要登录认证后才能访问(比如:../admin/),一个可匿名访问(比如:../welcome) 注:以下内容参考了 http://www.mkyong.com/spring-security/spring-security-hello-world-example/ 一.利用STS(Spring Tools Suite)创建一个Spring MVC Project 如果不想使用STS,在普通Eclipse…
在前面的学习中,配置文件中的<http>...</http>都是采用的auto-config="true"这种自动配置模式,根据Spring Security文档的说明: ------------------ auto-config Automatically registers a login form, BASIC authentication, logout services. If set to "true", all of thes…
基于Spring Security+Spring MVC的web应用,为了防止跨站提交攻击,通常会配置csrf,即: <http ...> ... <csrf /> </http> 如果应用中有Post方式访问的Rest服务(参考下面的代码),会很不幸的发现,所有POST方式请求的服务会调用失败. @RequestMapping(value = "/user/create", method = RequestMethod.POST) @Respons…
前一节学习了如何限制登录尝试次数,今天在这个基础上再增加一点新功能:Remember Me. 很多网站,比如博客园,在登录页面就有这个选项,勾选“下次自动登录”后,在一定时间段内,只要不清空浏览器Cookie,就可以自动登录. 一.spring-security.xml 最简单的配置 <http auto-config="true" use-expressions="true"> ... <remember-me /> </http&g…
今天在前面一节的基础之上,再增加一点新内容,默认情况下Spring Security不会对登录错误的尝试次数做限制,也就是说允许暴力尝试,这显然不够安全,下面的内容将带着大家一起学习如何限制登录尝试次数. 首先对之前创建的数据库表做点小调整 一.表结构调整 T_USERS增加了如下3个字段: D_ACCOUNTNONEXPIRED,NUMBER(1) -- 表示帐号是否未过期D_ACCOUNTNONLOCKED,NUMBER(1), -- 表示帐号是否未锁定D_CREDENTIALSNONEXP…
在前一节使用数据库进行用户认证(form login using database)里,我们学习了如何把“登录帐号.密码”存储在db中,但是密码都是明文存储的,显然不太讲究.这一节将学习如何使用spring security3新加入的bcrypt算法,将登录加密存储到db中,并正常通过验证. 一.Bcrypt算法 int t = 0; String password = "123456"; System.out.println(password + " -> "…
在前一节,学习了如何自定义登录页,但是用户名.密码仍然是配置在xml中的,这样显然太非主流,本节将学习如何把用户名/密码/角色存储在db中,通过db来实现用户认证 一.项目结构 与前面的示例相比,因为要连接db,所以多出了一个spring-database.xml用来定义数据库连接,此外,为了演示登录用户权限不足的场景,加了一个页面403.jsp,用来统一显示权限不足的提示信息 二.数据库表结构(oracle环境) create table T_USERS ( d_username ) not…
以下内容参考了 http://www.mkyong.com/spring-security/spring-security-form-login-example/ 接上回,在前面的Hello World示例中,Spring Security为我们自动生成了默认登录页,对于大多数项目而言,如此简单的登录页并不能满足实际需求,接下来,我们看看如何自定义登录页 一.项目结构 与前一个示例相比较,只是多了一个css样式以及登录页login.jsp,这二个文件具体的内容如下: @CHARSET "UTF-…
当指定http元素的auto-config=”true”时,就相当于如下内容的简写. <security:http> <security:form-login/> <security:http-basic/> <security:logout/> </security:http> 如果使用了use-expressions="true",那么<intercept-url pattern="/**" ac…
shiro更轻量级,spring security过于复杂. Apache Shiro 使用手册(一)Shiro架构介绍 Spring Security笔记:Remember Me(下次自动登录)…
http://blog.csdn.net/sinat_28454173/article/details/52251004 ********************************************************** 最近在学习spring security与spring boot的整合,刚开始学习了登录和注销,想自己拓展一下,post一些数据,完成数据库的操作.…
在 Spring Security 中基于表单的认证模式,默认就是密码帐号登录认证,那么对于短信验证码+登录的方式,Spring Security 没有现成的接口可以使用,所以需要自己的封装一个类似的认证过滤器和认证处理器实现短信认证. 短信验证码认证 验证码对象类设计 和图片验证码一样,需要自己封装一个验证码对象,用来生成手机验证码并发送给手机.因为图片验证码和手机验证码对象的区别就在于前者多了个图片对象,所以两者共同部分抽象出来可以设计成一个ValidateCode类,这个类里面只存放验证码…
整体实现逻辑 前端在登录页面时,自动从后台获取最新的验证码图片 服务器接收获取生成验证码请求,生成验证码和对应的图片,图片响应回前端,验证码保存一份到服务器的 session 中 前端用户登录时携带当前验证码 服务器校验验证码是否合法(验证码存在并未过期),继续后续的用户名和密码校验逻辑 通过一个时序图来表述如下图,图中细化了一下各个控制器和过滤器之间的功能职责,还不是很正规,只为了更好表达上述的流程描述,所以读者们将就一下: 时序图 plantUML 代码 plantUML 的使用教程请移步至…
用户认证流程 UsernamePasswordAuthenticationFilter 我们直接来看UsernamePasswordAuthenticationFilter类, public class UsernamePasswordAuthenticationFilter extends AbstractAuthenticationProcessingFilter { public Authentication attemptAuthentication(HttpServletRequest…
一:唠嗑 鼓捣了两天的Spring Security,踩了不少坑.如果你在学Spring Security,恰好又是使用的Spring Boot,那么给我点个赞吧!这篇博客将会让你了解Spring Security的各种坑! 阅读前说一下,这篇博客是我一字一字打出来的,转载务必注明出处哦! 另外,本文已授权微信公众号“后端技术精选”独家发布 二:开始 1.准备 Spring boot 1.5 Mysql 5.7 导入依赖 <!-- Web工程 --> <dependency> &l…
SpringBoot学习笔记(2):用Spring Security来保护你的应用 快速开始 本指南将引导您完成使用受Spring Security保护的资源创建简单Web应用程序的过程. 参考资料: SpringSecurity中文参考文档:点击进入 IBM参考文档:点击进入 使用Maven进行构建 首先,设置一个基本的构建脚本.在使用Spring构建应用程序时,您可以使用任何您喜欢的构建系统,但此处包含了使用Maven所需的代码.如果您不熟悉Maven,请参阅使用Maven构建Java项目.…
Spring Security 关于spring-security的官网文档学习笔记,主要是第8章 Architecture and Implementation(架构和实现)内容 参考: https://docs.spring.io/spring-security/site/docs/5.2.1.BUILD-SNAPSHOT/reference/htmlsingle/#overall-architecture Architecture and Implementation(架构与实现) 应用程…
1  单点登录 关于单点登录的原理,我觉得下面这位老哥讲的比较清楚,有兴趣可以看一下,下面我把其中的重点在此做个笔记总结 https://juejin.cn/post/6844904079274197005 主流的单点登录都是基于共享 cookie 来实现的 1.1  同域单点登录 适用场景:都是企业内部系统,所有系统都适用同一个一级域名,并通过不同的二级域名区分 举个例子:公司有一个一级域名cjs.com,我们有三个系统需要实现单点登录,分别是门户系统(sso.cjs.com).应用系统1(a…
Spring Web Security是Java web开发领域的一个认证(Authentication)/授权(Authorisation)框架,基于Servlet技术,更确切的说是基于Servlet的Filter技术.因此,在学习Spring Web Security之前,有必要先对Servlet Filter的工作机制做个介绍. 注:Spring Security本身并不只是针对web的,但本文讲的主要是其在web开发中的使用,因此下文提到Spring Security时主要指Spring…