目录结构:src/applicationContext.xml;WebRoot/WEB-INF/security.xml;WebRoot/WEB-INF/web.xml;
配置文件:
- web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext.xml
/WEB-INF/security.xml
</param-value>
</context-param>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 延迟加载 开始-->
<filter>
<filter-name>lazy</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>lazy</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 延迟加载 结束-->
<!-- Spring 开始-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Spring 结束-->
<!-- Spring Security 开始-->
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring Security 结束-->
<!-- Spring Security 会话管理 开始-->
<listener>
<listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
<!-- Spring Security 会话管理 结束-->
</web-app>
- applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"
default-autowire="byType">
<!-- 启动注解 -->
<context:annotation-config />
<!-- 指定使用了注解的类所在包 -->
<context:component-scan base-package="com.ss3" />
<!-- 启用注解事务 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager"></bean>
<tx:annotation-driven />
<!-- 配置文件读取 -->
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
autowire="no">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}">
</property>
<property name="url" value="${jdbc.url}">
</property>
<property name="username" value="${jdbc.userName}"></property>
<property name="password" value="${jdbc.pwd}"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" autowire="byName">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:hibernate.cfg.xml">
</property>
</bean>
</beans>
- 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"
default-autowire="byType">
<http auto-config="true" access-denied-page="/deny.html">
<intercept-url pattern="/index.jsp" filters="none" />
<!-- 控制多用户登陆 -->
<session-management>
<concurrency-control max-sessions="1" error-if-maximum-exceeded="true"/>
</session-management>
<!--
增加一个filter位于FILTER_SECURITY_INTERCEPTOR之前
-->
<custom-filter ref="myFilter" before="FILTER_SECURITY_INTERCEPTOR" />
</http>
<!--
一个自定义的filter,必须包含authenticationManager,accessDecisionManager,securityMetadataSource三个属性
-->
<beans:bean id="myFilter" class="com.ss3.filter.MyFilterSecurityInterceptor"
autowire="no">
<beans:property name="authenticationManager" ref="myAuthenticationManager" />
<!-- 访问决策器,决定某个用户具有的角色,是否有足够的权限去访问某个资源 注解-->
<beans:property name="accessDecisionManager" ref="myAccessDecisionManager" />
<!-- 资源源数据定义,将所有的资源和权限对应关系建立起来,即定义某一资源被允许访问的角色 -->
<beans:property name="securityMetadataSource" ref="myInvocationSecurityMetadataSourceService" />
</beans:bean>
<!-- 验证配置 , 认证管理器,实现用户认证的入口,实现UserDetailsService接口即可 -->
<authentication-manager alias="myAuthenticationManager">
<authentication-provider user-service-ref="myUserDetailsService">
<password-encoder hash="md5">
<salt-source user-property="username" />
</password-encoder>
</authentication-provider>
</authentication-manager>
</beans:beans>
分享到:
相关推荐
这份"Spring学习笔记+学习源码.zip"资源包含了深入学习Spring及其相关技术的知识点,以及实践代码,对提升Spring技能将大有裨益。 首先,我们来详细讨论Spring框架的主要组件和功能: 1. **依赖注入(Dependency ...
7. **Spring安全(Spring Security)**: `spring_security.sql`和`spring_security.txt`可能涉及到Spring Security的基本概念,如用户认证、权限控制、基于角色的访问控制(RBAC),以及如何配置和定制安全规则。...
《Spring5 尚硅谷框架课堂笔记》是一份深入解析 Spring 框架的珍贵资料,主要针对 Spring 5 版本进行了详尽的讲解。Spring 是一个开源的 Java 应用程序框架,它以 IoC(Inversion of Control,控制反转)和 AOP...
### 学习笔记:尚硅谷Spring6基础篇 #### 一、Spring框架概述 ##### 1.1 Spring是什么? Spring是一款主流的Java EE轻量级开源框架,由“Spring之父”Rod Johnson提出并创立。Spring的主要目标是简化Java企业级...
Spring框架是Java开发中最常用的轻量级开源框架之一,它以IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为核心,极大地简化了企业级应用的开发工作。"Spring笔记示例源...
7. **Spring Security**:Spring Security是一个强大且高度可配置的安全框架,用于保护Web应用和RESTful服务。它可以处理认证、授权等安全需求,提供了细粒度的访问控制。 8. **Spring Integration**:这个模块用于...
这份笔记涵盖了Spring的核心概念、配置、AOP(面向切面编程)、DI(依赖注入)等关键知识点。 1. **Spring框架概述**:Spring是一个开源的Java平台,提供了一个全面的编程和配置模型,支持构建更简洁、更易于测试和...
本笔记将详细解析Spring框架的基础知识,帮助你更好地理解并掌握Spring的核心概念。 首先,我们需要了解Spring框架的主要模块: 1. **核心容器**:这是Spring框架的基础,包括BeanFactory和ApplicationContext。...
5. **XML配置**:Spring5之前的版本中,Bean的配置通常通过XML文件进行。虽然Spring5推荐使用Java配置或注解配置,但理解XML配置仍然是基础。 6. **注解配置**:Spring5中,注解配置成为主流,如@Service、@...
1. **IoC(Inversion of Control)容器**:Spring的核心特性之一,通过反转控制权,让框架负责管理对象的生命周期和装配,开发者只需定义配置,无需手动创建对象。 2. **依赖注入(Dependency Injection, DI)**:...
接下来,笔记详细讲解了Spring Boot的主配置文件——application.properties或application.yml。这些配置文件用于定制自动配置行为,调整应用的行为,如端口设置、数据库连接信息等。此外,还介绍了如何通过@...
**Spring Boot核心技术详解** Spring Boot是由Pivotal团队提供的全新框架,其设计目标是为了简化Spring应用的...希望这份学习笔记能帮助你深入理解和掌握Spring Boot的精髓,祝你在Spring Boot的学习之路上一帆风顺!
此外,笔记中可能涉及 Spring Boot 配置文件的应用,如 `application.properties` 或 `application.yml`,它们用于设置应用的属性。你还会了解到如何通过 `@Value` 注解注入配置属性到类的字段,以及如何自定义配置...
Spring认证考试完全笔记是针对那些想要深入理解和掌握Spring框架核心概念及应用的Java开发者的一份宝贵资源。这份笔记详尽地涵盖了Spring框架的所有关键知识点,旨在帮助考生充分准备Spring认证考试,确保他们在实际...
2. **依赖注入(DI)**:IoC的一种实现方式,Spring允许开发者通过配置文件或注解来声明对象之间的依赖关系,容器会根据这些信息自动装配对象,降低了耦合度。 3. **面向切面编程(AOP)**:Spring的AOP支持让我们...
8. **Spring Security**:Spring Security是Spring生态系统中的安全框架,提供了一套完整的授权和认证解决方案,保护Web应用免受常见的安全威胁。 9. **Spring Test**:Spring框架包含一套测试工具和库,支持单元...
Spring框架是Java开发中最常用的轻量级开源框架之一,它为构建企业级应用程序提供了全面的编程和配置模型。Spring5源码分析笔记旨在深入理解Spring的工作原理,帮助开发者提升技能,优化代码,以及更好地利用其核心...
此外,Spring框架还支持大量扩展,如Spring Security(安全控制)、Spring Batch(批量处理)、Spring Integration(企业集成)等。这些笔记将涵盖这些主题的基本概念、使用方法和示例,帮助初学者快速理解和掌握...
Spring框架是Java开发中最常用的轻量级框架之一,它以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)为核心特性,极大地简化了企业级应用的开发工作。本学习笔记将深入...
Spring Boot的自动配置是其核心功能之一,它允许开发者通过“约定优于配置”的原则快速搭建项目。自动配置是基于`@EnableAutoConfiguration`注解实现的,该注解会根据项目中的依赖项自动配置相应的Bean。例如,如果...