无法检索关联的错误并在登录页面中显示

时间:2016-11-08 04:22:59

标签: angularjs spring-security

使用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=trueauthentication-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"/>

1 个答案:

答案 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}}