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=true
spring.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 = update
spring.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/user

http://localhost:8080/userData

 登录h2控制台

http://localhost:8080/h2-console

spring security关闭http验证 和 springboot 使用h2数据库的更多相关文章

  1. Spring Security 概念基础 验证流程

    Spring Security 概念基础 验证流程 认证&授权 认证:确定是否为合法用户 授权:分配角色权限(分配角色,分配资源) 认证管理器(Authentication Manager) ...

  2. 自定义Spring Security的身份验证失败处理

    1.概述 在本快速教程中,我们将演示如何在Spring Boot应用程序中自定义Spring Security的身份验证失败处理.目标是使用表单登录方法对用户进行身份验证. 2.认证和授权(Authe ...

  3. Spring Security在登录验证中增加额外数据(如验证码)

    在使用Spring Security框架过程中,经常会有这样的需求,即在登录验证时,附带增加额外的数据,如验证码.用户类型等.下面将介绍如何实现. 注:我的工程是在Spring Boot框架基础上的, ...

  4. spring security 3.2 配置详解(结合数据库)

    没事就来了解下spring security.网上找了很多资料.有过时的,也有不是很全面的.各种问题也算是让我碰了个遍.这样吧.我先把整个流程写下来,之后在各个易混点分析吧. 1.建立几个必要的页面. ...

  5. Spring Security Source Code -- 验证标准流程

    除了初始阶段: 主干验证流程链: MyInvocationSecurityMetadataSource.getAttributes(Object) line: 43     MyFilterSecur ...

  6. springboot 查看H2数据库

    1  再application.properties文件中,添加 spring.h2.console.enabled=true 2 再浏览器中打开: http://localhost:8080/h2- ...

  7. springboot+spring security +oauth2.0 demo搭建(password模式)(认证授权端与资源服务端分离的形式)

    项目security_simple(认证授权项目) 1.新建springboot项目 这儿选择springboot版本我选择的是2.0.6 点击finish后完成项目的创建 2.引入maven依赖  ...

  8. SpringBoot集成Spring Security(4)——自定义表单登录

    通过前面三篇文章,你应该大致了解了 Spring Security 的流程.你应该发现了,真正的 login 请求是由 Spring Security 帮我们处理的,那么我们如何实现自定义表单登录呢, ...

  9. 详解Spring Security的HttpBasic登录验证模式

    一.HttpBasic模式的应用场景 HttpBasic登录验证模式是Spring Security实现登录验证最简单的一种方式,也可以说是最简陋的一种方式.它的目的并不是保障登录验证的绝对安全,而是 ...

随机推荐

  1. Java GUI小程序--画板

     画板效果  (以前写在Csdn上的博文,没去水印,Csdn名字同博客园) 布局类: package gary; import java.awt.Color; import java.awt.even ...

  2. [CMS]ThinkCMF框架存在任意内容包含漏洞

    原出处:https://www.freebuf.com/vuls/217586.html 0x00 简介 ThinkCMF是一款基于PHP+MYSQL开发的中文内容管理框架,底层采用ThinkPHP3 ...

  3. vue+element 表格formatter数据格式化并且插入html标签

    前言 vue中 element框架,其中表格组件,我既要行内数据格式化,又要插入html标签 一贯思维,二者不可兼得也 一.element 表格 数据格式化 demo <el-table-col ...

  4. Python中_,__,__xx__方法区别

    _xx 单下划线开头 Python中没有真正的私有属性或方法,可以在你想声明为私有的方法和属性前加上单下划线,以提示该属性和方法不应在外部调用.如果真的调用了也不会出错,但不符合规范. 方法就是以单下 ...

  5. go的flag模块使用例子

    package main import ( "flag" "fmt" "strconv" ) func main() { port := f ...

  6. 今天闲来无事给我这老伙计A4L换个机油

    今天闲来无事给我这老伙计A4L换个机油         今天天气不错正好心血来潮给我的老伙计做个小保健.跟我这么久了也不能亏待是吧,也很久没来论坛了顺便冒个泡给我们版主晶晶交个作业要不然又要揍我了. ...

  7. CopyOnWrite 思想在 Kafka 源码中的运用

    CopyOnWrite 思想在 Kafka 源码中的运用 在 Kafka 的内核源码中,有这么一个场景,客户端在向 Kafka 写数据的时候,会把消息先写入客户端本地的内存缓冲,然后在内存缓冲里形成一 ...

  8. Github: 提升Github下载速度

    通过修改hosts文件来提速(该方法也可加速其他因为CDN被屏蔽导致访问慢的网站) 第一步:获取GitHub的IP地址 通过访问:http://tool.chinaz.com/dns或者https:/ ...

  9. C++中的break、continue、goto语句

    break.continue.goto break用于提前结束循环.只能打断一层循环.是把一层循环全部结束掉.continue则是提前结束循环内单次,继续循环下一步.

  10. 使用jquery循环并获取 json 数组的键/值对

    var resultJSON = '{"FirstName":"John","LastName":"Doe"," ...