1
我試圖讓使用這種形式的登錄與ExtJS的形成:春季安全3 ExtJS的 - 登錄頁面 - 不重定向到家裏
{
xtype : 'form',
name: 'authenticationBox',
width: 250,
bodyPadding:5,
fieldDefaults: {
msgTarget: 'side',
labelWidth: 75
},
defaultType: 'textfield',
url:'j_spring_security_check',
items:[{
fieldLabel: 'Login',
name: 'j_username',
allowBlank:false
},{
fieldLabel: 'Password',
inputType: 'password',
name: 'j_password',
allowBlank:false
}],
buttons: [{
text: 'Reset',
action: 'reset'
},{
text: 'Submit',
action:'auth'
}]
}
和按鈕的處理程序是:
onSubmitLogin : function(button){
var me = this,
form = button.up().up().getForm();// get the basic form
if (form.isValid()) { // make sure the form contains valid data before submitting
form.submit({
success: function(form, action) {
Ext.Msg.alert('Success', action.result.msg);
},
failure: function(form, action) {
console.log(action.result);
//var msg = action.result.msg;
Ext.Msg.alert('Failed', 'failed');
}
});
} else { // display error alert if the data is invalid
Ext.Msg.alert('Invalid Data', 'Please correct form errors.');
}
}
我安全上下文XML是:
<http auto-config="true" disable-url-rewriting="true"
use-expressions="true">
<intercept-url pattern="/login" access="permitAll" />
<intercept-url pattern="/public" access="permitAll" />
<intercept-url pattern="/logout" access="permitAll" />
<intercept-url pattern="/accessdenied" access="permitAll" />
<intercept-url pattern="/home" access="authenticated" />
<form-login login-page="/login" default-target-url="/home"
authentication-failure-url="/accessdenied"/>
<logout logout-success-url="/logout" />
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="vitorn" password="password1" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
我有這樣的控制器:
@RequestMapping(value = "/"+HOME_PAGE_NAME)
public ModelAndView showHomePage() {
logger.info("trying to show home!");
String username = getUsername();
if(!username.equals(ANONYMOUS_USER)){
logger.info("authenticated - show home!");
return new ModelAndView(HOME_PAGE_NAME);
}
//ModelAndView model = new ModelAndView(LOGIN_PAGE_NAME);
return new ModelAndView(LOGIN_PAGE_NAME);
}
@RequestMapping(value="/login", method = RequestMethod.GET)
public ModelAndView openLoginPage() {
logger.info("trying to show login!");
ModelAndView model = new ModelAndView(LOGIN_PAGE_NAME);
return model;
}
當我進行登錄谷歌瀏覽器,我看到我的網絡價值觀爲j_username後:vitorn 爲j_password:密碼1,但沒有任何迴應後,我看到重定向到與此錯誤主頁:未捕獲Ext.JSON.decode ():你試圖解碼一個無效的JSON字符串:
我讀過很多教程沒有成功。成功登錄後,我可以更改自動重定向到主頁嗎?