码迷,mamicode.com
首页 > 其他好文 > 详细

9.3拦截请求

时间:2021-01-21 11:00:01      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:round   back   request   require   eth   login   csr   row   mit   

通过重载configure(HttpSecurity)方式实现细粒度安全性控制。
/**
* 通过重载,配置如果通过拦截器保护请求
* @param http
* @throws Exception
*/
@Override
protected void configure(HttpSecurity http) throws Exception {
// super.configure(http);
// ((HttpSecurity) ((HttpSecurity) ((ExpressionUrlAuthorizationConfigurer.AuthorizedUrl) http.authorizeRequests().anyRequest()).authenticated().and()).formLogin().and()).httpBasic();
//默认配置,要求所有进入应用的http请求都要认证,也配置了支持基于表单的登录以及http basic方式认证

//配置的规则是按照给定的顺序发挥作用,所以要把最具体的放在前面
//antMatchers,对于homepage下的所以请求都需要认证
//antMatchers(HttpMethod.POST).hasRole("ADMIN")用户必须具备ADMIN权限才可以访问post请求
//anyRequest其他请求都允许,不需要认证
http.authorizeRequests()
.antMatchers("/homepage/**").authenticated()
// .antMatchers(HttpMethod.POST).hasAuthority("ROLlE_ADMIN")
// .antMatchers(HttpMethod.POST).hasRole("ADMIN")
.anyRequest().permitAll();
}
安全性控制可选方案:
技术图片
技术图片

9.3.1使用spring表达式进行安全保护
技术图片
技术图片
技术图片

9.3.2强制通道的安全性
/**
* 通过重载,配置如果通过拦截器保护请求
* @param http
* @throws Exception
*/
@Override
protected void configure(HttpSecurity http) throws Exception {
//requiresChannel()设置安全通道https请求
//设置/spittr/form设置为https请求
//设置/为http请求
http
.antMatchers("/spittr/form").requiresSecure()
.antMatchers("/").requiresInsecure();

}

9.3.3防止跨站请求伪造
CsrfException异常。
thymeleaf下处理:
技术图片
jsp下处理:
技术图片




9.3拦截请求

标签:round   back   request   require   eth   login   csr   row   mit   

原文地址:https://www.cnblogs.com/-shing/p/ea6e06fad7b0dbecb52798f62c70c6c9.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有
迷上了代码!