Spring Security 采用httpBasic模式认证

Spring Security 学习

1. 初识Spring Security

Spring Security 是Spring提供的一套安全机制框架,对用户访问资源做登录认证。

2. 搭建简单Spring Security

创建一个基于SpringBoot框架的Web项目。

2.1 引入Maven SpringSecurity相关依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-security</artifactId>
</dependency>

2.2 自定义Security Config配置类

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        // 配置所有请求必须登录之后才可以访问
        /*
        	此处采用httpBasic认证模式
        */
        http.httpBasic()
                .and()
                .authorizeRequests()
                .anyRequest().authenticated();
    }
}

2.3 创建用户查询接口Controller

/**
 * 用户相关
 */
@RestController
@RequestMapping("/user")
public class UserController {

    /**
     * 查询当前用户信息
     */
    @GetMapping("/getUserList")
    public Map<String, Object> getUserList() {
        return new HashMap<String, Object>(){{
            put("username", "张三");
            put("sex", "男");
            put("age", "20");
        }};
    }

    /**
     * 用户登录
     */
    @GetMapping("/login")
    public Map<String, Object> login() {
        return new HashMap<String, Object>(){{
            put("code", 200);
            put("msg", "登录成功");
        }};
    }
}

2.4 启动服务浏览器访问下面地址

http://localhost:8080/user/getUserList

这个时候会发现弹出一个身份认证的弹出框,当不配置用户名和密码时,Spring Security 会默认提供

  • 用户名为: user

  • 密码为Console打印的一串字符串

  • 当登录成功后即可访问查询用户信息的接口

2.5 配置自定义用户名及密码

在application.yml中配置用户名及密码

server:
  port: 8080
spring:
  security:
    user:
      name: zhangsan
      password: zhangsan123
posted @ 2020-08-29 12:11  许言琪  阅读(2791)  评论(0编辑  收藏  举报