springSecurity简易实例
**Spring Security 简易实例** 在Java Web开发中,Spring Security是一个强大的、高度可定制的身份验证和访问控制框架。本实例将基于JDK 1.7和Maven的阿里镜像来创建一个简单的Spring Security应用,以演示其基本功能。 ### 1. 安装与配置 确保你的开发环境已经安装了JDK 1.7,并配置了Maven。由于国内网络原因,推荐将Maven的中央仓库设置为阿里的镜像,这样可以提高依赖下载速度。在`settings.xml`中添加如下配置: ```xml <mirrors> <mirror> <id>aliyun</id> <mirrorOf>*</mirrorOf> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror> </mirrors> ``` ### 2. 创建项目结构 创建一个新的Maven项目,目录结构如下: - src - main - java - com.yourcompany - config - SecurityConfig.java - controller - HomeController.java - resources - application.properties - webapp - WEB-INF - web.xml - test - java - com.yourcompany - controller - HomeControllerTest.java ### 3. 引入Spring Security依赖 在`pom.xml`中添加Spring Security依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> ``` ### 4. 配置Spring Security 创建`SecurityConfig.java`,继承`WebSecurityConfigurerAdapter`,并重写`configure(HttpSecurity http)`方法,设置访问权限: ```java @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/").permitAll() // 允许访问主页 .anyRequest().authenticated() // 其他请求需要身份验证 .and() .formLogin() // 使用表单登录 .loginPage("/login") // 登录页面 .defaultSuccessUrl("/", true) // 登录成功跳转到主页 .permitAll() .and() .logout() // 设置登出 .permitAll(); } } ``` ### 5. 配置Controller 创建`HomeController.java`,定义主页和登录页面的路由: ```java @Controller public class HomeController { @RequestMapping("/") public String home() { return "home"; } @RequestMapping("/login") public String login() { return "login"; } } ``` ### 6. 创建登录页面 在`src/main/webapp/WEB-INF/jsp`目录下创建`login.jsp`,编写登录表单: ```jsp <!DOCTYPE html> <html> <head> <title>Login</title> </head> <body> <form action="/login" method="post"> <div> <label for="username">Username:</label> <input type="text" id="username" name="username"/> </div> <div> <label for="password">Password:</label> <input type="password" id="password" name="password"/> </div> <button type="submit">Login</button> </form> </body> </html> ``` ### 7. 配置Web.xml 如果使用的是Servlet 2.x,需要在`web.xml`中配置Spring Security的DispatcherServlet和Filter: ```xml <web-app> <!-- ... --> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <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> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- ... --> </web-app> ``` ### 8. 运行与测试 现在,你可以启动应用并访问`http://localhost:8080`,你应该能看到登录页面。输入用户名和密码进行登录(默认情况下,Spring Security使用内存中的用户存储,你可以通过配置自定义认证源)。 以上就是一个基础的Spring Security实例,它实现了基本的访问控制和表单登录功能。在实际项目中,你可能需要根据需求进行更复杂的配置,例如自定义登录逻辑、权限管理、记住我功能、CSRF保护等。Spring Security提供了丰富的API和扩展点,可以满足各种安全需求。
- 1
- 粉丝: 425
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 浏览器新标签页个性化设置
- 1考试真题最近的t15.txt
- 1考试真题最近的t21.txt
- 硬币,骰子和网球检测12-YOLO(v5至v11)、COCO数据集合集.rar
- 浏览器插件-笔记高亮插件
- 1考试真题最近的t28.txt
- 1考试真题最近的t32.txt
- 1考试真题最近的t34.txt
- 1考试真题最近的t38.txt
- 【安卓源代码】数独联网对战APP(完整前后端+mysql+说明文档).zip
- 硬币,骰子和网球检测9-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 伦茨伺服PROFIBUS相关GSD
- 第八届蓝桥杯省赛单片机试题+基于CT107D单片机的电子钟程序设计与调试
- STM32F103RC-W5500实现8路TCP Client客户端并同时支持连接8路TCP Server服务端通讯.zip
- STM32F103RC-W5500实现DHCP自动获取IP地址.zip
- 硬币,骰子检测12-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord数据集合集.rar