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

Spring Boot:如何从Postman请求的Bearer Token中提取用户名?

从Bearer Token提取用户名的实操方案

你的场景里,Web应用请求时getRemoteUser()能正常返回,是因为应用内已经完成了认证上下文的传递,但Postman直接发请求时没有走这套上下文流程,所以只能从请求头的Bearer Token里提取用户名。

核心前提

你的Bearer Token几乎肯定是JWT(JSON Web Token),这是当前主流的认证Token格式,下面分两种场景给出解决方案:


1. 轻量手动解析(快速验证/测试场景)

JWT由Header.Payload.Signature三段组成,中间的Payload是Base64URL编码的JSON,里面包含用户身份信息(通常是sub字段,也可能是username):

// 从请求头提取Token
String authHeader = request.getHeader("Authorization");
String jwtToken = null;
if (authHeader != null && authHeader.startsWith("Bearer ")) {
    // 去掉"Bearer "前缀,拿到纯Token字符串
    jwtToken = authHeader.substring(7);
}

if (jwtToken != null) {
    // 拆分JWT的三段
    String[] jwtParts = jwtToken.split("\\.");
    if (jwtParts.length == 3) {
        // 解码Payload部分(Base64URL解码)
        String payloadJson = new String(Base64.getUrlDecoder().decode(jwtParts[1]));
        
        // 用JSON工具解析,这里以Jackson为例
        ObjectMapper objectMapper = new ObjectMapper();
        JsonNode payloadNode = objectMapper.readTree(payloadJson);
        
        // 提取用户名:根据你的Token实际字段调整,常见字段是"sub"或"username"
        String username = payloadNode.get("sub").asText();
        // 或者 String username = payloadNode.get("username").asText();
    }
}

2. 安全解析(生产环境推荐)

手动解析跳过了签名验证,存在伪造Token的风险,生产环境建议用对应框架的JWT解析工具,比如Spring Security的JwtDecoder:

// 注入Spring Security的JwtDecoder(需要提前配置好密钥/公钥)
@Autowired
private JwtDecoder jwtDecoder;

public String extractUsernameFromToken(String authHeader) {
    if (authHeader == null || !authHeader.startsWith("Bearer ")) {
        return null;
    }
    String jwtToken = authHeader.substring(7);
    // 解析并验证Token签名、有效期等
    Jwt jwt = jwtDecoder.decode(jwtToken);
    // 提取用户名,字段名根据实际Token调整
    return jwt.getClaim("sub").asString();
}

关键注意点

  • 先确认Token的Payload字段:可以把Token复制到本地JSON解析工具(比如IDEA的JSON插件)解码后查看,确保用对字段名(不要依赖在线工具,避免泄露敏感信息)
  • 生产环境必须验证Token的合法性:包括签名、有效期、受众(aud)等,防止恶意伪造的Token
  • 如果你的Token不是JWT,是自定义格式,需要联系Token生成方获取解析规则

内容的提问来源于stack exchange,提问作者Rachan R K

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 02:05:12