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

Vaadin登录后Chrome浏览器URL出现null异常求助

解决方案

1. 强制指定登录成功默认跳转路径

在SecurityConfiguration的configure(HttpSecurity http)方法中,添加登录成功后的默认跳转地址,避免Chrome因无保存请求时解析路径出现null:

@Override
protected void configure(HttpSecurity http) throws Exception {
    // 原有静态资源配置
    http.authorizeRequests().antMatchers("/public/**").permitAll();

    super.configure(http);

    // 强制登录成功后跳转到根路径(对应MainLayout的@Route(""))
    http.formLogin()
            .defaultSuccessUrl("/", true);

    setLoginView(http, LoginView.class);
}

defaultSuccessUrl("/", true)中的第二个参数true表示忽略之前保存的请求,始终跳转到指定路径,避免无保存请求时出现路径解析异常。

2. 修正LoginForm的Action路径

将LoginView中LoginForm的action改为绝对路径,确保在Chrome中请求地址解析正确:

public LoginView() {
    // 原有布局代码
    login.setAction("/login"); // 改为绝对路径"/login"
    add(new H1("Society Agri-Venture Enterprise"), login);
}

3. 清除Chrome浏览器缓存与Cookie

Chrome可能缓存了旧的会话或路由数据,导致跳转异常:

  • 打开Chrome设置,进入「隐私和安全性」→「清除浏览数据」
  • 勾选「Cookie和其他网站数据」、「缓存的图片和文件」,选择时间范围为「所有时间」后清除

4. 检查并升级Vaadin版本

部分旧版Vaadin存在Chrome浏览器下的登录跳转兼容性问题,建议升级到最新稳定版(如Vaadin 24.x系列),确保框架修复了相关浏览器兼容问题。

5. 验证MainLayout的路由配置

若希望登录后跳转到/app路径,可调整MainLayout的路由注解:

@PermitAll
@Route("app")
public class MainLayout extends AppLayout {
}

这样登录成功后会直接跳转到/app路径,避免路径解析时出现null值。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 12:54:52