SpringBoot进阶教程(八十)Spring Security

cnblogs 2024-08-12 08:09:00 阅读 74

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

v基于formLogin认证

1.1 添加maven引用

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-security</artifactId>

</dependency>

1.2 配置应用属性

server.port=8300

1.3 添加demo的controller

/**

* @Author chen bo

* @Date 2023/12

* @Des

*/

@RestController

public class HomeController {

@GetMapping("/hello")

public String hello(){

return "Security demo.";

}

}

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应用安全配置的适配器:

/**

* @Author chen bo

* @Date 2023/12

* @Des

*/

@Configuration

public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Override

protected void configure(HttpSecurity http) throws Exception {

http.httpBasic() // HttpBasic

// http.formLogin() // 表单方式

.and()

.authorizeRequests() // 授权配置

.anyRequest() // 所有请求

.authenticated(); // 都需要认证

}

}

运行项目并访问http://localhost:8300/hello 效果图如下:

请叫我头头哥

Spring Security默认是使用form验证登录的,但是form会比基础验证稍微慢一点,当然也安全一些。如果是内部使用不需要form的话,则可以考虑使用HttpBasic验证方式。

v自定义用户名和密码

如果我们不想每次去查看Spring Security随机提供的密码以及我们想使用我们自己的用户名,那我我们只需要简单配置一下就可以实现。

更新配置

spring.security.user.name=xxxxxx

spring.security.user.password=xxxxxx

v源码地址

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

作 者:请叫我头头哥

出 处:http://www.cnblogs.com/toutou/

关于作者:专注于基础平台的项目开发。如有问题或建议,请多多赐教!

版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我

声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。