Spring Security 提供了一个tutorial例子,刚开始看的时候感觉没有头绪,通过看Reference和视频现在有一些进展了,我现在通过一些小例子把tutorial里面的东西一点一点加进去。
先新建一个Web项目,里面只有两个jsp页面,index.jsp和admin.jsp。index.jsp有一个链接指向admin.jsp页面,代码如下。
<body>
<p>任何人可以访问该页面!</p>
<p><a href="admin/admin.jsp">管理员管理页面</a></p>
</body>
下面我们用 Spring Security 来保护对admin页面的访问。
1.为项目添加 Spring Security 需要的jar包。为了方便,我直接从tutorial里面复制过来了。
2.配置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>
/WEB-INF/applicationContext-security.xml
</param-value>
</context-param>
<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>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
context-param用来指定Spring Security配置文件的位置;
filter用来启动Spring Security的过滤器链;
listener用来启动Spring容器;
3.配置applicationContext-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">
<http use-expressions="true">
<intercept-url pattern="/admin/**" access="hasRole('ROLE_ADMIN')"/>
<intercept-url pattern="/**" access="permitAll" />
<form-login />
<logout />
<remember-me />
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="rod" password="rod" authorities="ROLE_ADMIN" />
<user name="peter" password="peter" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
</beans:beans>
我们通过intercept-url 来判断用户需要什么权限才能访问对应的url资源。第一个用来控制对admin.jsp页面的访问,第二个使用了通配符,用来控制对系统所有资源的访问。
通过pattern匹配时,Spring Security采用就近原则。例如我们访问admin.jsp页面时,两个intercept-url 都满足,但因为pattern="/admin/**" 排在上面,所有Spring Security会采用这个来处理对admin.jsp页面的访问,也就是只有拥有ROLE_ADMIN权限的用户才可以访问。
OK,完成了。现在我们通过index.jsp的链接访问admin.jsp页面时会弹出一个login页面(这个页面是Spring Security默认提供的,如果不喜欢可以用自己的login页面来替换它),要求输入用户名和密码。我们输入rod/rod,可以访问admin.jsp。如果输入peter/peter会提示拒绝访问,因为peter不是管理员。如果我们登录时选中remember me,登录成功后关闭浏览器,再打开浏览器通过index.jsp访问admin.jsp时就不会弹出登录页面了,可以直接访问到admin.jsp。Spring Security通过cookie找到了用户名和密码。
分享到:
相关推荐
- 学习 Spring Security 的第一步通常是创建一个简单的 "Hello World" 应用,这通常涉及添加必要的依赖和配置,以便启动基础的安全功能。 3. **单元测试**: - 在安全相关的开发中,单元测试是必不可少的,因为它...
首先,我们来看`tutorial`目录,这是Spring Security的教程源码。这个教程通常会涵盖一系列逐步指导,解释如何配置和使用Spring Security的各种特性。开发者可以通过阅读源码来了解如何设置安全拦截器、定义权限、...
这个“SpringSecurity官网修改例子 tutorial”提供了一个可以直接运行的示例项目,无需连接到数据库,这使得开发者能够快速理解和学习SpringSecurity的核心概念。 在SpringSecurity中,主要涉及以下几个关键知识点...
Spring Security 是一个强大的、高度可配置的Java安全框架,用于处理Web应用程序的安全性。它提供了全面的认证、授权和访问控制功能,为基于Spring的应用程序提供了一种灵活的方式来保护资源,防止未经授权的访问。 ...
自己在网络上看到并整理成CHM版本的。 原地址:http://www.family168.com/tutorial/springsecurity/html/springsecurity.html
Spring Security 是一个强大且高度可定制的身份验证和授权框架,其设计目标是为Java应用提供声明式的安全服务。Spring Security 3.1 版本带来了多项改进和新特性,使其在企业级应用的安全性管理上更加灵活和高效。 ...
#### 一、Spring Security 注解在 JSF 中的应用 Spring Security 是一个强大且高度可定制的身份验证与授权框架。它能够为任何基于 Java 的应用程序提供安全保护,无论是在 Web 应用还是非 Web 应用中。Spring ...
- **3.1 Tutorial 示例**:通过一个简单的示例来演示如何使用 Spring Security 构建安全的应用。 - **3.2 Contacts**:一个更复杂的示例,展示了如何处理用户数据和访问控制。 - **3.3 LDAP 例子**:演示如何将 ...
在第一种方法中,Spring Security的示例项目`spring-security-samples-tutorial-3.0.2.RELEASE`提供了硬编码配置的参考,它演示了如何在XML配置文件中定义用户、密码和权限。这种方法适合初学者快速了解Spring ...
9. **安全**:Spring Boot与Spring Security整合,可以轻松地添加认证和授权功能。默认情况下,Spring Boot应用是安全的,需要身份验证才能访问。 10. **国际化的支持**:Spring Boot通过`message.properties`文件...
Spring Security 是一个强大的安全框架,用于为 Java 应用程序提供认证和授权功能。这篇教程“Adding Security to Spring Petclinic”旨在帮助开发者了解如何将安全特性整合到 Spring Petclinic 示例应用中。Spring ...
Spring框架是目前最流行的Java企业级应用开发框架之一,它为开发者提供了构建高性能、易于测试且代码可重用的应用程序的强大支持。该框架由Rod Johnson最初编写,并于2003年6月首次发布,采用Apache 2.0许可证。 ##...
Spring Security是什么? 历史 发布版本号 Getting Spring Security Spring Security 4.1新特性 Java 配置提升 Web应用程序安全性提升 授权改进 密码模块的改进 测试的改进 一般的改进 样品和指南 (Start Here) Java ...
此外,Spring Security是Spring的一个模块,用于实现认证和授权。它可以保护你的应用程序免受未经授权的访问,支持多种认证机制,如HTTP Basic、Form Login等,以及复杂的权限控制。 在学习Spring的过程中,实践是...
本文档旨在为用户提供一份详尽且全面的Spring Security 2.0.x版本的中文指南,它不仅覆盖了核心概念、配置方法以及实际应用案例,还深入探讨了安全框架的内部工作原理和技术细节。无论是初学者还是有一定经验的安全...
测试spring-security的例子
此外,Spring MVC还能够与其他Spring模块(如Spring Security、Spring WebSocket等)无缝集成,提供完整的解决方案。 总之,“Spring MVC - A Tutorial”这份指南会详细讲解Spring MVC的各个核心组件和使用技巧,...
Spring Security是一个能够为基于Spring的企业应用系统提供描述性安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC(依赖注入,也称控制反转)和AOP(面向切...