使用Spring Security进行登录验证
在之前的博客使用SpringMVC创建Web工程并使用SpringSecurity进行权限控制的详细配置方法 中,我们描述了如何配置一个基于SpringMVC、SpringSecurity框架的网站系统。在这篇博客中,我们将继续描述如何使用Spring Security进行登录验证。
总结一下Spring Security的登录验证关键步骤: 1、在数据库中建好三张表,即users、authorities和persistent_logins三个。注意字段的定义,不能少,可以多,名字必须按规定来。 2、在Spring Security的配置文件中,配置好登录跳转的页面,登录处理的页面和加密情况。 3、在前台的jsp页面中,登录的字段必须和后台users表中的一致,一般都是username和password。 4、注册页面必须自己写,注册的处理也要自己写。
一、创建数据表
使用Spring Security进行登录验证,需要我们在数据库中建好相应的表,并且字段要和Spring Security内置的字段一致。主要有3张表需要建立。一是users表,包含用户名和密码以及用户状态的表;第二个是authorities表,表明该用户角色的,方便做角色控制,比如是ROLE_USER还是ROLE_ADMIN(比如admin页面可能需要用户的ROLE_ADMIN权限,而ROLE_USER权限无法登录这个管理页面);最后一个是persistent_logins表,是登录状态的记录表,主要用来提供支持“记住我”功能的。三张表的创建语句如下:
#create users table
CREATE TABLE `users` (
`username` varchar(100) NOT NULL,
`password` () ,
`enabled` tinyint() ,
KEY `account` (`username`)
) ENGINEInnoDB CHARSETutf8;
# authorities
`authorities` (
`username` () ,
`authority` () ,
(`username`)
) ENGINEInnoDB CHARSETutf8;
# persistent_logins
`persistent_logins` (
`username` () ,
`series` () ,
`token` () ,
`last_used` ,
(`series`)
) ENGINEInnoDB CHARSETutf8;

