一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

spring secruity 数据库方式配置用户登录

时间:2013-12-16 编辑:简简单单 来源:一聚教程网

前几天学习了,直接在XML中配置用户密码,利用spring security 登录的例子。这种方式适合做演示,真实的项目在大多数情况下都会用数据库或者LDAP来做用户管理. 所以今天继续学习利用数据库方式配置用户登录, 在前面例子的基础上做,最主要的改变如下:

增加数据库相关的jar包
所有用到的jar包如下,有可能有多余的.

 程序代码

 代码如下 复制代码

antlr-2.7.7.jar
aopalliance.jar
commons-logging-1.1.jar
jstl-1.1.2.jar
mysql-connector-java-3.1.12-bin.jar
spring-aop-3.2.4.RELEASE.jar
spring-aspects-3.2.4.RELEASE.jar
spring-beans-3.2.4.RELEASE.jar
spring-context-3.2.4.RELEASE.jar
spring-context-support-3.2.4.RELEASE.jar
spring-core-3.2.4.RELEASE.jar
spring-e­xpression-3.2.4.RELEASE.jar
spring-jdbc-3.2.4.RELEASE.jar
spring-security-config-3.1.4.RELEASE.jar
spring-security-core-3.1.4.RELEASE.jar
spring-security-web-3.1.4.RELEASE.jar
spring-tx-3.2.4.RELEASE.jar
spring-web-3.2.4.RELEASE.jar
spring-webmvc-3.2.4.RELEASE.jar
standard-1.1.2.jar

 

新建数据库,并插入测试数据
数据库脚本如下

 程序代码

 代码如下 复制代码

Create TABLE `users` (
  `USER_ID` INT(10) UNSIGNED NOT NULL,
  `USERNAME` VARCHAR(45) NOT NULL,
  `PASSWORD` VARCHAR(45) NOT NULL,
  `ENABLED` tinyint(1) NOT NULL,
  PRIMARY KEY (`USER_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Create TABLE `user_roles` (
  `USER_ROLE_ID` INT(10) UNSIGNED NOT NULL,
  `USER_ID` INT(10) UNSIGNED NOT NULL,
  `AUTHORITY` VARCHAR(45) NOT NULL,
  PRIMARY KEY (`USER_ROLE_ID`),
  KEY `FK_user_roles` (`USER_ID`),
  CONSTRAINT `FK_user_roles` FOREIGN KEY (`USER_ID`) REFERENCES `users` (`USER_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Insert INTO users (USER_ID, USERNAME,PASSWORD, ENABLED)
VALUES (100, 'yihaomen', '123456', TRUE);

Insert INTO user_roles (USER_ROLE_ID, USER_ID,AUTHORITY)
VALUES (1, 100, 'ROLE_USER');

 

这样在数据库security 中就建立了 users 表以及 user_roles表,并插入了记录.

配置spring securtiy 的数据库认证方式


 程序代码

 代码如下 复制代码


       
                            users-by-username-query="
                    select username,password, enabled
                    from users where USERNAME=?"                
                authorities-by-username-query="
                    select u.username, ur.authority from users u, user_roles ur
                    where u.user_id = ur.user_id and u.username =?  "                    
            />
       

   

 

启动程序,运行结果如下,


程序代码下载 ,去掉了jar包,自己添加,完整实例下载:http://file.111com.net/download/2013/12/a35.zip

热门栏目