0
我使用Spring安全性3.1和ExtJS作爲前端。 這是我的security-config.xml文件。ExtJS Spring安全性3.1返回JSON true或false
<security:http auto-config="true" use-expressions="true">
<security:intercept-url pattern="/login.html" access="permitAll()" />
<security:intercept-url pattern="/**.html" access="isAuthenticated()" />
<security:form-login login-page="/login.html"
authentication-failure-url="/login.html"
default-target-url="/index.html" always-use-default-target="true"/>
<security:logout/>
</security:http>
我的ExtJS 4.0登錄控制器。
doLogin: function(formItem) {
var loadingMask = new Ext.LoadMask(Ext.getBody(), {msg:"Logging in..."});
loadingMask.show();
var lp = formItem.up('loginpanel');
var form = lp.getForm();
console.log(form);
form.submit({
clientValidation: true,
method: 'POST',
url: "j_spring_security_check",
/*
params: {
newStatus: 'delivered'
},
*/
success: function() {
loadingMask.destroy();
window.location = '/index.html';
Ext.Msg.alert('Success', action.result.msg);
},
failure: function(form, action) {
form.reset();
loadingMask.destroy();
switch (action.failureType) {
case Ext.form.action.Action.CLIENT_INVALID:
Ext.Msg.alert('Failure', 'Form fields may not be submitted with invalid values');
break;
case Ext.form.action.Action.CONNECT_FAILURE:
Ext.Msg.alert('Failure', 'Ajax communication failed');
break;
case Ext.form.action.Action.SERVER_INVALID:
Ext.Msg.alert('Failure', action.result.msg);
}
}
});
我的Spring登錄控制器。現在
public class LoginController {
private static final Logger logger = LoggerFactory.getLogger(LoginController.class);
@RequestMapping(value = "/login.html", method = RequestMethod.GET)
public String login(Model model, @RequestParam(required=false) String message) {
model.addAttribute("message", message);
return "login";
}
如果我點擊登錄按鈕的形式,它被重定向到index.html的,但在index.html的ExtJS的期待JSON字符串真的還是假的,它是扔我JSON錯誤。
Uncaught You're trying to decode an invalid JSON String:
我開始知道AuthenticationProcessingFilter已被刪除。現在我需要通過登錄控制器返回成功真正的字符串。任何幫助,將不勝感激 。