一.Spring Security权限管理框架介绍
二.Spring Security常用拦截器讲解
SecurityContextPersistenceFilter
LogouFilter
AbstractAuthenticationProcessingFilter
DefaultLoginPageGeneratingFilter
BasicAuthenticationFilter
SecurityContextHolderAwareRequesFilter
RememberMeAuthenticationFilter
AnonymousAuthenticationFilter
ExceptionTranslationFilter
SessionManagementFilter
FilterSecurityInteceptor
FilterChainProxy
三.Spring Security-数据库管理
四.基于SpringBoot的SpringSecurity环境快速搭建与验证
1.打开链接 http://start.spring.io,做一下相关的修改配置。
下面可以选择勾选很多的插件,我们现在只勾选Security环境和Web环境。
点击“Generate Project”按钮,生成一个project,自动下载到本地,解压,使用我这里使用IntelliJ IDEA开发工具打开,发现这就是一个完整的项目。
运行环境,检测项目是否Ok
修改pom.xml文件
把这个默认引入的包注释掉,运行项目。
再次修改pom.xml文件,运行项目。
然后再打开SpringSecurity
新建一个类型SpringSecurityConfig
package com.mmall.demo;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.builders.WebSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
/**
* Created by mac on 2017/12/27.
*/
@Configuration
@EnableWebSecurity //打开Web支持
//extends 实现类
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter{
@Override
protected void configure(HttpSecurity http) throws Exception {//此方法设置哪些请求会被拦截,以及一些请求应该怎样处理
http.authorizeRequests()
.antMatchers("/").permitAll()//项目主路径可以随意访问
.anyRequest().authenticated()//其他请求都是受限制的
.and() //允许
.logout().permitAll()//允许注销,随意访问
.and()
.formLogin();//允许表单登录
http.csrf().disable();
}
@Override
public void configure(WebSecurity web) throws Exception{
web.ignoring().antMatchers("/js/**","/css/**","/images/**");//设置js,css,images都不去做权限拦截
}
}
启动项目。
访问主路径依旧可以请求,但是访问hello则受限制。
此时,我们基于SpringBoot的SpringSecurity环境已经搭建Ok了,下一篇我们继续对SpringSecurity的其他内容做示例。
三.SpringBoot常用注解讲解
1.@RestController
引入RestController相当于同时引入@Controller和@ResponseBody这两个注解。
2.@EnableAutoConfiguration
作用:SpringBoot会根据架包的依赖来自动配置项目
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
意思是从自动配置里面显示的移除掉DataSourceAutoConfiguration.class
3.@SpringBootApplication
由于项目中大量使用Configuration,ComponetScan,EnableAtutoConfiguration使用SpringBootApplication可以替代上面三个注解。
maven的国内阿里云镜像
/*
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
*/