《Spring Boot官方指南》28.安全

简介:

28. 安全

如果Spring Security位于类路径上,那么Web应用程序将默认使用所有HTTP端点上的’basic’身份验证。要向Web应用程序添加方法级安全性,还可以为你想要的设置添加“@EnableGlobalMethodSecurity”。通过点击Spring Security Reference能够找到更多的信息。

‘AuthenticationManager’ 有一个默认用户(用户名为’user’ ,密码随机,在应用程序启动时在INFO级别输出)

Using default security password: 78fa095d-3f4c-48b1-ad50-e24c31d5cf35
Note
如果您调整过日志配置,请确保将“org.springframework.boot.autoconfigure.security”日志级别设置为“INFO”,否则将不打印默认密码。

您可以通过配置“security.user.password”更改默认密码。更多的属性通过SecurityProperties来获取(属性前缀 “security”)。

默认安全配置在从(在用于Web安全的’SpringBootWebSecurityConfiguration’和非web应用程序中相关用于认证配置的“AuthenticationManagerConfiguration”)那里导入的类“SecurityAutoConfiguration”中实现。你可以添加一个@EnableWebSecurity注解的Bean来关闭默认Web应用程序安全性配置完全(这不会禁用身份验证管理器配置或执行器的安全性)。要定制它,通常使用外部属性和类型为’WebSecurityConfigurerAdapter’的bean(例如,添加基于表单的登录)。您也可以添加一个类型为“AuthenticationManager”的bean来关闭身份验证管理器配置,或者通过将“AuthenticationManagerBuilder”自动注入到“@Configuration”类中的方法来配置全局“AuthenticationManager”。在Spring Boot samples中有几个security应用的常见例子来开始你的旅程。

在web应用中能够开箱即用的基础功能:

  • 具有内存存储和单一用户的类型为“AuthenticationManager”的Bean(请参阅为“SecurityProperties.User”的用户属性)。
  • 忽略(不安全)带有公共静态资源地址(’/ css / **’,’/ js / **’,’/ images / **’,’/ webjars / **’和’** / favicon.ico) ‘)的路径。
  • 其他所有端点的HTTP基础安全。
  • 发布到Spring的ApplicationEventPublisher的Security事件(成功和失败的身份验证和拒绝访问)。
  • Spring security在默认情况下提供常见的低级功能 (HSTS,XSS,CSRF,缓存)

上述所有的功能都可以通过修改外部属性(security.*)来打开和关闭。要在不更改任何其他自动配置功能的情况下覆盖访问规则,请添加“类型为“WebSecurityConfigurerAdapter”,注解@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)的@Bean,并配置它以满足您的需要。

Note
默认情况下,’WebSecurityConfigurerAdapter’ 将匹配任何路径。如果你不想要完全覆盖Spring Boot自动配置访问规则,您的适配器必须显式配置要覆盖的路径。

 转载自 并发编程网 - ifeve.com

相关文章
|
XML Java 应用服务中间件
Spring Boot 两种部署到服务器的方式
本文介绍了Spring Boot项目的两种部署方式:jar包和war包。Jar包方式使用内置Tomcat,只需配置JDK 1.8及以上环境,通过`nohup java -jar`命令后台运行,并开放服务器端口即可访问。War包则需将项目打包后放入外部Tomcat的webapps目录,修改启动类继承`SpringBootServletInitializer`并调整pom.xml中的打包类型为war,最后启动Tomcat访问应用。两者各有优劣,jar包更简单便捷,而war包适合传统部署场景。需要注意的是,war包部署时,内置Tomcat的端口配置不会生效。
2953 17
Spring Boot 两种部署到服务器的方式
|
12月前
|
Java 数据库 微服务
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——指定项目配置文件
在实际项目中,开发环境和生产环境的配置往往不同。为简化配置切换,可通过创建 `application-dev.yml` 和 `application-pro.yml` 分别管理开发与生产环境配置,如设置不同端口(8001/8002)。在 `application.yml` 中使用 `spring.profiles.active` 指定加载的配置文件,实现环境快速切换。本节还介绍了通过配置类读取参数的方法,适用于微服务场景,提升代码可维护性。课程源码可从 [Gitee](https://gitee.com/eson15/springboot_study) 下载。
511 0
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
757 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
安全 Java 测试技术
如何在 Spring Boot 中禁用 Actuator 端点安全?
如何在 Spring Boot 中禁用 Actuator 端点安全?
3127 1
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
974 2
|
安全 Java 对象存储
安全性考量:Spring Security与Netflix OSS在微服务安全中的作用
安全性考量:Spring Security与Netflix OSS在微服务安全中的作用
244 1
|
缓存 NoSQL Java
Springboot自定义注解+aop实现redis自动清除缓存功能
通过上述步骤,我们不仅实现了一个高度灵活的缓存管理机制,还保证了代码的整洁与可维护性。自定义注解与AOP的结合,让缓存清除逻辑与业务逻辑分离,便于未来的扩展和修改。这种设计模式非常适合需要频繁更新缓存的应用场景,大大提高了开发效率和系统的响应速度。
647 2
|
安全 Java API
构建基于Spring Boot的REST API安全机制
构建基于Spring Boot的REST API安全机制
|
安全 Java 数据安全/隐私保护
Spring Boot中的安全漏洞防护
Spring Boot中的安全漏洞防护
|
安全 Java 数据库连接
Spring Boot 优雅关机时异步线程安全优化
Spring Boot 优雅关机时异步线程安全优化
596 1