先建立一个简单的例子:
1.引入SpringSecurity相关的jar:spring-security-core、spring-security-config、spring-security-web以及其他相关的jar
2.在web.xml中配置filter,其中filter的名称为springSecurityFilterChain,不能改变
<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>
3.在一个spring的application context文件中进行安全配置
<?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"
xmlns:context="http://www.springframework.org/schema/context"
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
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<http use-expressions="true">
<intercept-url pattern="/login.html" filters="none"/>
<intercept-url pattern="/loginfail.html" filters="none"/>
<intercept-url pattern="/loginsucc.html" access="hasAnyRole('user')" />
<intercept-url pattern="/resource.html" access="hasAnyRole('admin')" />
<form-login login-page="/login.html" login-processing-url="/login.shtml"
default-target-url="/loginsucc.html" authentication-failure-url="/loginfail.html"/>
<!-- 配置退出页面 -->
<logout logout-url="/logout.shtml" logout-success-url="/login.html" />
<anonymous enabled="false"/>
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="lan" password="111111" authorities="user" />
</user-service>
</authentication-provider>
</authentication-manager>
</beans:beans>
4.登录页面表单,用户名和密码要用j_username和j_password
<form action="/login.shtml" method="post">
用户名:<input type="text" name="j_username" id="username" /><br>
密码:<input type="password" name="j_password" id="password" /><br>
<input type="submit" value="登录"/>
</form>
5.该例子的效果是login.html和loginfail.html的访问不受限制,有user权限的用户可以访问loginsucc.html,有admin权限的用户可以访问resource.html。如果直接在地址栏输入url访问收保护的资源,将跳转到login.html页面,如果登录成功,跳转到loginsucc.html页面。登入成功后尝试访问resource.html会显示403页面。
分享到:
相关推荐
在"springsecurity学习笔记"中,你可能会涉及以下主题: - Spring Security的基本配置,包括web安全配置和全局安全配置。 - 如何自定义认证和授权流程,比如实现自定义的AuthenticationProvider和...
Spring Security是一个功能强大且高度可定制的身份验证和授权框架,专门用于保护Java应用程序的安全性。它构建在Spring Framework基础之上,提供了全面的安全解决方案,包括身份验证、授权、攻击防护等功能。 Spring...
1. **Filter Security Interceptor**:这是SpringSecurity的主要过滤器,负责检查请求并决定是否允许访问。它会根据预定义的访问控制规则进行判断。 2. **Authentication Manager**:处理用户认证的组件,可以使用...
"springsecurity-namespace"可能指的是Spring Security的XML命名空间配置。在Spring Security的早期版本中,使用XML配置是最常见的实践。例如,你可能会看到以下片段: ```xml **" access="hasRole('ROLE_ADMIN')...
Spring Security 是一个强大的安全框架,主要用于Java应用的安全管理,它为Web应用和企业级应用提供了全面的...通过学习这些文档,开发者可以更好地理解Spring Security的工作原理,从而更有效地实现应用的安全控制。
spring security方面的学习资料,包含:Spring+Security+3+与+CAS单点登录配置;Spring+Security3中文教程;Spring-Security安全权限管理手册;Spring+Security文库;还有一个学习笔记!
Spring Security的学习过程可以分为入门、进阶和高级三个阶段。入门阶段主要是了解Spring Security的基本概念和配置方法。进阶阶段需要深入学习如何定制认证和授权流程、如何集成各种认证方式以及如何在实际项目中...
首先,Spring_Security-3.0.1_中文官方文档(翻译版).pdf是学习SpringSecurity的重要资源,它包含详细的框架介绍、配置指南和使用示例。这份文档会帮助我们理解SpringSecurity的基础架构,如安全上下文、过滤器链和...
Spring Security 是一个强大的安全框架,用于为Java应用提供身份验证和授权服务。在这个完整的项目实例中...通过学习和实践这个项目,开发者能够深入理解Spring Security的工作原理,从而更有效地保护自己的Java应用。
1. **SpringSecurity核心概念** - **Filter Chain**: SpringSecurity通过一系列过滤器实现其安全功能,这些过滤器构成了Filter Chain。每个过滤器负责特定的安全任务,如认证、授权等。 - **Authentication**: ...
1. **模块化设计**:Spring Security由多个模块组成,如Core、Web、OAuth2等,每个模块都可以根据项目需求单独使用或组合使用。 2. **过滤器链**:Spring Security基于Servlet Filter实现,通过配置过滤器链,可以...
《Spring Security 3.1 学习指南及资源解析》 Spring Security是Java平台上的一款强大且高度可定制的安全框架,广泛应用于企业级Web应用的安全管理。本篇文章将围绕"Spring Security 3.1"这一主题,深入探讨其核心...
1. **身份验证**:Spring Security提供了多种身份验证机制,如基于内存的用户详情服务、JDBC用户详情服务、自定义身份验证提供者等。它支持用户名/密码、数字证书、智能卡等多种凭证类型。 2. **授权**:Spring ...
Spring Security 是一个强大的安全框架,用于为Java应用提供全面的安全管理解决方案。它是Spring生态系统的组成部分,...无论你是初学者还是经验丰富的开发者,官方文档都是学习和掌握Spring Security不可或缺的资源。
Spring Security OAuth2.0学习笔记 什么是认证、授权、会话。 Java Servlet为支持http会话做了哪些事儿。 基于session认证机制的运作流程。 基于token认证机制的运作流程。 理解Spring Security的工作原理,Spring ...
【Spring Security 学习总结】 Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于保护基于 Java 的应用程序。本学习总结文档主要针对初学者,旨在剖析一个不安全的应用程序并阐述如何通过 ...