我正在尝试在authentication-success-handler中做一些事情,我需要访问几个值,这些值是发布到Spring安全性的初始请求数据的一部分。 我在用户尝试登录时发布以下信息
Spring安全性能够成功验证用户并调用“authentication-success-handler
”。
public class WebshopAuthenticationSuccessHandler extends SavedRequestAwareAuthenticationSuccessHandler
{
public WebshopAuthenticationSuccessHandler() {
}
@Override
public void onAuthenticationSuccess(final HttpServletRequest request,
final HttpServletResponse response, final Authentication authentication)
throws IOException, ServletException {
ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
request.getAttribute( "storeCode" );
attr.getRequest().getAttribute( "storeCode" );
}
}
但无论如何,我无法获得storeCode
的价值及其作为null
的价值。
不确定我做错了什么。
我假设Spring在调用onAuthenticationSuccess
时创建了一个新的Request和response实例,但是如何传递/检索从登录页面传递的值?
答案 0 :(得分:3)
如果数据来自HTTP POST请求,则应使用getParameter
,而不是getAttribute
。属性仅为服务器端状态,不是由客户端提交的。