SpringBoot安全管理 ——模块1:Spring Security的基本配置

Spring Security的基本配置

1.创建一个普通的springboot项目,添加如下依赖

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

只要在项目中添加 spring-boot-starter-security 依赖,项目中所有资源都会被保护起来
2.创建一个Controller,并添加一个简单的测试接口,内容如下:

@RestController
public class HelloController {
	@GetMapping("/hello")
	public String hello() {
		return "hello";
	}
}

3.启动项目进行测试
等待项目启动成功后,然后访问 http:localhost:8080/hello 接口就会自定跳转到登陆页面,这个登陆页面就是 Spring Security 提供的,如下图所示:

默认的用户名是 user ,默认的登陆密码则是在每次启动项目时随机生成,这里可以查看项目启动日志,如下图所示:

从项目启动日志中可以看到默认的登陆密码,登陆成功后即可访问 hello 接口了

4.配置用户名和密码
如果开发者对默认的用户名密码不满意,则可以在 application.properties 中配置,当配置好重启项目后就可以使用配置好的用户名和密码进行登陆了,登陆成功后,用户还具有一个角色 --admin

spring.security.user.name=sang
spring.security.user.password=123
spring.security.user.roles=admin

5.基于内存的认证
可以自定义继承类继承 SecurityConfigurerAdapter 从而实现对 Spring Security 更多的自定义配置 ,例如基于内存的认证,代码如下:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.password.NoOpPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

@Configuration
public class MyWebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Bean
    PasswordEncoder passwordEncoder(){
        return NoOpPasswordEncoder.getInstance();
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication()
                .withUser("admin").password("123").roles("ADMIN","USER")
                .and()
                .withUser("sang").password("123").roles("USER");
    }
}

代码解释:自定义 MyWebSecurityConfig 继承自 WebSecurityConfigurerAdapter ,并重写 configure(AuthenticationManagerBuilder auth) 方法,在此方法中配置两个用户,配置完成后,重启 Spring Boot项目,就可以使用这里配置的两个角色进行登陆了

发布了9 篇原创文章 · 获赞 17 · 访问量 2924

猜你喜欢

转载自blog.csdn.net/qq_43647359/article/details/104516261
今日推荐