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

前几天学习了,直接在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 的数据库认证方式

 程序代码

 代码如下 复制代码

<authentication-manager>
        <authentication-provider>
            <jdbc-user-service data-source-ref="dataSource"               
                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 =?  "                    
            />
        </authentication-provider>
    </authentication-manager>

 

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

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

时间: 2024-09-14 21:59:56

spring secruity 数据库方式配置用户登录的相关文章

spring secruity XML方式配置用户登录学习笔记

很久以前用过spring security , 那个时候还是 2.0 版本的, 而且当时是项目组的另外的成员负责权限设计这一块,我只是皮毛了解一些 (只知道可以通过xml配置实现权限控制,实现资源与用户角色之间的关系配置,通过一连串的filter 来实现整个认证和授权过程).一直没有系统的学习下  spring security ,现在有机会了,不过 spring security 变成了3.0 以上的版本了, 基础的知识以及介绍,官方也有详细的文档.就一步一步按照文档试验吧,做一个简单的基于x

SQLServer2005混合模式登录配置(用户登录错误18452,233,4064)_mssql2005

一.错误提示:用户登录失败,该用户与可信SQL Server连接无关联 错误18452 原因是远程登录没配置好,配置方法如下: 1:开启SQL2005远程连接功能 配置工具->SQLServer外围应用配置器->服务和连接的外围应用配置器->打开SQLEXPRESS下的DataBase Engine节点,选择远程连接,选择"同时使用TCP/IP和named pipes",确定后,重启数据库服务. 2:登录改为混合模式 打开管理器,用windows方式连接进入数据库,右

mongodb创建数据库和配置用户方法详解

1.安装mongodb 这步就不说了,大家自己去看linux/47932.htm">Centos安装MongoDB. 2.创建数据库 use tt 这样就创建了一个数据库,如果什么都不操作离开的话,这个库就会被系统删除.所以我们还要执行下面的命令: db.usr.insert({'name':'tompig'}); db.usr.insert({'name':'tompig1','id':1}); 我是随便整了2个表,这个无所谓的,反正要导入表的话就删除掉这2个就可以了,目前我们只是想让数

Spring Security4.1.3实现拦截登录后向登录页面跳转方式(redirect或forward)返回被拦截界面

一.看下内部原理 简化后的认证过程分为7步: 用户访问网站,打开了一个链接(origin url). 请求发送给服务器,服务器判断用户请求了受保护的资源. 由于用户没有登录,服务器重定向到登录页面 填写表单,点击登录 浏览器将用户名密码以表单形式发送给服务器 服务器验证用户名密码.成功,进入到下一步.否则要求用户重新认证(第三步) 服务器对用户拥有的权限(角色)判定: 有权限,重定向到origin url; 权限不足,返回状态码403("forbidden"). 从第3步,我们可以知道

64位centos 5.6编译安装vsftpd-2.3.4的两种用户登录配置

服务器搭建FTP是首要的任务了.虚拟用户登录比本地用户登录安全系数高.因为vsftpd虚拟用户,并不是系统的账号,也就仅用来支持Vsftpd服务用,因此没有许可他登陆系统的必要,比直接设定本地用户登录账号为登陆系统的用户安全性高. 一.文章要点: 1.64位系统下使用了PAM数据方式的虚拟用户配置 2.修改关键脚本,是编译成功通过.必要步骤,详细安装配置说明过程. 3.完全配置实例,Centos5.6编译安装vsftpd-2.3.4(配置本地用户登录.虚拟用户登录) 下载 wget http:/

利用Spring IOC技术实现用户登录验证机制_java

利用 Spring IOC 技术实现用户登录的验证机制,对用户进行登录验证. 首先利用 Spring 的自动装配模式将 User 对象注入到控制器中,然后将用户输入的用户名和密码与系统中限定的合法用户的用户名和密码进行匹配. 当用户名与密码匹配成功时,跳转到登录成功页面:当用户名与密码不匹配时,跳转到登录失败的页面. 1.创建 User 对象,定义用户名和密码属性,代码如下: package com.importnew; public class User { private String us

Intellij IDEA 构建Spring Web项目 — 用户登录功能

原文:Intellij IDEA 构建Spring Web项目 - 用户登录功能 相关软件: 1.Intellij IDEA14:http://pan.baidu.com/s/1nu16VyD 2.JDK7:http://pan.baidu.com/s/1dEstJ5f 3.Tomcat(apache-tomcat-6.0.43):http://pan.baidu.com/s/1kUwReQF 4.MySQL(mysql-essential-5.1.68-winx64):http://pan.b

整合JSF、Hibernate、Spring实现用户登录应用

本文使用的开发包为:jsf 1.2_04+hibernate 3.2.2.ga+spring 2.0.5,开发环境为jdk 1.5+myeclipse 6.0+mysql 5.0. 一.三层设计 本文实现的功能虽然简单,但是仍然采用了三层的设计: 1)数据访问层:本文使用Hibernate实现数据访问. 2)业务逻辑层:本文使用Spring组织业务逻辑. 3)表示层,本文使用JSF进行前台显示. 分层的好处在于:有利于系统的扩展性.伸缩性和维护性. 下面让我们演示每一层具体是如何做的,在开始之前

用spring springMVC mybatis实现用户登录验证,成功登录后显示用户数据

问题描述 用spring springMVC mybatis实现用户登录验证,成功登录后显示用户数据 ? 登陆成功后,将所有用户数据展示给用户,列出用户详细信息,并分页.用拦截器判断,如果没有登陆的话返回登陆页面并提示用户没有登陆 配置全部都写好了 求大神给写个 登录验证的页面 跟 登录成功后的页面 万分感谢! 急!!! 解决方案 http://download.csdn.net/detail/fengqilove520/8405907 解决方案二: SpringMVC + Mybatis 实现