`
ynp
  • 浏览: 439375 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多
spring security与数据库交互实现简单例子

最近几天一直在研究spring security,也一直苦于找不到个合适的例子,好多例子都跑不起来。经过查找和研究终于搞定了个例子。

用xml配置写好的简单,现在跑的是与数据库交互的例子

----------> 配置文件
<?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.0.xsd">

	<!-- 配置数据库 -->
	<beans:bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<beans:property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
		<beans:property name="url" value="jdbc:oracle:thin:@localhost:1521:aqms" />
		<beans:property name="username" value="airgis" />
		<beans:property name="password" value="airgisynp" />
	</beans:bean>	
	
    <http auto-config='true' >
    	<!-- 自定义的登录页面 -->
      	<form-login login-page="/login.jsp"/>
      	
        <intercept-url pattern="/login.jsp" filters="none"/>
        <!-- 以下两个<intercept-url 的顺序是不可随便条换的,否则user用户也能登陆/admin.jsp页面 -->
        <intercept-url pattern="/admin.jsp" access="ROLE_ADMIN"/>
        <intercept-url pattern="/**" access="ROLE_USER" />
        
        <session-management>
        	<concurrency-control max-sessions="1" error-if-maximum-exceeded="true" />
        </session-management>
    </http>
    
	<authentication-manager>
	    <authentication-provider >
	    <!-- 配置实现
	        <user-service>
	            <user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN" />
	            <user name="user" password="user" authorities="ROLE_USER" />
	        </user-service>
	      -->   
	      <!-- 数据库实现 -->
	    	<jdbc-user-service data-source-ref="dataSource"/>
	    </authentication-provider>
	</authentication-manager>
	
	<!-- 国际化 -->
	<beans:bean id="messageSource"
	    class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
	  <beans:property name="basename" value="classpath:messages_zh_CN"/>
	</beans:bean>


</beans:beans>

----------->数据库

----------用户表----

-- Create table
create table USERS
(
  USERNAME   VARCHAR2(50) not null,
  PASSWORD   VARCHAR2(50) not null,
  ENABLED    INTEGER not null,
  NAME       VARCHAR2(50) not null,
  MANAGER_ID VARCHAR2(50),
  SALARY     INTEGER
)
tablespace AQMS_TEST
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );
-- Create/Recreate primary, unique and foreign key constraints
alter table USERS
  add primary key (USERNAME)
  using index
  tablespace AQMS_TEST
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );
alter table USERS
  add constraint FK_USERS_MANAGER foreign key (MANAGER_ID)
  references USERS (USERNAME);


----------权限表----

-- Create table
create table AUTHORITIES
(
  USERNAME  VARCHAR2(50) not null,
  AUTHORITY VARCHAR2(50) not null
)
tablespace AQMS_TEST
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );
-- Create/Recreate primary, unique and foreign key constraints
alter table AUTHORITIES
  add constraint FK_AUTHORITIES_USERS foreign key (USERNAME)
  references USERS (USERNAME);


  其他的配置按部就班,jar包最好从spring security里自带的例子里粘出来(当然也可以通过maven进行jar进行依赖管理)。
  附件为一个复杂点的实现的配置文件。
  参考了 http://www.docin.com/app/p?id=48666835,谢谢吴老师

分享到:
评论

相关推荐

    springboot+springSecurity+jwt实现登录认证后令牌授权

    在这个项目中,我们将探讨如何利用Spring Boot、Spring Security和JWT来实现登录认证后的令牌授权。 首先,让我们从Spring Boot开始。Spring Boot简化了Spring应用的初始搭建以及开发过程。通过提供默认配置,它极...

    spring security2 例子

    在这个"spring security2 例子"中,我们可能会探索如何利用Spring Security 2版本来保护我们的应用程序。Spring Security 2虽然已经较为老旧(最新的版本是5.x),但它仍能帮助我们理解基本的安全概念和架构。 首先...

    Spring Security例子源代码

    Spring Security可以与任何支持JDBC的数据库进行交互,通常使用UserDetailsService接口来加载用户信息。在这个例子中,你可能会看到一个自定义的UserDetailsService实现,它从数据库查询用户信息,包括用户名、密码...

    Spring Security 安全实例-数据库应用(用户从数据库中获取) 2

    在本实例中,我们将深入探讨如何使用Spring Security框架来实现基于数据库的安全管理,尤其是在用户认证和授权方面。Spring Security是一个强大的、高度可配置的安全框架,适用于Java和Java EE应用程序。它提供了一...

    spring security acl 实例

    在这个实例中,我们将会深入探讨如何在Spring Security框架下,结合MySQL数据库来实现一个完整的ACL系统。 首先,我们需要了解Spring Security的基本概念。Spring Security是一个强大的安全框架,为Java应用提供了...

    用Spring实现登陆验证(数据库,积分增加)

    Spring提供了JdbcTemplate或JPA等工具来与数据库交互。为了验证用户输入的用户名和密码,我们需要查询数据库以检查这些凭据是否匹配。 3. **积分系统** 当用户成功登录后,我们可以利用Spring的事件驱动模型来触发...

    spirng框架之spring security(一)和spirng框架之spring security(二)的示例代码

    在这个示例代码中,我们将深入探讨如何在Spring框架中集成Spring Security来实现用户登录认证与授权功能,以及如何利用RBAC(Role-Based Access Control)权限模型进行动态菜单管理。 1. **Spring Security 基础** ...

    spring-security-jdbc

    在本文中,我们将深入探讨其与JDBC(Java Database Connectivity)的集成,即Spring Security JDBC,它是Spring Security实现用户认证和授权的一种常见方式。 首先,让我们理解Spring Security的基本架构。Spring ...

    spring-security-samples-contacts-2.0.4

    - 可以与其他Spring Boot功能结合,如Spring Data JPA,简化数据库交互。 通过这个示例,你可以学习到Spring Security的基础用法,以及如何将其与MySQL数据库整合,为一个简单的联系人应用提供安全支持。实践中,...

    maven+springmvc+springsecurity+hibernate框架整合开发源代码

    本项目“maven+springmvc+springsecurity+hibernate框架整合开发源代码”就是一个这样的例子,它巧妙地将四个关键框架——Maven、Spring MVC、Spring Security和Hibernate融合在一起,构建了一个高效且安全的Web应用...

    SPRING SECURITY配置

    Spring Security还支持OAuth2,可以与其他服务进行安全交互,如Google、Facebook登录。 ### 8. 实战案例 - **防止CSRF攻击**:Spring Security默认开启CSRF保护,可通过配置禁用或调整策略。 - **RESTful API安全*...

    使用Spring+SpringSecurity+SpringMVC的web框架小demo

    主要是为了帮助大家学习SpringSecurity和SpringMvc, 1.不用再数据库建表, 2.使用了SS提供的登录方式,在输入用户名和密码时,进入到服务器后台java文件, 3.判断如果是用户名是admin 密码123,就赋予管理员权限,...

    springmvc4.0+spring-security3.2+mybatis3.3+mysql整合的登陆功能,

    Spring MVC、Spring Security、MyBatis 和 MySQL 是四个在企业级Web开发中广泛使用的开源框架和技术。本项目是将它们整合在一起实现了一个基础的登录功能,对于初学者来说,这是一个很好的学习实例。以下是对这些...

    spring security

    在本示例中,我们看到它被用来实现一个简单的权限控制系统,其中包含了与数据库交互的SQL脚本。 Spring Security 提供了全面的安全解决方案,包括用户身份验证、权限管理、会话管理以及对HTTP请求的安全过滤。它的...

    spring深入26个例子

    例子可能包含如何配置Spring Security,实现用户的登录、权限控制。 9. **Spring Test**:Spring提供了测试框架,帮助开发者进行单元测试和集成测试。例子可能会涵盖Spring Test和Mockito的使用,以确保代码质量。 ...

    idea+springboot+MySQL+jdk1.8实现简单的注册登录功能

    这个项目涵盖了Spring Boot的MVC模式、数据库操作、安全管理和前后端交互等基础概念,是学习和实践Web开发的好例子。不断迭代和优化,可以添加更多的功能,如邮箱验证、权限管理等,从而提升系统的完整性和安全性。

    restful结合spring实例,带有两个例子

    在实践中,Spring提供了多种工具和库来支持RESTful服务,如Spring Data JPA用于数据库交互,Spring Security进行身份验证和授权,Spring HATEOAS帮助构建更具语义的响应。同时,Spring Boot的自动配置和约定优于配置...

    spring security example

    同时,`WEB-INF`目录下的`jsp`子目录可能包含了与用户界面交互的JSP页面,这些页面可能通过Spring Security的标签库来实现权限控制,如显示或隐藏某些内容,或者提供登录和注销功能。 `META-INF`目录是另一个标准的...

    spring3.0通过注解实现登录简单实例

    标题 "spring3.0通过注解实现登录简单...它涉及到Spring MVC的Controller,Spring Security的认证配置,以及与数据库的交互。这个过程可以帮助开发者理解Spring框架的核心概念,并为更复杂的Web应用安全需求打下基础。

Global site tag (gtag.js) - Google Analytics