`

Spring security 从数据库查询权限验证

阅读更多

1. 定义相关表

-- 用户表, username and password 为验证条件
create table users(
    username varchar(50) not null primary key,
    password varchar(50) not null,
    enabled int not null
);
-- 权限验证表
create table authorities (
    username varchar(50) not null,
    authority varchar(50) not null,
    constraint fk_authorities_users foreign key(username) references users(username)
);
--  创建索引
create unique index ix_auth_username on authorities (username,authority);
-- 插入测试数据
insert into users(username,password,enabled) values('admin','admin',true);
insert into users(username,password,enabled) values('user','user',true);
insert into users(username,password,enabled) values('scott','user',false);

insert into authorities(username,authority) values('admin','ROLE_ADMIN');
insert into authorities(username,authority) values('admin','ROLE_USER');
insert into authorities(username,authority) values('user','ROLE_USER');
-- 查询
select * from users

 2. 配置 security 配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">
	<!-- http请求映射配置 -->
	<http auto-config="true">
		<intercept-url pattern="/admin.jsp" access="ROLE_ADMIN"/>
		<intercept-url pattern="/user.jsp" access="ROLE_USER"/>
	</http>
	
	<beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<beans:property name="driverClassName" value="com.mysql.jdbc.Driver"/>
		<beans:property name="url" value="jdbc:mysql:///privilege"/>
		<beans:property name="username" value="root"/>
		<beans:property name="password" value="admin"/>
	</beans:bean>
	
	<!-- 权限认证管理 -->
    <authentication-manager>
        <authentication-provider>
        	<!-- 权限从数据库中查询出来,需要数据源 -->
        	<jdbc-user-service data-source-ref="dataSource"/>
        </authentication-provider>
    </authentication-manager>
</beans:beans>
分享到:
评论

相关推荐

    Spring Security 基于数据库的权限管理配置

    下面将详细阐述如何进行Spring Security的数据库权限管理配置。 1. **配置数据源** 在Spring Security中,我们需要一个数据源来连接到数据库,存储用户、角色和权限信息。在Spring Boot项目中,可以通过...

    spring security与数据库交互实现简单例子

    在这个简单的例子中,我们将探讨如何利用Spring Security与数据库进行交互来实现用户认证和授权。 首先,`applicationContext-security.xml`是Spring Security的配置文件,它定义了安全相关的bean和规则。这个文件...

    spring security 使用数据库管理资源

    3. **JDBC Authentication Provider**:Spring Security提供了JDBCAuthenticationProvider类,用于通过SQL查询从数据库中验证用户。需要配置数据源和相应的SQL查询语句。 4. **RoleHierarchy**:如果存在角色层级...

    SpringBoot集成Spring Security实现权限控制【完整源码+数据库】

    Spring Security可以与MySQL等数据库集成,使用`UserDetailsService`从数据库加载用户信息。项目提供的`sql`文件可能包含了预设的用户和角色数据。 6. **IDEA集成**:`idea`标签表明这个项目是使用IntelliJ IDEA...

    SpringSecurity 2 权限基于数据库--完整DEMO(带数据库文件)

    - SpringSecurity支持从数据库中动态加载权限信息。DEMO中的数据库文件包含用户、角色和权限的关系表,如`users`, `authorities`, 和 `roles`。通过这些表,SpringSecurity可以获取用户的权限信息,实现动态权限...

    spring security自定义数据库小项目

    设计合理的数据库模型是实现数据库权限的关键。通常,我们会创建如下表: - 用户表(users):存储用户名、密码、状态等信息。 - 角色表(roles):存储角色名称,如 "ROLE_USER"、"ROLE_ADMIN" 等。 - 用户角色...

    spring security用数据库的示例

    在"spring security用数据库的示例"中,我们将深入探讨如何配置Spring Security以使用数据库进行用户管理和权限控制。 首先,Spring Security的核心组件包括Authentication(认证)和Authorization(授权)。认证是...

    Spring Security 3连接数据库查询实例

    在本实例中,我们将深入探讨如何配置Spring Security 3以连接数据库并执行查询,以及其核心组件的工作原理。 首先,我们看到配置文件中的 `,这是Spring Security的核心组件之一,它负责定义过滤器链。`...

    spring Security Json 数据库登录验证

    在这个主题中,我们将深入探讨如何在Spring Boot应用中使用Spring Security进行JSON数据库登录验证。 首先,`pom.xml`是Maven项目的核心配置文件,这里我们需要引入Spring Security的相关依赖,例如`spring-boot-...

    SpringSecurity-数据库认证-简单授权

    在这个“SpringSecurity-数据库认证-简单授权”的主题中,我们将深入探讨如何结合SpringSecurity与数据库来实现用户身份验证和权限管理。 首先,我们需要理解SpringSecurity的核心组件。`Authentication`代表认证,...

    Spring Security in Action

    Spring Security 是一个基于 Java 的安全框架,旨在提供身份验证、授权和访问控制等功能。下面是 Spring Security 的主要知识点: 一、身份验证(Authentication) 身份验证是指对用户身份的验证,以确保用户的...

    springsecurity角色和权限

    Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于保护基于Java的Web应用程序。这个框架提供了全面的安全解决方案,包括用户身份验证、角色分配、权限管理以及对HTTP请求的细粒度过滤。让...

    spring-security使用数据库用户认证

    Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于保护基于Java的应用程序。在本主题中,我们将深入探讨如何使用Spring Security与数据库配合,实现用户认证。这一过程涉及多个步骤,包括...

    spring security用户权限项目

    **Spring Security 用户权限项目概述** Spring Security 是一个强大的安全框架,专为 Java 应用程序设计,用于处理身份验证和授权。在这个项目中,它被用来实现用户权限管理,确保只有授权的用户才能访问特定的资源...

    Spring Security数据库认证实例(dao认证)

    **Spring Security数据库认证实例(dao认证)** Spring Security是一个强大且高度可定制的身份验证和访问控制框架,广泛用于Java企业级应用的安全管理。在数据库认证的场景中,Spring Security允许我们存储用户信息和...

    10-SpringSecurity 数据库DB验证.zip

    总结来说,这个Spring Security数据库验证的示例展示了如何在Spring Boot应用中集成Spring Security,通过数据库验证用户身份,设置不同的访问权限,并使用安全的密码编码策略。这样的实践有助于构建安全、健壮的Web...

    SpringSecurity学习总结源代码

    SpringSecurity是Java开发中用于构建安全Web应用的框架,它提供了强大的身份验证、授权和访问控制功能。在本文中,我们将深入探讨SpringSecurity的核心概念、关键组件以及如何配置和使用这个框架。 首先,Spring...

    spring security 完整项目实例

    角色和权限验证是Spring Security的核心功能之一。通过RoleHierarchy接口,我们可以定义角色的层次结构。权限验证则基于AccessDecisionManager和AccessDecisionVoter,它们决定了用户是否有权访问特定的资源。通常,...

    SpringSecurity+OAuth2+JWT分布式权限控制.zip

    本项目“SpringSecurity+OAuth2+JWT分布式权限控制”旨在提供一个完整的解决方案,帮助开发者构建安全的、基于微服务的分布式应用程序。 Spring Security 是一个强大的和高度可定制的身份验证和授权框架,适用于...

    SpringBoot + SpringSecurity + JPA 实现用户角色权限登录认证

    2. **SpringSecurity**:SpringSecurity是一个用于保护Web应用的安全框架,提供了身份验证、授权等功能。它通过一系列拦截器对HTTP请求进行过滤,确保只有经过认证和授权的用户才能访问特定资源。在这个项目中,...

Global site tag (gtag.js) - Google Analytics