You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot项目Postman连接失败及授权密码配置求助

问题解决方案

一、版本兼容逻辑梳理(避免后续踩坑)

  • Spring Boot 2.5.x 仅支持Java 8至16,Java 22的类文件主版本号66超出其兼容范围,因此会触发Unsupported class file major version 66错误。
  • Spring Boot 3.x 全面切换到Jakarta EE规范,原javax.servlet包已替换为jakarta.servlet,手动引入旧的javax依赖会导致类找不到,直接使用Spring Boot starter-web自动管理依赖即可规避该问题。

二、自定义Spring Security登录密码

Spring Boot 3.x默认启用Security,控制台生成临时密码是默认行为,以下两种方式可实现自定义:

1. 配置文件直接设置(简单场景)

application.properties:

# 自定义用户名
spring.security.user.name=admin
# 加密后的密码(必须使用加密串,明文会报错,推荐BCrypt算法)
spring.security.user.password={bcrypt}$2a$10$Z8kLxq9f7G3y2w1v0u9i8o7p6n5m4l3k2j1h0g9f8e7d6c5b4a3
# 配置用户角色
spring.security.user.roles=ADMIN,USER
  • 生成BCrypt加密串的快速方法:编写临时Java类运行即可:
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

public class GenPassword {
    public static void main(String[] args) {
        System.out.println(new BCryptPasswordEncoder().encode("你的明文密码"));
    }
}

将输出的加密字符串复制到配置项中,前面需加上{bcrypt}指定加密算法。

application.yml格式:

spring:
  security:
    user:
      name: admin
      password: '{bcrypt}$2a$10$Z8kLxq9f7G3y2w1v0u9i8o7p6n5m4l3k2j1h0g9f8e7d6c5b4a3'
      roles: ADMIN,USER

2. 配置类自定义(复杂场景,如多用户/细粒度权限)

若需要更灵活的用户配置,创建Security配置类:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
@EnableWebSecurity
public class SecurityConfig {

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
            .authorizeHttpRequests(auth -> auth
                .requestMatchers("/projectonethree/**").authenticated() // 指定需要认证的接口路径
                .anyRequest().permitAll()
            )
            .formLogin(form -> form.permitAll()) // 开启表单登录
            .logout(logout -> logout.permitAll());
        return http.build();
    }

    @Bean
    public UserDetailsService userDetailsService() {
        UserDetails adminUser = User.withUsername("admin")
            .password(passwordEncoder().encode("admin123"))
            .roles("ADMIN")
            .build();
        UserDetails normalUser = User.withUsername("user")
            .password(passwordEncoder().encode("user123"))
            .roles("USER")
            .build();
        return new InMemoryUserDetailsManager(adminUser, normalUser);
    }

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
}

三、其他错误排查建议

  • ECONNREFUSED:确认项目启动日志中显示的端口为8083;检查端口是否被占用(Windows用netstat -ano | findstr 8083,Linux/Mac用lsof -i :8083);核对Postman请求地址是否完全正确。
  • 401 Unauthorized:检查Postman的Basic Auth是否使用了正确的用户名密码;若为接口请求,确认请求头中的授权信息是否正确携带。

内容的提问来源于stack exchange,提问作者Venkatesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 19:25:13