上一篇中基本的spring security已经加入到项目当中,本篇将spring security链接数据库
首先,将数据表插入到数据库当中
创建用户表、角色表、用户角色表,并插入跟上一篇相对应的数据
我项目当中Id用的是char(32),这里就不修改了,可以按照自己项目目前的结构进行修改。
- CREATE TABLE `user_role` (
- `id` char(32) NOT NULL,
- `role_id` char(32) DEFAULT NULL,
- `user_id` char(32) DEFAULT NULL,
- `create_date` datetime DEFAULT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- insert into ` user_role `(`id`,`role_id`,`user_id`,`create_date`) values ('402846814019e1b0014019e27eed0000','402846814019e1b0014019e27eed0000','402846814019e1b0014019e27eed0000','2013-07-29 00:00:00'),('402846814019e1b0014019e27eed0001','402846814019e1b0014019e27eed0001','402846814019e1b0014019e27eed0000','2013-07-29 00:00:00'),('402846814019e1b0014019e27eed0002','402846814019e1b0014019e27eed0001','402846814019e1b0014019e27eed0001','2013-07-29 00:00:00');
- CREATE TABLE `role ` (
- `id` char(32) NOT NULL,
- `role_no` varchar(4) DEFAULT NULL,
- `role_name` varchar(128) DEFAULT NULL,
- `role_des` varchar(512) DEFAULT NULL,
- `disable` tinyint(1) DEFAULT '0',
- `creat_date` datetime DEFAULT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- insert into `role`(`id`,`role_no`,`role_name`,`role_des`,`disable`,`creat_date`) values ('402846814019e1b0014019e27eed0000','1','ROLE_ADMIN','管理员角色',0,NULL),('402846814019e1b0014019e27eed0001','2','ROLE_USER','用户角色',0,NULL);
- CREATE TABLE `user` (
- `id` char(32) NOT NULL,
- `username` varchar(64) DEFAULT NULL,
- `pwd` varchar(64) DEFAULT NULL,
- `enabled` int(11) NOT NULL DEFAULT '1',
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- insert into `user`(`id`,`username`,`pwd`,`enabled`) values ('402846814019e1b0014019e27eed0000','admin','admin',1),('402846814019e1b0014019e27eed0001','sozhike','111111',1);
查询用户帐户的sql
- select u.username,u.pwd,u.enabled
- from user as u
- where u.username = 'admin'
查询用户权限的sql
- select u.username,r.role_name
- from user as u
- join user_role as p
- on u.id = p.user_id
- join role as r
- on r.id = p.role_id
- where u.username = 'admin'
注意:
上面的sql,返回的结构不能修改,不然会抛出错误哦。也就是查询用户的时候,需要返回用户名+密码+是否启用,查询用户权限时,需要返回用户名+role名
修改applicationContext-security.xml
- <authentication-manager>
- <authentication-provider>
- <user-service>
- <user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN" />
- <user name="sozhike" password="111111" authorities="ROLE_USER" />
- </user-service>
- </authentication-provider>
- </authentication-manager>
改为
- <authentication-manager>
- <authentication-provider>
- <jdbc-user-service data-source-ref="dataSource"
- users-by-username-query="select u.username,u.pwd,u.enabled
- from user as u
- where u.username = ?"
- authorities-by-username-query="select u.username,r.role_name
- from user as u
- join user_role as p
- on u.id = p.user_id
- join role as r
- on r.id = p.role_id
- where u.username = ?"/>
- </authentication-provider>
- </authentication-manager>
重启项目,用第一篇的数据测试,OK啦
原创文章,转载请标明出处(http://sunliyings17.iteye.com/blog/1915008),谢谢
未完待续.....
相关推荐
在Spring Boot项目中,可以通过以下方式配置Spring Security OAuth2: 1. 添加依赖:引入`spring-security-oauth2-server`和`spring-security-oauth2-client`库。 2. 配置OAuth2服务器:创建`...
在这个项目中,我们将探讨如何将Spring Security集成到SSH项目中,实现基于数据库验证的用户授权登录功能。 首先,Spring Security是Spring生态体系中的一个核心组件,主要用于提供认证和授权服务,确保Web应用的...
标题中提到的"Spring集成SpringSecurity依赖包"应该包含了这些必要的依赖,包括Spring Security本身和可能的Spring MVC依赖。 2. **配置Spring Security**:创建一个配置类,继承自`WebSecurityConfigurerAdapter`...
在本项目中,我们将探讨如何将Spring Security与SSH(Struts2、Spring、Hibernate)框架整合,以实现一个完整的基于数据库的用户认证和授权系统。 SSH是Java开发中常用的三大框架组合,它们各自负责不同的职责:...
在Spring Security 3.0.5.RELEASE版本中,我们看到了一系列稳定且强大的安全特性,这些特性对于开发人员构建安全的SSH(Spring、Struts和Hibernate)应用程序至关重要。 一、Spring Security基础 1. **认证机制**...
3. **配置整合**:在SSH项目中,我们需要在struts2的配置文件中添加Spring Security的过滤器链,如`<filter>`标签,以及在Spring的配置文件中定义Spring Security的相关bean,如`http`、`authentication-manager`等...
在实际项目中,SSH+Spring Security+MySQL的集成可能涉及以下步骤: 1. 配置Struts2和Spring Security的拦截器,确保请求被正确地路由和过滤。 2. 设计并实现用户实体类、角色实体类以及它们之间的关联,使用...
在第一种方法中,Spring Security的示例项目`spring-security-samples-tutorial-3.0.2.RELEASE`提供了硬编码配置的参考,它演示了如何在XML配置文件中定义用户、密码和权限。这种方法适合初学者快速了解Spring ...
在"ssh+security"的组合中,SSH可能指的是服务器端的身份验证和加密通信,而Spring Security则负责应用层的权限管理和访问控制。这种结合可以构建一个强大的权限管理系统,不仅保护了网络通信的安全,还确保了用户对...
总之,“oauth2-client-springsecurity5.zip”项目提供了一个实战案例,演示了如何在Spring Boot应用中集成OAuth2客户端和Spring Security 5,使开发者能够安全、高效地处理用户授权。通过阅读和运行这个示例,你将...
Spring Security 是一个强大的和高度可定制的身份验证和访问控制...同时,标签中的"ssh3源码"可能是指Spring Security的旧版本,但现代版本已经更新到Spring Security 5.x,所以要确保查阅的是最新版本的文档和源码。
在开始这些方法之前,确保你已经搭建了SSH2(Struts2、Spring、Hibernate)的基础环境,并且已经安装了Spring Security 3.0.2及其所需的jar包,包括`spring-security-acl`、`spring-security-config`、`spring-...
标题 "spring security 使用数据库管理资源" 指的是在Spring Security框架中,通过数据库来存储和管理权限与资源的相关配置。这一做法使得安全控制更为灵活,可以动态地更新和扩展系统的访问控制。Spring Security是...
在这个"Spring Security 3.1.3案例"中,我们将探讨这个版本的一些核心概念和特性,以及如何利用它们来保护你的应用程序。 首先,让我们了解Spring Security的基本架构。它主要由四个主要组件组成:认证、授权、访问...
在数据访问层,Spring Data JPA和Spring Data MongoDB等子项目提供了与各种数据存储的集成,简化了数据库操作。5.1.10.RELEASE版本可能会包含对JPA规范的最新实现,以及对NoSQL数据库的支持增强。 事务管理是Spring...
在Spring Security 3中,有四种常见的使用方式来实现用户认证和授权。 1. **全配置文件方式**: 在这种模式下,所有的用户信息、权限和资源URL都被硬编码在XML配置文件中。这包括用户账户、他们的密码(通常加密后...
在给定的"springsecurity"项目中,我们可以看到一个基于SSH(Spring、Struts2、Hibernate)框架实现的Web应用。SSH框架组合提供了MVC模式、持久层支持和业务逻辑管理,而Spring Security则负责处理安全方面的需求。 ...
8. **SSH集成**:SSH(Struts2、Hibernate、Spring)是一个常见的Java Web开发栈,Spring Security可以很好地与Struts2整合,提供统一的安全控制。 9. **数据库集成**:在`springmvc数据库.txt`中,很可能包含了...
SSH项目是一个基于Java技术栈的Web应用程序实例,它集成了Spring、Struts和Hibernate三个核心框架,用于构建高效、可维护的企业级应用。这个“爱心宠物医院系统”就是这样一个示例,展示了如何在J2EE环境中开发和...
在这个示例项目中,我们有三个关键的数据表: 1. **用户表**:存储用户的登录信息,如用户名、密码和联系方式等。在权限系统中,每个用户都有特定的权限和角色。 2. **权限表**:定义了系统中的各种操作或资源,...