2013-09-30 2 views
1

я пытаюсь сделать Войти с ExtJS форме, используя эту форму:Spring Security 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; 
} 

Когда я сделать вход на Google Chrome, я вижу свой пост в сети со значениями j_username: vitorn j_password: Password1, но без какого-либо ответа, и после я вижу перенаправление на главную страницу с этой ошибкой: неперехваченным Ext.JSON.decode(): Вы пытаетесь декодировать недопустимую строку JSON:

Я прочитал много учебников без успеха. Могу ли я изменить автоматически перенаправить на домашнюю страницу после успешного входа?

ответ

Смежные вопросы