说明

(1)JDK版本:1.8

(2)Spring Boot 2.0.6

(3)Spring Security 5.0.9

需求缘起

在上一篇文章中,我们对于Spring Security有了一个基本的了解,那么重点是在Spring Boot中如何使用Spring Security呢?

一、Spring Security初体验

这里我们通过简单的集成方式来对Spring Security有一个基本的认知。

1.1 创建项目

创建一个项目,取名为:springboot2-springSecurity01

1.2 添加依赖

在pom.xml文件中添加依赖,主要是springboot parent starter和-start-web以及spring security的依赖。

spring-boot-starter-parent依赖:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

Spring Security和-web依赖:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
</dependency>

1.3 创建Spring Boot启动类

使用@SpringBootApplication创建Spring Boot启动类,如下代码:

package com.kfit;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
public class Springboot2SpringSecurity01Application {     public static void main(String[] args) {
        SpringApplication.run(Springboot2SpringSecurity01Application.class, args);
    }
}

如果使用的STS开发工具的话,上面的1.2和1.3都可以跳过。

1.4 编写Controller

随意编写一个测试Controller,这里取名为HelloController,如下示例代码:

package com.kfit.demo.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
@RequestMapping("/hello")
public class HelloController {     @GetMapping
    public String getWelcomeMsg() {       
        return "Hello,Spring Security";
    }
}

1.5 启动测试

启动应用程序,然后进行测试:

(1)访问如下地址:

http://localhost:8080/hello

如果接口能正常访问,那么应该显示“Hello,SpringSecurity”,但是我们是没法正常访问的,出现了下图的身份验证输入框:

这是因为在SpringBoot中,默认的Spring Security就是生效了的,此时的接口都是被保护的,我们需要通过验证才能正常的访问。 Spring Security提供了一个默认的用户,用户名是user,而密码则是启动项目的时候自动生成的。

我们查看项目启动的日志,会发现如下的一段Log:

Using generated securitypassword: 74adcd57-f0be-46c3-87cc-6d9d712cbc27

我们直接用user和启动日志中的密码进行登录,登录成功后,就跳转到了接口正常调用的页面了。

二、小技巧

2.1 关闭验证功能

如果一开始不想使用验证功能,怎么关闭呢?

在配置文件中配置

security.basic.enabled=false

的方式,在5.x版本之后提示过时了,那么应该怎么办呢?

方式一:在启动类中排除

SecurityAutoConfiguration,

如下示例代码:

@SpringBootApplication(exclude=SecurityAutoConfiguration.class)
public class Springboot2SpringSecurity01Application {     public static void main(String[] args) {
        SpringApplication.run(Springboot2SpringSecurity01Application.class, args);
    }
}

另外在Spring Boot 2.x中下面配置项被废弃了:

security.basic.authorize-mode
security.basic.enabled
security.basic.path
security.basic.realm
security.enable-csrf
security.headers.cache
security.headers.content-security-policy
security.headers.content-security-policy-mode
security.headers.content-type
security.headers.frame
security.headers.hsts
security.headers.xss
security.ignored
security.require-ssl
security.sessions

2.2 自定义用户名和密码

上面的用户名是默认的,密码是随时生成的,实在是不方便,那么怎么自定义用户名和密码呢,只需要在配置文件application.properties文件中添加如下配置:

spring.security.user.name = admin
spring.security.user.password = 123456

历史文章

214. Spring Security:概述

Spring Security更新视频:

9.Boot+Security:动态加载角色
10.Boot+Security:原理1
11.Boot+Security:自定义Filter
12.Boot+Security:页面白名单和获取登录信息
13.Boot+Security:基于URL动态权限n种方案
14.Boot+Security:基于URL动态权限:准备工作
15.Boot+Security:基于URL动态权限:扩展access()的SpEL表达式

à悟空学院http://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「悟空学院」进行查看!

悟空学院的所有教程从11月10号到双十一都有优惠活动!




 

215.Spring Boot+Spring Security:初体验的更多相关文章

  1. Spring boot集成redis初体验

    pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="ht ...

  2. 255.Spring Boot+Spring Security:使用md5加密

    说明 (1)JDK版本:1.8 (2)Spring Boot 2.0.6 (3)Spring Security 5.0.9 (4)Spring Data JPA 2.0.11.RELEASE (5)h ...

  3. 256.Spring Boot+Spring Security: MD5是加密算法吗?

    说明 (1)JDK版本:1.8 (2)Spring Boot 2.0.6 (3)Spring Security 5.0.9 (4)Spring Data JPA 2.0.11.RELEASE (5)h ...

  4. Spring Boot+Spring Security:获取用户信息和session并发控制

    说明 (1)JDK版本:1.8(2)Spring Boot 2.0.6(3)Spring Security 5.0.9(4)Spring Data JPA 2.0.11.RELEASE(5)hiber ...

  5. Spring Cloud 负载均衡初体验

    目录 服务搭建 1.注册中心--Eureka Server 2.服务提供方--Service Provider 3.服务消费方--Service Consumer 服务消费 Feign 与断路器 Hy ...

  6. 基于Spring Boot+Spring Security+JWT+Vue前后端分离的开源项目

    一.前言 最近整合Spring Boot+Spring Security+JWT+Vue 完成了一套前后端分离的基础项目,这里把它开源出来分享给有需要的小伙伴们 功能很简单,单点登录,前后端动态权限配 ...

  7. Spring Boot+Spring Security+JWT 实现 RESTful Api 认证(二)

    Spring Boot+Spring Security+JWT 实现 RESTful Api 认证(二) 摘要 上一篇https://javaymw.com/post/59我们已经实现了基本的登录和t ...

  8. Spring boot +Spring Security + Thymeleaf 认证失败返回错误信息

    [Please make sure to select the branch corresponding to the version of Thymeleaf you are using] Stat ...

  9. [权限管理系统(四)]-spring boot +spring security短信认证+redis整合

    [权限管理系统]spring boot +spring security短信认证+redis整合   现在主流的登录方式主要有 3 种:账号密码登录.短信验证码登录和第三方授权登录,前面一节Sprin ...

随机推荐

  1. 日常遇错之Unable to save settings: Failed to save settings. Please restart PyCharm

    将工程的.ideas目录删掉,重启pycharm即可.

  2. 基于Linux-3.9.4内核的GDB跟踪系统调用实验

    382 + 原创作品转载请注明出处 + https://github.com/mengning/linuxkernel/ 一.实验环境 win10 -> VMware -> Ubuntu1 ...

  3. 15. Password auditing (密码审核 12个)

    Aircrack是一套用于802.11a / b / g WEP和WPA破解的工具. 一旦收集到足够的加密数据包,它就会实现最有效的破解算法来恢复无线密钥.. 该套件包括十多个分离工具,包括airod ...

  4. Java修饰符final总结

    final 的意思是最终的,不可改变的. final可以用来修饰 a.类. b.方法(包括类方法和对象方法). c.变量(包括成员变量.局部变量). 1. final修饰类: 用final修饰的类不能 ...

  5. Echart横坐标时间轴滑动

    主要针对于dataZoom的使用,代码如下: option = { title: { text: '未来一周气温变化', subtext: '纯属虚构' }, tooltip: { trigger: ...

  6. Yii2 设计模式——简单工厂模式

    除了使用 new 操作符之外,还有更多的制造对象的方法.你将了解到实例化这个活动不应该总是公开进行,也会认识到初始化经常造成“耦合”问题. 应用举例 yii\db\mysql\Schema 中: // ...

  7. 2018-2019-2 20165308网络对抗技术 Exp6:信息收集与漏洞扫描

    2018-2019-2 20165308网络对抗技术 Exp6:信息收集与漏洞扫描 实践目标 掌握信息搜集的最基础技能与常用工具的使用方法. 实践内容 (1)各种搜索技巧的应用 (2)DNS IP注册 ...

  8. php-fpm重启操作

    启动php-fpm:/usr/local/php/sbin/php-fpm php 5.3.3 以后的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/ph ...

  9. tomcat 发布后中文乱码问题

    接口收到数据,使用Eclipse运行调试中文正常显示,发布到Tomcat后中文出现乱码情况: 解决方法: tomcat启动时默认使用系统编码,可更改tomcat bin目录下catalina.bat文 ...

  10. win7和linux下利用命令查看文件md5、sha1、sha256

    win7 certutil -hashfile <filename> MD5 certutil -hashfile <filename> SHA1 certutil -hash ...