使用AngularJS和Spring Security时,如果身份验证失败,则会重定向到<table border="1" width="500px">
<tr>
<td style="width:200px">200</td>
<td style="width:300px">300</td>
</tr>
</table>
的登录页面。我需要在登录页面(AngularJS)上显示此错误。我不知道该怎么做。
以下是error=true
中authentication-failure-url
的声明:
ssecurity-context.xml
有些人可以告诉我如何检索错误并在登录页面上显示吗?
JS
<security:form-login login-page="/login"
login-processing-url="/authenticate"
authentication-failure-url="/login?error=true"
username-parameter="username" password-parameter="password"/>
答案 0 :(得分:0)
当您的登录尝试失败时,您将重定向到var myApp = angular.module("myApp", [ "ngRoute" ]);
myApp.config(function ($routeProvider) {
$routeProvider
.when("/login/error/:errValue",
{controller: "LoginController", templateUrl: "/partials/login.html"})
});
然后,你应该在你的angularJS上找到一个指向你想要显示的部分HTML的URL的路径,以及一个angularJS控制器,它将处理或对该URL执行适当的操作。
例如,让我们说你的路线文件看起来像这样:
with wrong credentials, I tried checking the value of errValue in the controller, but its says undefined
Below are the routes declared
$stateProvider
.state("/login",{ //this for login page
url:'/login',
templateUrl:'./resources/js/baseapp/ContactLogin/views/contactLogin.html',
controller:'contactLoginCtrl'
})
.state("/home",{
url:'/home', // this is for home page
templateUrl:'./resources/js/baseapp/ContactHome/views/ContactHome.html',
controller:'contactHomeCtrl'
})
.state("/login:error/:errValue",{ // this is for login error page
url:'/home',
templateUrl:'./resources/js/baseapp/ContactLogin/views/contactLogin.html',
controller:'contactLoginCtrl'
})
$urlRouterProvider.otherwise("/login");
现在你需要做的就是检查LoginController是否:errValue是真还是假。并对该值进行操作。
{{1}}