首页 > 数据库技术 > 详细

spring security关闭http验证 和 springboot 使用h2数据库

时间:2019-12-10 22:33:33      阅读:297      评论:0      收藏:0      [点我收藏+]

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数据库

原文:https://www.cnblogs.com/FondWang/p/12019067.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!