1.导入依赖
<!--security--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
2.配置一个security类
//AOP:拦截器 @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { //首页是所有人可以访问2,功能页只有有权限的人才能访问 //请求授权规则 //授权 http.authorizeRequests() .antMatchers("/").permitAll() .antMatchers("/level1/**").hasRole("vip1") .antMatchers("/level2/**").hasRole("vip2") .antMatchers("/level3/**").hasRole("vip3"); //没有权限默认到登录界面,需要开启登录界面 http.formLogin().loginPage("/tologin"); /*防止网站攻击post*/ http.csrf().disable(); http.logout().logoutSuccessUrl("/");//注销成功后去首页 http.rememberMe().rememberMeParameter("remember"); } //认证 //密码编码:passworEncoder //在spring security5.0+新增了很多加密方法 @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication().passwordEncoder(new BCryptPasswordEncoder()) .withUser("wang").password(new BCryptPasswordEncoder().encode("123456")).roles("vip2","vip3") .and() .withUser("root").password(new BCryptPasswordEncoder().encode("123456")).roles("vip1","vip2","vip3") .and() .withUser("guest").password(new BCryptPasswordEncoder().encode("123456")).roles("vip1"); } }
浙公网安备 33010602011771号