Java 从Wicket访问SPRING\u SECURITY\u LAST\u异常
我想创建一个Wicket面板来替换默认(但不是很漂亮)的Spring安全登录页面。表单本身不是什么大事,因为它只是HTML,但我也想查看登录错误Java 从Wicket访问SPRING\u SECURITY\u LAST\u异常,java,spring-security,wicket,Java,Spring Security,Wicket,我想创建一个Wicket面板来替换默认(但不是很漂亮)的Spring安全登录页面。表单本身不是什么大事,因为它只是HTML,但我也想查看登录错误 我看到许多JSP代码段包含查看身份验证错误的${SPRING\u SECURITY\u LAST\u EXCEPTION},但是如何从Wicket访问此参数?虽然我从未尝试过,但我认为应该是这样的: 编辑:我现在修复了bug Request request = RequestCycle.get().getRequest(); Obje
我看到许多JSP代码段包含查看身份验证错误的
${SPRING\u SECURITY\u LAST\u EXCEPTION}
,但是如何从Wicket访问此参数?虽然我从未尝试过,但我认为应该是这样的:
<>编辑:我现在修复了bug
Request request = RequestCycle.get().getRequest();
Object lastException = WebUtils.getSessionAttribute(
((ServletWebRequest) request).getHttpServletRequest(),
WebAttributes.AUTHENTICATION_EXCEPTION
);
看
- (Spring,Javadoc)
- (Spring,JavaDoc)
- (Spring,JavaDoc)
- (Wicket,JavaDoc)
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
}
}
谢谢,但这最终导致了一个java.lang.ClassCastException:org.apache.wicket.protocol.http.servlet.ServletWebRequest无法转换为javax.servlet.http.HttpServletRequest.Ok,我刚刚找到了一种获取HttpServletRequest的方法:HttpServletRequest req=((ServletWebRequest)getRequest()).getHttpServletRequest();所以,现在我没有例外,但是getSessionAttribute方法返回null,即使我提供了错误的凭据。好的,我现在修复了我的错误,但我很惊讶它不起作用,因为这正是spring的人正在做的事情,例如: