Spring security custom login form with ui router as a nested view -
i working on spring boot project spring security , angularjs (using ui-router). want use custom login page nested view of "index.html". problem "login" nested view called separate page. nested view "static/views/home.html" workin well: don't know if spring security don't accept nested views? have create full page login? please help?
// app.js ui-router config app.config(['$stateprovider', '$urlrouterprovider',function($stateprovider, $urlrouterprovider) { $urlrouterprovider.otherwise('/home'); $stateprovider // home states , nested views ======================================== .state('login', { url: '/login', templateurl: 'login' }) .state('home', { url: '/home', templateurl: 'home' }) //static/index.html <!doctype html> <html lang="fr" ng-app="app"> <head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- css --> <link rel="stylesheet" href="css/angular-material.min.css"> <link rel="stylesheet" href="css/font-awesome.min.css"> <link rel="stylesheet" href="css/main.css"> <!-- scripts --> <!-- angular.js libraries --> <script src="js/angular.min.js"></script> <script src="js/angular-animate.min.js"></script> <script src="js/angular-aria.min.js"></script> <script src="js/angular-messages.min.js"></script> <script src="js/angular-ui-router.min.js"></script> <!-- angular material library --> <script src="js/angular-material.min.js"></script> <!-- application main script --> <script src="js/app.js"></script> </head> <body ng-controller="appctrl"> <div ui-view></div> </body> </html> // "static/views/login.html" <div layout="column" layout-align="center center" layout-fill="layout-fill" class="md-padding" ng-cloak> <div class="loginbox md-whiteframe-z1" layout="column"> <md-toolbar> <h2 class="md-toolbar-tools"><span>authentification</span></h2> </md-toolbar> <form action="submit" methods="post"> <md-content class="md-padding" layout="column"> <md-input-container> <label>nom d'utilisateur</label> <md-icon><i class="fa fa-user fa-2x"></i></md-icon> <input type="text" ng-model="username"/> </md-input-container> <md-input-container> <label>mot de passe</label> <md-icon><i class="fa fa-lock fa-2x"></i></md-icon> <input type="password" ng-model="password"/> </md-input-container> <div layout="row" layout-align="center center" style="padding-top:20px"> <md-button class="md-raised md-primary" type="submit"> connexion </md-button> <div flex="flex"></div> <md-button href="" md-no-ink="md-no-ink">mot de passe oubliƩe?</md-button> </div> </md-content> </form> </div> </div> //web controller code @controller public class webconfig { @requestmapping(value = "/", method = requestmethod.get) public string getindex() { return "/index.html"; } @requestmapping(value = "/login", method = requestmethod.get) public string getlogin() { return "/views/login.html"; } @requestmapping(value = "/home", method = requestmethod.get) public string gethome() { return "/views/home.html"; } } //spring security config @configuration @enablewebsecurity public class websecurityconfig extends websecurityconfigureradapter { @override protected void configure(authenticationmanagerbuilder auth) throws exception { auth.inmemoryauthentication().withuser("admin").password("123").roles("admin").and().withuser("user") .password("456").roles("user"); } @override protected void configure(httpsecurity http) throws exception { http.authorizerequests().antmatchers("/home").permitall().anyrequest().authenticated().and().formlogin() .loginpage("/login").permitall().and().csrf().disable(); } }
Comments
Post a Comment