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

Spring Boot集成Azure AD认证后返回页面名称而非HTML内容问题

问题根因

  1. 你在onInit方法上添加了@ResponseBody注解,该注解会强制Spring MVC将方法返回值直接作为HTTP响应体输出,不会触发视图解析器渲染HTML页面,因此只会返回纯文本的视图名称。你在接入Azure AD调整代码时误加了这个注解,才导致之前正常的视图渲染逻辑失效。
  2. 你的代码存在括号匹配错误,将视图返回逻辑写在了日志级别判断的分支中:只有当TRACE级日志开启时才会返回首页,否则直接返回错误页,完全不符合你预期的业务逻辑。

修复方案

  • 删除onInit方法上的@ResponseBody注解,让返回的字符串可以被识别为视图名,交由视图解析器处理。
  • 修正业务逻辑的括号层级,把视图返回逻辑从日志判断分支中移出,修正后代码如下:
@RequestMapping(value = "/")
@PreAuthorize("hasRole('ROLE_group1')"
              + "|| hasRole('ROLE_group2')"
              + "|| hasRole('ROLE_group3')")
public String onInit(
        Model model, 
        @RequestHeader(value = "LIST", defaultValue = "group1") String groups,
        @RequestHeader(value = "USERNAME", defaultValue = "shubham") String userName) {
    
    if (userName != null && !userName.isEmpty()) {
        LOG.trace("<< onInit() Navigating to Home");
        return "newhome";
    } else {
        LOG.trace("<< onInit() Navigating to Error");
        return "error";
    }             
}
  • 确认模板文件存放在正确路径,若使用Thymeleaf等模板引擎,相关依赖没有缺失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 06:15:07