springsecurity如何自定义登录页面

springsecurity默认为我们提供了一个登录页面,在登录页面,如果填入的用户名和密码不匹配后端设置,那么就会在当前页面弹出错误提示,这个页面很简单,而且是单调的。在实际开发中,有时候,为了让登录页面更加的美观和展现定制化的内容,我们需要自定义登录页面。

自定义登录页面需要改变的地方在以下几处:

1、security配置文件中增加form-login标签,并配置登录成功和失败的跳转页面。另外还需要配置csrf标签。


          
          
            
            
            
     

2、编写一个页面login.jsp,并在页面中指定几个主要的值(action,csrf)。

${error}
${msg}
" method="post">

3、定义一个跳转到登录页面的方法。

@RequestMapping(value="/login",method=RequestMethod.GET)
public ModelAndView loginPage(@RequestParam(name="error",required=false)String error,
                              @RequestParam(name="logout",required=false)String logout){
	ModelAndView page = new ModelAndView();
	page.setViewName("login");
	page.addObject("title", "login");
	if(error != null){
		page.addObject("error", "Invalid username or password.");
	}
	if(logout != null){
		page.addObject("msg", "You've been logged out successfully.");
	}
	return page;
}

在登录成功跳转的主页中,如果需要退出,我们可以这样配置退出链接。



   welcome you,${pageContext.request.userPrincipal.name }
   Logout

		 

做了这些工作之后,再进行测试。

进入需要权限的页面,提示登录。

springsecurity如何自定义登录页面_第1张图片

输入错误登录用户名或者密码提示Invalid username or password

springsecurity如何自定义登录页面_第2张图片

登录成功跳转页面

springsecurity如何自定义登录页面_第3张图片

点击退出登录,退出登录。

springsecurity如何自定义登录页面_第4张图片

全部代码地址:https://github.com/yangfei2013/springsecuritydemo

你可能感兴趣的:(java)