<?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"> <!-- 全局方法保护,权限设置访问 --> <global-method-security> <protect-pointcut access="ROLE_ADMIN" expression="execution(* com.security.action.*.*(..))"/> <protect-pointcut access="ROLE_USER" expression="execution(* com.security.action.*.*list*(..))"/> </global-method-security> <!-- http请求映射配置 --> <http auto-config="true"> <!-- 匿名访问 --> <intercept-url pattern="/*" access="IS_AUTHENTICATED_ANONYMOUSLY"/> <intercept-url pattern="/app/user*" access="ROLE_USER"/> <intercept-url pattern="/*/list*" access="ROLE_USER"/> <intercept-url pattern="/**" access="ROLE_ADMIN"/> <!-- 会话管理,一个用户异地多次登录 --> <session-management session-fixation-protection="none"> <concurrency-control max-sessions="1" error-if-maximum-exceeded="true"/> </session-management> <!-- 自定义登录页面 --> <form-login login-page="/login.html" authentication-failure-url="/login.html?error=true" login-processing-url="/user/login" username-parameter="username" password-parameter="password"/> <!-- 注销登录 --> <logout invalidate-session="true" logout-url="/logout" logout-success-url="/login.html"/> </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> <!-- 错误消息国际化--> <beans:bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <beans:property name="basename" value="classpath:org/springframework/security/messages" /> </beans:bean> <!-- 配置数据库权限信息获取实现类 --> <beans:bean id="userDetailsService" class="org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl"> <!-- 禁用基本的查询权限 --> <beans:property name="enableAuthorities" value="false"/> <!-- 启用分组权限 --> <beans:property name="enableGroups" value="true"/> <!-- 数据源 --> <beans:property name="dataSource" ref="dataSource"/> </beans:bean> <!-- 权限认证管理 --> <authentication-manager> <authentication-provider user-service-ref="userDetailsService"> <!-- 使用md5加密 --> <password-encoder hash="md5"/> <!-- 权限从数据库中查询出来,需要数据源 --> <!-- 自定义数据表权限,必须字段 users表:username,password,enabled 自定义数据表权限,必须字段 authorities表:username,authority --> <!-- <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,r.authority --> <!-- from --> <!-- users as u --> <!-- inner --> <!-- join --> <!-- role as r --> <!-- inner --> <!-- join --> <!-- user_role as ur --> <!-- where --> <!-- u.user_id = ur.user_id --> <!-- and --> <!-- r.role_id = ur.role_id --> <!-- and --> <!-- username = ?" --> <!-- /> --> </authentication-provider> </authentication-manager> </beans:beans>
相关推荐
### Spring Security XML配置详解 #### 一、Spring Security 概述 Spring Security 是一个功能强大的安全框架,提供了声明式安全服务。它不仅能够为 Java 应用程序提供认证(Authentication)和授权...
本篇将重点讲解如何通过XML配置来设置Spring Security。 首先,让我们理解Spring Security的基本架构。Spring Security的核心组件包括`Authentication`(认证)和`Authorization`(授权)。认证是确定用户身份的...
在提供的压缩包`springsecurity配置demo`中,你将找到示例代码和详细说明,这将帮助你更好地理解和实践上述概念。通过学习和实践这些示例,你将能够为自己的Spring应用程序构建强大的安全防护。
Spring Security 配置实例XML文件
在Spring Security XML配置中,可以为每个不同的登录页面定义一个`<http>`元素。例如,针对管理员和普通用户的登录,可以分别设置: ```xml **" create-session="stateless"> <!-- Admin login form ...
- **Spring Security XML配置**:传统的配置方式,通过`<http>`、`<authentication-manager>`等元素定义安全规则。 - **Java配置**:更现代的方式,使用`@EnableWebSecurity`、`WebSecurityConfigurerAdapter`等...
首先,Spring Security的配置通常位于一个或多个XML文件中,这些文件通过`<beans>`标签定义了安全相关的bean。这些bean是Spring Security框架的核心组件,它们负责处理用户认证、授权、会话管理等安全任务。在Spring...
Spring Security 的配置主要通过 security.xml 文件实现。security.xml 文件中定义了身份验证、授权和访问控制等配置项。 六、Spring Security 的架构 Spring Security 的架构主要包括以下几层: * Presentation ...
从给定的部分内容来看,我们可以看到这是一个Spring Security的配置文件,使用了Spring Security的XML命名空间。下面是一个示例性的配置片段: ```xml <!-- 允许访问登录页面 --> <!-- 静态资源不受保护 -...
在 web.xml 文件中添加 Spring Security 3 的配置,以便激活安全过滤器。下面是一个基本的 web.xml 配置示例: ```xml <!-- spring security --> <param-name>contextConfigLocation <param-value>classpath*:/...
#### web.xml配置 `web.xml`文件是Web应用程序的部署描述符,其中的`<filter>`和`<filter-mapping>`配置是Spring Security的关键部分。通过注册`DelegatingFilterProxy`,确保了Spring Security Filter Chain能够在...
- **实现Spring Security的XML配置文件**:给出了具体的配置示例,帮助读者理解如何通过XML来定义Spring Security的配置。 - **添加Spring DelegatingFilterProxy到web.xml文件**:指导如何在web.xml中配置过滤器以...
- **XML配置**:Spring Security 原本支持XML配置,开发者可以在`security:http`标签下配置安全行为,如设置访问限制、登录页面等。 - **Java配置**:随着Spring Boot的发展,Spring Security也提供了Java配置方式...
- XML配置:早期版本的SpringSecurity使用XML配置,但现在已被注解配置取代。 - 注解配置:使用`@EnableWebSecurity`开启Web安全,通过`@Configuration`和`WebSecurityConfigurerAdapter`自定义安全规则。 - ...
在3.1.3版本中,这两个过程可以通过XML配置或Java配置来实现。 ### 配置步骤 1. **添加依赖**:在项目中引入Spring Security的Maven或Gradle依赖。3.1.3版本的依赖可能如下所示(以Maven为例): ```xml ...
8. **Spring Security XML配置**:在Spring Security 3.2时代,配置主要通过XML完成。`security:http`、`security:authentication-manager`等元素定义了整个安全体系结构。 9. **基于注解的配置**:虽然本示例可能...
Spring Security的配置灵活,可以通过XML配置文件、Java配置类或者注解来定制安全策略。它还提供了大量的扩展点,允许开发者根据自己的业务需求进行定制和扩展。 Spring Security的学习过程可以分为入门、进阶和...
在实际开发中,SpringSecurity可以通过注解或XML配置进行集成。注解方式更加直观和简洁,例如`@Secured`、`@PreAuthorize` 和 `@PostAuthorize` 可以直接在方法上声明访问控制。 总结,SpringSecurity是一个功能...
在使用Spring Security时,开发者通常需要配置一个Spring Security XML配置文件,定义安全规则、认证和授权策略。此外,还需要编写一些自定义的类来处理特定的业务逻辑,如用户认证服务、权限检查等。Spring ...
3. **添加Spring Security XML配置文件的应用到web.xml**:整合Spring Security到Web应用程序中。 **常见问题** - **配置错误**:确保XML配置文件没有语法错误。 - **依赖冲突**:确认项目依赖版本兼容。 - **异常...