首先,您不需要控制器,Spring Security会为您处理所有这一切。因此放下控制器。
当前的问题是由于您基于JSON的帖子。这由处理登录的普通过滤器处理,但看不到
j_usernameand
j_password字段,因此将重定向(302)到登录页面(在您的情况下
/shop/home.html)询问这些字段。
基本上,您是以JSON形式发布数据,而只是将其作为ajaxified形式发布。这样,您就可以编写简单的方法
AuthenticationSuccessHandler,当一切正常时,该方法仅返回401或200状态代码(甚至是正文)。
将ajax提交更改为类似的内容应该可以使工作正常。
var data = $(this).serializeObject();$.ajax({ 'type': $(this).action, 'url': $(this).target, 'data': data}):这应该创建一个ajax表单发布。可能是您需要
preventDefault()在周围的方法中调用来停止表单的实际发布。



