博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
215.Spring Boot+Spring Security:初体验
阅读量:7177 次
发布时间:2019-06-29

本文共 3736 字,大约阅读时间需要 12 分钟。

 

【视频&交流平台】

 

说明

(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依赖:

 

    
        
org.springframework.boot
        
spring-boot-starter-parent
        
2.0.6.RELEASE
        
 
    

 

Spring Security和-web依赖:

 

            
org.springframework.boot
            
spring-boot-starter-web
        
        
            
org.springframework.boot
            
spring-boot-starter-security

 

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

 

历史文章

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表达式

 


à

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

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

 

posted on
2018-11-10 17:58 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/springboot-wuqian/p/9940120.html

你可能感兴趣的文章
利用makefile文件编译c++源文件
查看>>
VS 0xC0000005 运行错误分析
查看>>
相机水平视角计算公式
查看>>
关于解决mysql和jsp乱码问题的总结
查看>>
CentOS 下安装 PAC Manager 进行远程管理
查看>>
目标社交化汽车新媒体平台,优信用两亿打造“车伯乐”
查看>>
tomcat配置相关总结
查看>>
Android官方开发文档Training系列课程中文版:电池续航时间优化之检查与监测坞的状态与类型...
查看>>
Sql Server 2008 R2 定时备份任务设定
查看>>
spring中的事务属性
查看>>
sublime text2 打开中文乱码
查看>>
SAAS结构技术的开源药店管理系统-如何自己部署这种SOA/SAAS结构的应用
查看>>
Docker容器
查看>>
yum不知道安装名的解决办法
查看>>
Servlet的请求HttpServletRequest
查看>>
Dz经典加密解密方法。
查看>>
21天让你成为Horizon View高手—Day3:安装View Connection Server
查看>>
HAproxy简介
查看>>
Skype For Business 2015实战系列16:安装并配置监控存档服务器
查看>>
Exchange Server 2010无人值守安装
查看>>