Доступ к SPRING_SECURITY_LAST_EXCEPTION из калитки - PullRequest
4 голосов
/ 14 сентября 2010

Я хочу создать панель Wicket в качестве замены стандартной (и не такой красивой) страницы входа в Spring Security. Сама форма не так уж важна, потому что это всего лишь HTML, но я также хочу просмотреть ошибки входа в систему.

Я видел много фрагментов JSP, содержащих ${SPRING_SECURITY_LAST_EXCEPTION} для просмотра ошибок аутентификации, но как я могу получить доступ к этому параметру из Wicket?

Ответы [ 2 ]

2 голосов
/ 30 сентября 2011

Доступ к этому исключению из 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
    }

}
0 голосов
/ 15 сентября 2010

Хотя я никогда не пробовал, я думаю, что так и должно быть:

РЕДАКТИРОВАТЬ: я исправил ошибку сейчас

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

См.

...