前言
给大家分享一下自己用SpringSecurity的经验,分几个小节,由浅入深。
分享一个基于spring全家桶里一个比较挺实用的组件——SpringSecurity,先来一个简单版的。
- 利用springboot脚手架搭一个maven工程
假设环境都没问题的情况下,先跑下基本的web服务,看是否能够启动
出现下面的日志,那我们的环境就搭建完毕了
写此文章时对应的版本,springboot: 2.1.8.RELEASE
- 编写一个security的配置
我们新建一个SecurityConfig.java
/**
* @author bradpod
* @version 2019/09/18
*/
@EnableWebSecurity
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
@Override
public UserDetailsService userDetailsService() {
InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();
manager.createUser(User.withUsername("admin").password("{noop}123456").roles("admin").build());
return manager;
}
}
{noop}为不使用加密盐,security5x后的设计,后面的文章再解释
再新建一个UserController
/**
* @author bradpod
* @version 2019/09/18
*/
@RestController
public class UserController {
@GetMapping("/hello")
public ResponseEntity<String> hello() {
return ResponseEntity.ok("hello");
}
}
默认情况下,只要引入security-starter,就会拦截所有的web请求,如果没有登录会重定向到内置的login页
访问http://localhost:8080/hello,会被重定向到登录页
我们输入上面的自定义用户,admin/123456,会重定向回hello页,如果出错会显示错误信息
最基础的集成下,springsecurity的判断是否登录还是基于session,如果是默认配置那我们用的就是tomcat,即tomcat的session实现,单机内存版,重启即消失。
3,下一步计划
现在我们有了基本的secuirty的功能,下一篇文章我将分别介绍引入权限路由、使用自定义数据源、自定义session等