博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot安全管理 ——模块1:Spring Security的基本配置
阅读量:3947 次
发布时间:2019-05-24

本文共 2064 字,大约阅读时间需要 6 分钟。

Spring Security的基本配置

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

org.springframework.boot
spring-boot-starter-security
org.springframework.boot
spring-boot-starter-web

只要在项目中添加 spring-boot-starter-security 依赖,项目中所有资源都会被保护起来

2.创建一个Controller,并添加一个简单的测试接口,内容如下:

@RestControllerpublic 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=sangspring.security.user.password=123spring.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;@Configurationpublic 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项目,就可以使用这里配置的两个角色进行登陆了

转载地址:http://niqwi.baihongyu.com/

你可能感兴趣的文章
原生js实现生成随机验证码=------Sestid
查看>>
js实现购物时选带属性的商品------Sestid
查看>>
点击出现对应界面(第二个界面可以选择显示内容)------Sestid
查看>>
Js实现炫酷仿抖罗盘时钟------Sestid
查看>>
vivo官网鼠标触碰图片拉长------Sestid
查看>>
canvas画布实现的集中效果
查看>>
Js实现点击置顶效果(带动画)
查看>>
Js实现input全选、全不选、反选功能------Sestid
查看>>
纯css实现好看的背景------Sestid
查看>>
为什么我的CSDN上都是开关灯??????Js实现开灯关灯特效
查看>>
Js实现生成自定义输入行列宽高表格------Sestid
查看>>
Js实现购物车加减,价格计算等功能
查看>>
Js自定义快捷键并实现上下左右移动
查看>>
面试看这里!!!2020年前端面试知识点(持续更新)
查看>>
纯CSS实现轮播图------Sestid
查看>>
CSS实现自动播放相册------Sestid
查看>>
JavaScript四种基础的排序方法
查看>>
这里有美女!!!!抖音上很火的3D立体动态相册的实现(纯CSS)
查看>>
一张图让您看懂git,看不懂我也没办法了。。。。。。。。
查看>>
Es6字符串和数组的新方法---自己在控制台都可以看到
查看>>