http.authorizeRequests()
.antMatchers("/login.html").permitAll()//放行/login.html,不需要认证
// .antMatchers("/css/**","/js/**","/images/**").permitAll()//放行静态资源
// .antMatchers("/**/*.png").permitAll()//放行后缀.png
// .regexMatchers(".+[.]png").permitAll()//放行后缀.png,正则表达式
// .regexMatchers(HttpMethod.POST,"/demo").permitAll()//指定请求方法
// .antMatchers("/main1.html").hasAuthority("admiN")//基于权限
// .antMatchers("/main1.html").hasAnyAuthority("admin","admiN")
// .antMatchers("/main1.html").hasRole("abC")//基于角色
// .antMatchers("/main1.html").hasAnyRole("abC","abc")
// .antMatchers("/main1.html").hasIpAddress("127.0.0.1")//基于IP地址
.anyRequest().authenticated();//所有请求都必须认证才能访问,必须登录
1.先匹配url
.anyRequest()
.antMatchers
.regexMatchers
.mvcMatchers 比较较少用
2.再权限管理
denyAll
permitAll
hasAuthority
hasAnyAuthority
hasRole
hasAnyRole
fullAuthority(remember me)
authenticated //登录
hasIpAddress
项目tips
实际中一般先
1)处理放行页面 permitAll
2)处理特殊权限页面 hasAuth
3)剩余全部需登录
参考:
https://stackoverflow.com/questions/19525380/difference-between-role-and-grantedauthority-in-spring-security