使用Tomcat启动Spring Boot时的用户名和密码是什么?

2022-08-31 06:42:00

当我通过Spring Boot部署我的Spring应用程序并访问时,我必须进行身份验证,但是用户名和密码是什么,或者我该如何设置它?我试图将其添加到我的文件中,但它不起作用:localhost:8080tomcat-users

<role rolename="manager-gui"/>
    <user username="admin" password="admin" roles="manager-gui"/>

这是应用程序的起点:

@SpringBootApplication
public class Application extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }
}

这是Tomcat依赖关系:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

如何在 上进行身份验证?localhost:8080


答案 1

我认为您的类路径上有Spring Security,然后spring安全性会自动配置默认用户并生成密码

请查看您的 pom.xml 文件:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

如果你在你的pom中有这个,那么你应该有一个日志控制台消息,如下所示:

Using default security password: ce6c3d39-8f20-4a41-8e01-803166bb99b6

在浏览器提示符下,您将导入控制台中打印的用户和密码。user

或者,如果您想配置弹簧安全性,可以查看Spring Boot安全示例

“安全性”部分的“Spring Boot 参考”文档中对此进行了说明,它指出:

The default AuthenticationManager has a single user (‘user’ username and random password, printed at `INFO` level when the application starts up)

Using default security password: 78fa095d-3f4c-48b1-ad50-e24c31d5cf35

答案 2

如果在类路径中添加 jar,并且如果它是应用程序,则所有 http 端点都将由默认安全配置类保护spring-securityspring-bootSecurityAutoConfiguration

这会导致浏览器弹出窗口要求输入凭据。

每个应用程序的密码更改将重新启动,并且可以在控制台中找到。

Using default security password: 78fa095d-3f4c-48b1-ad50-e24c31d5cf35

要在默认值前面添加您自己的应用程序安全层,

@EnableWebSecurity
public class SecurityConfig {

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth
            .inMemoryAuthentication()
                .withUser("user").password("password").roles("USER");
    }
}

或者,如果您只想更改密码,则可以覆盖默认值,

应用.xml

security.user.password=new_password

应用程序.属性

spring.security.user.name=<>
spring.security.user.password=<>

推荐