javascript - Wicket 忽略来自 Spring 的 302 重定向

标签 javascript spring redirect wicket

我有一个 Angular + spring REST 和 Wicket 混合应用程序。 Wicket 提供 UserPage 类。此用户页面包含我的 javascript 页面。

public class UserPage extends WebPage {

public UserPage() {
    super();
}

@Override
public void renderHead(IHeaderResponse response) {
    super.renderHead(response);
    response.render(JavaScriptHeaderItem.forUrl("https://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js"));
    response.render(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(UserPage.class, "user.js")));
    response.render(CssHeaderItem.forReference(new CssResourceReference(UserPage.class, "user.css")));
}

我已经实现了一个过滤器来检查 session 是否处于事件状态,如果不是事件状态,则页面应该重定向。

WicketSession s = WicketSession.get();

if (s == null) {
    response.sendRedirect("/");
} else if (s.getUser() == null) {
    response.sendRedirect("/");
} else {
    filterChain.doFilter(request, response);
}

但是,当我在未登录的情况下运行此页面时,浏览器会收到 302 但不会重定向。仅当通过 Wicket 口提供页面时才会发生这种情况。如果我手动转到 UserPage.html,它会重定向。

有谁知道为什么会发生这种情况吗?这肯定是特定于 Wicket 口的,而且我对 Wicket 口还不太熟悉。

当尝试访问/user 时,页面保持不变,并且 html 正文作为响应数据发送,我的脚本尝试解析该数据但失败(因此所有空复选框)

当手动转到 UserPage.html 时,它会重定向。 enter image description here

有谁知道为什么 wicket 在发送 302 时不重定向?有关可能修复的任何线索吗?

最佳答案

1) 如果您将 session 数据保存在 WicketSession 中,那么它应该位于 web.xml 中 Spring 的 Filter/Servlet 之前。

如果您使用Spring Security Authentication,我建议将用户保留在Spring Security Authentication 中。

2) WicketSession.get() 永远不会返回 null。它的作用相当于“获取或创建”。您需要 if (WicketSession.exists()) {...}

关于javascript - Wicket 忽略来自 Spring 的 302 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42343725/

相关文章:

java - Spring Roo 'Encountered " "void" "void "“”

grails - Grails-根解析到页面

bash - 将多个 stdout 命令重定向到一个文件

javascript - react native : Prevent remote debugger from opening in Chrome

javascript - 轻松设置 react redux with next.js (React)

java - Wicket 测试 - AnnotApplicationContextMock - 没有应用程序附加到当前线程主线程

Spring Boot 错误 : Error creating bean with name

azure - 重定向安全域是否需要两个域上的 ssl 证书?

javascript - 为什么未执行的语句会减慢我的功能?

javascript If/Else 循环;异步问题