SpringBoot进阶教程(八十)Spring Security

打印 上一主题 下一主题

主题 907|帖子 907|积分 2721

Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充实使用了Spring IoC,DI(控制反转Inversion of Control ,DIependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。
v基于formLogin认证

1.1 添加maven引用
  1.         <dependency>
  2.             <groupId>org.springframework.boot</groupId>
  3.             <artifactId>spring-boot-starter-security</artifactId>
  4.         </dependency>
复制代码
1.2 配置应用属性
  1. server.port=8300
复制代码
1.3 添加demo的controller
  1. /**
  2. * @Author chen bo
  3. * @Date 2023/12
  4. * @Des
  5. */
  6. @RestController
  7. public class HomeController {
  8.     @GetMapping("/hello")
  9.     public String hello(){
  10.         return "Security demo.";
  11.     }
  12. }
复制代码
1.4 运行项目 当Spring项目中引入了Spring Security依赖的时候,项目会默认开启如下配置:security.basic.enabled=true
这个配置开启了一个表单认证,所有服务的访问都必须先过这个认证,默认的用户名为user,密码由Sping Security自动生成,回到IDE的控制台,可以找到密码信息:
 
运行项目并访问http://localhost:8300/hello 效果图如下:

输入对应的默认用户名user,和输入ide控制台打印的密码,即可完成登录授权成功哀求接口。
v基于HttpBasic认证

HttpBasic验证方式是Spring Security中实现登录最简单的方式,这种方式并不安全,不适合web项目中使用,但是它是 一些主流认证的基础,spring security中默认的认证就是HttpBasic。
创建一个配置类(如SecurityConfig)继承org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter,这个抽象类并重写configure(HttpSecurity http)方法。 WebSecurityConfigurerAdapter是由Spring Security提供的Web应用安全配置的适配器:
  1. /**
  2. * @Author chen bo
  3. * @Date 2023/12
  4. * @Des
  5. */
  6. @Configuration
  7. public class SecurityConfig extends WebSecurityConfigurerAdapter {
  8.     @Override
  9.     protected void configure(HttpSecurity http) throws Exception {
  10.         http.httpBasic()                // HttpBasic
  11. //        http.formLogin()              // 表单方式
  12.                 .and()
  13.                 .authorizeRequests()  // 授权配置
  14.                 .anyRequest()         // 所有请求
  15.                 .authenticated();     // 都需要认证
  16.     }
  17. }
复制代码
运行项目并访问http://localhost:8300/hello 效果图如下:

Spring Security默认是使用form验证登录的,但是form会比基础验证轻微慢一点,当然也安全一些。如果是内部使用不需要form的话,则可以思量使用HttpBasic验证方式。
v自定义用户名和密码

如果我们不想每次去查看Spring Security随机提供的密码以及我们想使用我们自己的用户名,那我我们只需要简单配置一下就可以实现。
更新配置
  1. spring.security.user.name=xxxxxx
  2. spring.security.user.password=xxxxxx
复制代码
v源码地点

https://github.com/toutouge/javademosecond/tree/master/security-demo

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户云卷云舒

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表