springboot和spring security简单使用

整理自是尚硅谷springboot高级

配置类(最重要的了)

@EnableWebSecurity//这个注解组合注解里面有@Configuration 所以不要配置@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    //重写认证方法
    @Override
    protected void configure(HttpSecurity http) throws Exception {

        http.authorizeRequests()
            .antMatchers("/").permitAll() //放行这个请求
            .antMatchers("/level1/**").hasRole("vip1") //level1下的页面需要vip1这个角色才可以访问
            .antMatchers("/level2/**").hasRole("vip2")
            .antMatchers("/level3/**").hasRole("vip3");

        //开启自动配置的登录功能,就是你没登陆或者没有权限,给你创建一个登录页面
           // http.formLogin()
        //开启自动配置的登录功能,用自己的登录页 路径loginPage("/userlogin")
        //passwordParameter  usernameParameter 自定义表单的name值(默认username password)
        http.formLogin().usernameParameter("user").passwordParameter("pwd").loginPage("/userlogin");
        //设置退出及退出成功后的页面(前台需要post方法提交)
      /*  
*/ http.logout().logoutSuccessUrl("/"); //开启记住我功能,前端会添加个复选框记住我和实现记住我功能,无需自己实现 http.rememberMe().rememberMeParameter("rember"); } //重写授权方法 @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { //创建一个用户,给其赋值和赋予角色多个角色逗号隔开 auth.inMemoryAuthentication() .withUser("zs").password("123").roles("vip1") .and() .withUser("ls").password("123").roles("vip2","vip1") .and() .withUser("ww").password("123").roles("vip3","vip1") ; } /* @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { auth .inMemoryAuthentication() .withUser("user").password("password").roles("USER"); }*/ }

pom文件

        
	
		org.springframework.boot
		spring-boot-starter-parent
		1.5.10.RELEASE
		 
	

	
		UTF-8
		UTF-8
		1.8
                
		3.0.9.RELEASE
             
		3.0.2.RELEASE
            
		2.3.0
	

	
		
			org.thymeleaf.extras
			thymeleaf-extras-springsecurity4
		
		
			org.springframework.boot
			spring-boot-starter-security
		
		
			org.springframework.boot
			spring-boot-starter-thymeleaf
		
		
			org.springframework.boot
			spring-boot-starter-web
		

		
			org.projectlombok
			lombok
			true
		
		
			org.springframework.boot
			spring-boot-starter-test
			test
		
		
			org.springframework.security
			spring-security-test
			test
		
	

welcom.html





欢迎光临武林秘籍管理系统

游客您好,如果想查看武林秘籍 请登录

欢迎您: 您的角色有


普通武功秘籍

高级武功秘籍

 

自定义登录页面

 


	

欢迎登陆武林秘籍管理系统


用户名:
密码:
记住我

这个level1,level2,level3目录类似如此,没啥内容命名相同即可

springboot和spring security简单使用_第1张图片

控制器,跳转相关页面(KungfuController)

@Controller
public class KungfuController {
	private final String PREFIX = "pages/";
	/**
	 * 欢迎页
	 * @return
	 */
	@GetMapping("/")
	public String index() {
		return "welcome";
	}
	
	/**
	 * 登陆页
	 * @return
	 */
	@GetMapping("/userlogin")
	public String loginPage() {
		return PREFIX+"login";
	}
	
	
	/**
	 * level1页面映射
	 * @param path
	 * @return
	 */
	@GetMapping("/level1/{path}")
	public String level1(@PathVariable("path")String path) {
		return PREFIX+"level1/"+path;
	}
	
	/**
	 * level2页面映射
	 * @param path
	 * @return
	 */
	@GetMapping("/level2/{path}")
	public String level2(@PathVariable("path")String path) {
		return PREFIX+"level2/"+path;
	}
	
	/**
	 * level3页面映射
	 * @param path
	 * @return
	 */
	@GetMapping("/level3/{path}")
	public String level3(@PathVariable("path")String path) {
		return PREFIX+"level3/"+path;
	}


}

 

截图

springboot和spring security简单使用_第2张图片

springboot和spring security简单使用_第3张图片

springboot和spring security简单使用_第4张图片

你可能感兴趣的:(MTime)