Spring Security基本配置
Spring Security 是一个功能强大且可高度自定义的身份验证和访问控制框架。 它是保护基于Spring的应用程序的事实上的标准。
Spring Security 是一个专注于为Java应用程序提供身份验证和授权的框架。 与所有Spring项目一样,Spring Security的真正强大之处在于它可以轻松扩展以满足自定义要求
先建立一个maven多模块工程,如下:

spring-security:父模块
spring-security-browser:处理浏览器相关的授权认证,最终作为demo的一个jar依赖
spring-security-core:一些授权认证的公共方法和类,并将公共依赖放在这里
spring-security-demo:授权认证demo服务
spring-security-core
pom依赖:
<!-- 工具类包 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.7</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.1</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<!-- thymeleaf-视图解析 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
spring-security-browser
pom依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.xwj</groupId>
<artifactId>spring-security-core</artifactId>
<version>0.0.-SNAPSHOT</version>
</dependency>
Security配置:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override
protected void configure(HttpSecurity http) throws Exception {
http.formLogin() // 表单登录。跳转到security默认的登录表单页
// http.httpBasic() //basic登录
.and()
.authorizeRequests() // 对请求授权
.antMatchers("/noAuth").permitAll() //允许所有人访问/noAuth
.anyRequest() // 任何请求
.authenticated()// 需要身份认证
;
} }
spring-security-demo
pom依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.xwj</groupId>
<artifactId>spring-security-browser</artifactId>
<version>0.0.-SNAPSHOT</version>
</dependency>
Controller中:
@RestController
@RequestMapping
public class IndexController { /**
* 不需要认证的请求
*/
@GetMapping("/noAuth")
public String noAuth() {
return "noAuth";
} /**
* 需要认证的请求
*/
@GetMapping("/user")
public String user() {
return "user";
} }
启动服务。在日志中,可以看到如下信息:
Using default security password: 90d9e73a-490c-484b-b7c5-5cd75c634e2f
这是security的默认密码,在后面登录时会用到
该服务端口为18081,在浏览器访问 http://localhost:18081/noAuth,该请求是不需要认证的,所以直接进入到我们的服务,如下:

再访问 http://localhost:18081/user,该请求是需要认证的,会先跳到security默认的登录页(也可以自定义登录页),如下:

用户名随便输入,密码为日志中打印的密码:90d9e73a-490c-484b-b7c5-5cd75c634e2f
点击login按钮,登录成功,返回一个user。当重新访问这个请求时,由于已经认证过了,所以现在可以直接访问了

至此,最简单的security配置完成~
Spring Security基本配置的更多相关文章
- SPRING SECURITY JAVA配置:Web Security
在前一篇,我已经介绍了Spring Security Java配置,也概括的介绍了一下这个项目方方面面.在这篇文章中,我们来看一看一个简单的基于web security配置的例子.之后我们再来作更多的 ...
- Spring Security 入门(1-2)Spring Security - 从 配置例子例子 开始我们的学习历程
1.Spring Security 的配置文件 我们需要为 Spring Security 专门建立一个 Spring 的配置文件,该文件就专门用来作为 Spring Security 的配置. &l ...
- Spring Security认证配置(三)
学习本章之前,可以先了解下上篇Spring Security认证配置(二) 本篇想要达到这样几个目的: 1.登录成功处理 2.登录失败处理 3.调用方自定义登录后处理类型 具体配置代码如下: spri ...
- Spring Security认证配置(二)
学习本章之前,可以先了解下上篇Spring Security基本配置. 本篇想要达到这样几个目的: 1.访问调用者服务时,如果是html请求,则跳转到登录页,否则返回401状态码和错误信息 2.调用方 ...
- Spring Security认证配置(一)
学习本章之前,可以先了解下上篇 Spring Security基本配置. 本篇主要讲述Spring Security基于表单,自定义用户认证配置(上篇中的配置,本篇将不再阐述).一共分为三步: 1.处 ...
- Spring Security 从配置入门 学习讲解。万恶之源------------web.xml
这段时间,工作闲了下来,接触了Spring Security,对于我一个基础很差的人来说,无疑是个挑战啊. 经过一段时间的摸索,终于有了点眉目,在这里,要特别感谢http://blog.csdn.ne ...
- Spring Security 从配置入门 学习讲解。刽子手------------securityConfig.xml
不知道我的web.xml 大家都理解了没. 废话确实有点多,可能很多知识点,大家都知道,可是我学的时候,压根什么都不懂啊.... 这篇我们要讲刽子手 securityConfig. 为什么要说他是 ...
- spring-security-4 (5)spring security Java配置实现自定义表单认证与授权
前面三篇讲解了spring security的搭建以及简单的表单认证与授权原理.本篇将实现我们自定义的表单登录与认证. 本篇不会再讲项目的搭建过程,因为跟第二节的搭建如出一辙.本篇也不会将项目中所有 ...
- Spring boot+Spring Security 4配置整合实例
本例所覆盖的内容: 1. 使用Spring Security管理用户身份认证.登录退出 2. 用户密码加密及验证 3. 采用数据库的方式实现Spring Security的remember-me功能 ...
随机推荐
- uniGUI for C++ builder之杂七杂八小知识
uniGUI for C++ builder之杂七杂八小知识 2018年09月30日 22:16:05 中国银行之路在脚下 阅读数:41 标签: uniguibuilder 更多 个人分类: C++ ...
- Android-WebView加载网页(new WebView(this)方式)
之前的博客,都是 findViewById(R.id.webview);,来得到WebView, 此博客使用 new WebView(this)方式; AndroidManifest.xml中配置网络 ...
- node-webkit学习(2)基本结构和配置
node-webkit学习(2)基本结构和配置 文/玄魂 目录 node webkit学习(2)基本结构和配置 前言 2.1 基本程序结构 2.2 package.json 2.2.1 必须的配置 ...
- MicrosoftSQLServer数据库定时备份(备份计划)的几种方式
首先,做备份计划钱,先要查看下SQL Server代理是否开启 进入主题 1.备份计划方式1: 1.1新增数据库备份作业: 备份脚本: declare @name varchar() ))+'.bak ...
- EF Core 迁移过程遇到EF Core tools version版本不相符的解决方案
如果你使用命令: PM> add-migration Inital 提示如下信息时: The EF Core tools version '2.1.1-rtm-30846' is older t ...
- 知物由学 | 见招拆招,Android应用破解及防护秘籍
本文来自网易云社区. “知物由学”是网易云易盾打造的一个品牌栏目,词语出自汉·王充<论衡·实知>.人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不会知道.“知物由学”希 ...
- 「雅礼集训 2017 Day1」 解题报告
「雅礼集训 2017 Day1」市场 挺神仙的一题.涉及区间加.区间除.区间最小值和区间和.虽然标算就是暴力,但是复杂度是有保证的. 我们知道如果线段树上的一个结点,\(max=min\) 或者 \( ...
- 创建python3虚拟环境指令和冻结所安装的包
mkvirtualenv file_name -p python3 去掉后面的 P 和python3 代表创建python2环境 其中p代表路径的意思 冻结所安装包命令 pip freeze > ...
- Python UDP实例
UDP通信过程 udp 不需要经过3次握手和4次挥手,不需要提前建立连接,直接发数据就行. server端 import socket BUFSIZE = 1024 ip_port = ('127.0 ...
- 【sping揭秘】2、关于spring配置文件
<import>标签 引入其他的配置文件,如果A.xml 中的<bean>定义可能依赖B.xml中的某些<bean>定义,那么可以再A.xml中使用这种方式< ...