J'ai la configuration de sécurité suivante avec Spring 3,2
.formLogin()
.loginPage("/login.html")
.usernameParameter("username").passwordParameter("password")
.loginProcessingUrl("/perform_login")
.defaultSuccessUrl("/welcome", false)
.failureUrl("/notexistpage")
Je suis arrivé à la conclusion que defaultSuccessUrl() et failureUrl() a été effectuée, la page liée chargée mais n'a pas tenu compte AngularJS frontend avec ng route/emplacement $.
J'ai une seule page Application sur index.html avec a le bloc ng-vue suivante, il est essentiellement un panneau d'amorçage Nav avec un bouton de connexion:
<li class="nav-item" ng-show="!authenticated">
<a class="nav-link active" id="login-tab" data-toggle="tab" role="tab" aria-controls="login" aria-expanded="true" href="#!/login">Login</a>
</li>
<div ng-view class="container"></div>
Une page de connexion serait affiché sur ng bloc -view, et je l'ai fonction ng-clic() qui introduisent la forme à la fonction javascript suivante:
$http({
method: 'POST',
url: 'perform_login',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
transformRequest: function(obj) {
var str = [];
for(var p in obj)
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
return str.join("&");
},
data: credentials
}).then(function (response) {
$rootScope.authenticated = true;
callback && callback();
}, function (response) {
$rootScope.authenticated = false;
callback && callback();
});
la page aurait un comportement différent en fonction de la réussite/échec de connexion, mais néanmoins retourner un code d'état de 200/302/304, que javascript a considéré comme un succès. Le formulaire de connexion resterait également dans le bloc, en négligeant Java Success Handler. La page a demandé le html défini dans defaultSuccessUrl(), mais il n'a pas été affiché sur la page.
Je ne pouvais que coder $ location.path ("/") après le succès de la connexion (premier rappel de javascript), et forcer l'utilisateur à se connecter avant d'accéder à n'importe quelle page.
avez-vous été en mesure de résoudre ce problème? Je suis confronté au même problème. – Med