2013-11-25 1 views
0

У меня есть веб-приложение с использованием Spring 3.2. Процесс входа в систему выполняется с помощью весенней безопасности. Когда пользователь дает URL-адрес для просмотра профиля конкретного пользователя, он перенаправляет страницу входа в систему, если он не зарегистрирован. Мне нужно вернуться к профилю пользователя, если он не был успешно зарегистрирован. Поскольку я использую угловые js, мои urls находятся в формеspring security and angularjs перенаправляя обратно к указанному URL-адресу после входа в систему

http://mydomain.com/#/view-profile/71 для просмотра профиля . Если я не зашел в систему, он будет перенаправлен на страницу входа. В браузере url становится http://mydomain.com/login#/view-profile/71, но после успешного входа он не перенаправляется на указанный URL. Как я могу это сделать с помощью angularjs.

В app.js я дал как этот

$routeProvider.when('/view-profile/:id', 
    { 
     templateUrl: '/partials/editor/view-profile.htm', 
     action: 'kc.view-profile', 
     resolve: { 
      loadData: ViewCtrl.loadUserProfile 
     } 
    } 
); 

И для аутентификации в security.xml написано как

<http use-expressions="true"> 
      <!-- Authentication policy --> 
      <form-login login-page="/login" login-processing-url="/j_security_check" authentication-failure-url="/login?error=true"/> 
      <logout logout-url="/signout" delete-cookies="JSESSIONID" /> 
      <intercept-url pattern="/assets/**" access="permitAll" /> 
      <intercept-url pattern="/application/signin/**" access="permitAll" /> 
      <intercept-url pattern="/application/signup/**" access="permitAll" /> 
      <intercept-url pattern="/application/manage/**" access="ROLE_EDITOR" /> 
      <interce 

pt-url pattern="/application/**" access="isAuthenticated()" /> 
     <!--<intercept-url pattern="/application/connect/**" access="permitAll" />--> 
    </http> 


    <authentication-manager alias="authenticationManager"> 
     <authentication-provider user-service-ref="userDao"> 
      <password-encoder ref="passwordEncoder"/> 
     </authentication-provider> 
    </authentication-manager> 
+0

возможно дубликат [Обработка angularjs URL в весенней безопасности Как перенаправить обратно в URL с # в нем] (http://stackoverflow.com/questions/20186410/handling-angularjs-url-in-s pring-security-how-to-redirect-back-to-url-with-in) –

+1

Дублированный вопрос удален автором. – joragupra

ответ

1

Spring Security не поддерживает Ajax логин не охваченной ящик, поэтому ваше приложение работает некорректно.

Вы можете посмотреть на этом примере приложение, которое обрабатывает Ajax входа/выхода из системы с AngularJS + Spring Security:

https://github.com/jhipster/jhipster-sample-app

я должен был реализовать некоторые конкретные обработчики Ajax, как вы можете увидеть здесь:

https://github.com/jhipster/jhipster-sample-app/tree/master/src/main/java/com/mycompany/myapp/security

+0

Пример приложения, который вы указали, выглядит действительно хорошо, если у вас есть форма входа в систему. И мне очень понравилось, как работают скрипты http-auth-interceptor. Но я пытаюсь найти практически ту же концепцию, кроме Spring Security, которая реализуется с помощью концепции SSO, такой как Siteminder. Это было бы большой помощью для многих людей. Благодаря ! Очень ценю вашу работу :) – PavanSandeep

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