从 Wicket 访问 SPRING_SECURITY_LAST_EXCEPTION

发布于 2024-09-18 20:01:56 字数 194 浏览 5 评论 0原文

我想创建一个 Wicket 面板作为默认(但不太漂亮)Spring Security 登录页面的替代品。表单本身并不是什么大事,因为它只是 HTML,但我还想查看登录错误。

我看到许多包含 ${SPRING_SECURITY_LAST_EXCEPTION} 的 JSP 片段用于查看身份验证错误,但如何从 Wicket 访问此参数?

I want to create a Wicket panel as a replacement for the default (and not so beautiful) Spring Security Login page. The form itself is not a big thing, because it's just HTML, but I also want to view Login errors.

I saw many JSP snippets containing ${SPRING_SECURITY_LAST_EXCEPTION} for viewing authentication errors, but how can I access this parameter from Wicket?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

痴骨ら 2024-09-25 20:01:56

从 WicketPanel 访问此异常,例如:

import org.apache.wicket.markup.html.panel.Panel;

public class LogInMenuPanel extends Panel {

    @Override
    protected void onBeforeRender() {
        super.onBeforeRender();

        HttpSession session = ((ServletWebRequest)this.getRequest()).getHttpServletRequest().getSession();
        Throwable exception = (Throwable) session.getAttribute(WebAttributes.AUTHENTICATION_EXCEPTION);

        //do something with exception
    }

}

Accessing this exception from WicketPanel, for example:

import org.apache.wicket.markup.html.panel.Panel;

public class LogInMenuPanel extends Panel {

    @Override
    protected void onBeforeRender() {
        super.onBeforeRender();

        HttpSession session = ((ServletWebRequest)this.getRequest()).getHttpServletRequest().getSession();
        Throwable exception = (Throwable) session.getAttribute(WebAttributes.AUTHENTICATION_EXCEPTION);

        //do something with exception
    }

}
无敌元气妹 2024-09-25 20:01:56

虽然我从未尝试过,但我认为应该是这样:

编辑:我现在修复了错误

    Request request = RequestCycle.get().getRequest();
    Object lastException = WebUtils.getSessionAttribute(
        ((ServletWebRequest) request).getHttpServletRequest(),
        WebAttributes.AUTHENTICATION_EXCEPTION
    );

请参阅

While I have never tried it, I think this should be the way:

EDIT: I fixed the bug now

    Request request = RequestCycle.get().getRequest();
    Object lastException = WebUtils.getSessionAttribute(
        ((ServletWebRequest) request).getHttpServletRequest(),
        WebAttributes.AUTHENTICATION_EXCEPTION
    );

See

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文