spring security关闭http验证 和 springboot 使用h2数据库
spring security关闭http验证
最近在跑demo的过程中,访问swagger页面的时候需要验证登录,记得在之前写的代码中是关闭了security验证,无需登录成功访问,直接在application.yml配置文件中添加上:
management.security.enabled: false

发现报错,其实在添加的过程中就发现

此配置已经失效 ,经查阅发现spring boot 2.0+之后这样配置就不能生效了
但是我们可以在代码中去配置。
我们可以新建一个类SecurityConfig 继承WebSecurityConfigurerAdapter类,
然后重写父类中的configure(HttpSecurity http) 方法。
idea中重写方法的快捷键默认是crtl+o
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override
protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests()
.anyRequest().permitAll().and().logout().permitAll();//配置不需要登录验证
}
}
现在再来访问任意的接口,不需要再验证啦。
此外,再补充一点,security默认的username=user,password是我们运行程序的时候生成的

感谢:https://blog.csdn.net/c851204293/article/details/92975654
springboot 使用h2数据库
1. 创建基本spring boot项目
2. 加入h2数据库依赖
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.197</version>
<scope>test</scope>
</dependency>
3. 配置配置文件
spring.jpa.database=h2
spring.jpa.show-sql=truespring.datasource.driver-class-name=org.h2.Driver
# 内存模式
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.username=sa
spring.datasource.password=# 只进行表的更新。默认是删除原来的表结构重新生成 这样会出问题。
spring.jpa.hibernate.ddl-auto = updatespring.h2.console.path=/h2-console
spring.h2.console.enabled=true#其中有三个值,always为始终执行初始化,embedded只初始化内存数据库(默认值),如h2等,never为不执行初始化。
spring.datasource.initialization-mode=embedded

配置文件内容,和h2数据库登录信息一致
4.代码结构
entity
import java.util.Collection;
import java.util.Date;
import java.util.List; import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.Data; @Entity
@Table(name = "user")
@Data
public class User { @Id
@Column(columnDefinition = "int")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private String name; private String password; private String email; @Column(name = "phone_number") //映射数据库中的字段名,与之对应。属性用驼峰命名
private String phoneNumber; private int status; @Column(name = "create_time")
private Date createTime; @Column(name = "last_login_time")
private Date lastLoginTime; @Column(name = "last_update_time")
private Date lastUpdateTime; private String avatar; public Long getId() {
return id;
} public void setId(Long id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getEmail() {
return email;
} public void setEmail(String email) {
this.email = email;
} public String getPhoneNumber() {
return phoneNumber;
} public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
} public int getStatus() {
return status;
} public void setStatus(int status) {
this.status = status;
} public Date getCreateTime() {
return createTime;
} public void setCreateTime(Date createTime) {
this.createTime = createTime;
} public Date getLastLoginTime() {
return lastLoginTime;
} public void setLastLoginTime(Date lastLoginTime) {
this.lastLoginTime = lastLoginTime;
} public Date getLastUpdateTime() {
return lastUpdateTime;
} public void setLastUpdateTime(Date lastUpdateTime) {
this.lastUpdateTime = lastUpdateTime;
} public String getAvatar() {
return avatar;
} public void setAvatar(String avatar) {
this.avatar = avatar;
}
}
dao层
public interface UserRepository extends JpaRepository<User, Long> {
List<User> getUsersByName(String Name);
}
controller层
@RestController
public class ControllerTest { @Autowired
private UserRepository userRepository; @GetMapping("userData")
public void userData(){
List<User> list = userRepository.findAll();
System.out.println("user数据为:" + list.toString());
} @GetMapping("user")
public void usera(){
Optional<User> user = userRepository.findById(1L);
System.out.println("user数据为:" + user.get().getName());
}
}
5.访问

http://localhost:8080/userData

登录h2控制台
http://localhost:8080/h2-console


spring security关闭http验证 和 springboot 使用h2数据库的更多相关文章
- Spring Security 概念基础 验证流程
Spring Security 概念基础 验证流程 认证&授权 认证:确定是否为合法用户 授权:分配角色权限(分配角色,分配资源) 认证管理器(Authentication Manager) ...
- 自定义Spring Security的身份验证失败处理
1.概述 在本快速教程中,我们将演示如何在Spring Boot应用程序中自定义Spring Security的身份验证失败处理.目标是使用表单登录方法对用户进行身份验证. 2.认证和授权(Authe ...
- Spring Security在登录验证中增加额外数据(如验证码)
在使用Spring Security框架过程中,经常会有这样的需求,即在登录验证时,附带增加额外的数据,如验证码.用户类型等.下面将介绍如何实现. 注:我的工程是在Spring Boot框架基础上的, ...
- spring security 3.2 配置详解(结合数据库)
没事就来了解下spring security.网上找了很多资料.有过时的,也有不是很全面的.各种问题也算是让我碰了个遍.这样吧.我先把整个流程写下来,之后在各个易混点分析吧. 1.建立几个必要的页面. ...
- Spring Security Source Code -- 验证标准流程
除了初始阶段: 主干验证流程链: MyInvocationSecurityMetadataSource.getAttributes(Object) line: 43 MyFilterSecur ...
- springboot 查看H2数据库
1 再application.properties文件中,添加 spring.h2.console.enabled=true 2 再浏览器中打开: http://localhost:8080/h2- ...
- springboot+spring security +oauth2.0 demo搭建(password模式)(认证授权端与资源服务端分离的形式)
项目security_simple(认证授权项目) 1.新建springboot项目 这儿选择springboot版本我选择的是2.0.6 点击finish后完成项目的创建 2.引入maven依赖 ...
- SpringBoot集成Spring Security(4)——自定义表单登录
通过前面三篇文章,你应该大致了解了 Spring Security 的流程.你应该发现了,真正的 login 请求是由 Spring Security 帮我们处理的,那么我们如何实现自定义表单登录呢, ...
- 详解Spring Security的HttpBasic登录验证模式
一.HttpBasic模式的应用场景 HttpBasic登录验证模式是Spring Security实现登录验证最简单的一种方式,也可以说是最简陋的一种方式.它的目的并不是保障登录验证的绝对安全,而是 ...
随机推荐
- div双击全屏,再双击恢复到原来的状态vue,js来做
需求是这样的: 有四个视频,视频是在4个区域,点击之后就全屏 <!DOCTYPE html> <html lang="en"> <head> & ...
- 关于Vertical Align的理解
1:vertical-align 翻译就是垂直-对齐... 2:关于line-height的点 2.1:如果一个标签没有定义height属性,那么其最终表现的高度一定是由line-height起作用. ...
- 根据字符串从资源中取出对应的资源ResourceManager.GetObject
ResourceManager.GetObject 根据名称从资源中取出资源 需要:我有25张 五笔图片名称是a b c d ...y 这样组成的 每张图片名字只有一个名字 我想通过字符串a取出a这张 ...
- delphi 二维数组的大小和元素个数问题
type TComplex = record Real : Single; Imag : Single; end; TKArray=array [1..2048,1..2048] of TComple ...
- spring线程池的同步和异步(1)
spring线程池(同步.异步) 一.spring异步线程池类图 二.简单介绍 2.1. TaskExecutor---Spring异步线程池的接口类,其实质是java.util.concurrent ...
- 文献阅读 | Molecular Architecture of the Mouse Nervous System
文章亮点: 按level来管理和分析数据,文章有不同stage,每个stage有不同subtype,这应该是一个真tree,而不只是一个进化树,文章里出现最多的进化树把所有的stage都整合了. 空间 ...
- MySQL 行转列 -》动态行转列 -》动态行转列带计算
Pivot Table Using MySQL - A Complete Guide | WebDevZoomhttp://webdevzoom.com/pivot-table-using-mysql ...
- ubuntu下安装ftp服务
1. 安装vsftpd $ sudo apt-get install vsftpd 2. 创建一个用户user-ftp用于ftp服务 $ sudo adduser user-ftp 3.创建一个文件/ ...
- phpstorm yii2框架的redis和mongodb提示
随便找个目录创建一个 yii_helper.php 文件,内容如下: /** * Class Yii */ class Yii { /** * @var MyApplication */ public ...
- expandablelistView 可展开的列表
这个东西用法基本固定,不知道能不能做三级的展开. 界面代码 <?xml version="1.0" encoding="utf-8"?> <L ...