Spring Security 基本介绍
具体的可以参考官方文档
SpringSecurity核心功能:
- 认证
- 授权
环境搭建
1 配置maven,引入security包
pom.xml引入spring security包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
2 目录结构,后续要扩展读取数据库的帐号密码验证功能,目录结构先构建上

3 配置SpringSecurity
配置实现的目标:在浏览器输入http://localhost:8080/控制器名称对应任意地址后,页面自动跳转到自动生成的login页面,输入用户名(user)和密码,即可跳转到要访问的地址。具体看代码的注释。
package com.springboot.action.saas.modules.security.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
//定义配置类被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被
//AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,
//并用于构建bean定义,初始化Spring容器。
@Configuration
//加载了WebSecurityConfiguration配置类, 配置安全认证策略。
//加载了AuthenticationConfiguration,
@EnableWebSecurity
//用来构建一个全局的AuthenticationManagerBuilder的标志注解
//开启基于方法的安全认证机制,也就是说在web层的controller启用注解机制的安全确认
@EnableGlobalMethodSecurity(prePostEnabled = true)
//Web Security 配置类
public class SecurityConfig extends WebSecurityConfigurerAdapter {
/*
* 配置http服务,路径拦截、csrf保护等等均可通过此方法配置
* */
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
//HttpSecurity对象
httpSecurity
//设置权限定义哪些URL需要被保护、哪些不需要被保护。HttpSecurity对象的方法
.authorizeRequests()
//认证通过后任何请求都可访问。AbstractRequestMatcherRegistry的方法
.anyRequest().authenticated()
//连接HttpSecurity其他配置方法
.and()
//生成默认登录页,HttpSecurity对象的方法
.formLogin();
}
}
4 运行效果
当输入访问地址后,会跳转到登陆页面

在登陆表单输入帐号:user,密码在控制台输出中查找
Using generated security password: 35fc3ebd-420e-4403-ba3f-6819bf47e4d9
就可以访问了。说名spring security 起作用了。实际使用中,更多的时候是从数据库的用户表中获取来验证用户的帐号和密码,后续深入学习,要实现两个功能:
- 静态页面,css,js等文件不需要验证即可反问。
- 从数据库获取用户的帐号和密码信息验证用户。
网友评论