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

新手上路,请多包涵

当我通过 Spring Boot 部署我的 Spring 应用程序并访问 localhost:8080 我必须进行身份验证,但用户名和密码是什么或如何设置?我试图将此添加到我的 tomcat-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 上进行身份验证?

原文由 Gustavo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

我认为你的类路径上有 Spring Security,然后 spring security 自动配置了默认用户和生成的密码

请查看您的 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 Security,您可以查看 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

原文由 Marcel Dias 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果 spring-security 在类路径中添加了 jar 并且如果它是 spring-boot 应用程序所有 http 端点将由默认安全配置类 SecurityAutoConfiguration

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

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

 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=新密码

要么

应用程序.properties

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

原文由 Vino 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏