我创建了以下由 Spring Security 6 保护的 API 端点。
@Controller
public class HelloController {
@GetMapping("/")
public String hello() {
return "index";
}
}
依赖关系如下所示。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity6</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
我还没有定义
SecurityConfig
类或 UserDetails
对象。我只想使用 Spring Security 生成的默认用户名 user
和默认密码。但是,当我启动该应用程序时,没有生成默认密码。需要什么配置吗
从 Spring Boot 3.2.2 开始,您必须在
application-yaml
中配置名称和密码,请参阅 Spring Boot 3.2 发行说明:
自动配置用户详细信息服务
当
、InMemoryUserDetailsManager
和spring-security-oauth2-client
中的一个或多个位于类路径上时,自动配置的spring-security-oauth2-resource-server
现在会退出,并且从 3.2.2 开始,spring-security-saml2-service-provider
和spring.security.user.name
均未配置。同样,在反应式应用程序中,当spring.security.user.password
和MapReactiveUserDetailsService
中的一个或多个是类路径之一时,自动配置的spring-security-oauth2-client
现在会退出,并且从 3.2.2 开始,spring-security-oauth2-resource-server
和spring.security.user.name
均未配置.spring.security.user.password
如果您正在使用上述依赖项之一,但在应用程序中仍需要 InMemoryUserDetailsManager 或 MapReactiveUserDetailsService,请在应用程序中定义所需的 bean,或者使用 Spring Boot 3.2.2 及更高版本,配置 spring.security.user 之一或两者。名称和 spring.security.user.password。