最近在跑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
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数据库
原文:https://www.cnblogs.com/FondWang/p/12019067.html