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实现登录验证最简单的一种方式,也可以说是最简陋的一种方式.它的目的并不是保障登录验证的绝对安全,而是 ...
随机推荐
- Android中进度条
<ProgressBar android:id="@+id/progress_bar" android:layout_width="match_parent&quo ...
- nginx只允许域名访问,禁止ip访问 禁止其他域名访问
背景:为什么要禁止ip访问页面呢?这样做是为了避免其他人把未备案的域名解析到自己的服务器IP,而导致服务器被断网,我们可以通过禁止使用ip访问的方法,防止此类事情的发生. 解决方法:这里介绍修改配置文 ...
- [转载]运行中的DLL自升级
最近手头有个需求:dll需要注入到某个进程常驻,该dll具备自我升级能力,当发现新的可用版本时,立即Free自己,加载新的.下面是一个实现方案: 开启一个监听线程,从网络上拉新的可用版本,下载放到 ...
- Windows7 64位配置ODBC数据源(Sybase)的方法
Windows7 64位配置ODBC数据源(Sybase)的方法 操作步骤: 1,通过“控制面板->ODBC(32位)”进入ODBC数据源管理器,如下图: 假如没找到“ODBC(32位)”,则可 ...
- flutter Tooltip轻量级操作提示
Tooltip是继承于StatefulWidget的一个Widget,它并不需要调出方法,当用户长按被Tooltip包裹的Widget时,会自动弹出相应的操作提示. import 'package:f ...
- PHP 小程序发模板消息
记录一下DEMO <?php function getAccessToken ($appid, $appsecret) { $url='https://api.weixin.qq.com/cgi ...
- 一个兼容 node 与浏览器的模块写法
一个兼容 node 与浏览器的模块写法 // test.js (function (root, factory) { if (typeof define === 'function' &&am ...
- 转 oracle healthcheck
##sample 0 https://carlos-sierra.net/2013/11/01/a-healthy-way-to-do-an-oracle-database-health-check/ ...
- Python动态构造类:借助强悍的内建 type()
内建的 type() 函数带三个参数时, 将作为强悍的动态类构造器. 如下: type(name, bases, dict) 返回一个新的type对象. 基本上是 class 语句的动态形式. 参数: ...
- 使用SampleRateConverter对音频采样率进行转换
java sound resource SampleRateconverter.java(接近于官方源码) 输入目标采样率,输入文件,输出文件.食用方便;p 比如 SampleRateConverte ...