Spring Security的使用 #Web安全#权限认证《Spring实战》第4版笔记 (二)

本文深入探讨Spring Security的请求拦截,详细介绍了如何通过SpringEL进行安全保护,强制通道的安全性以及防止跨站请求伪造。同时,文章还涵盖了用户认证的各个方面,包括自定义登录页、HTTP Basic认证、Remember-me功能以及退出机制,全面讲解了如何保护Web应用视图。
摘要由CSDN通过智能技术生成

9.3 拦截请求

对每个请求进行细粒度安全性控制的关键在于重载configure(HttpSecurity) 方法。如下代码中的重载configure,为不同的URL路径有选择性的应用安全性

    @Override
    protected void configure(HttpSecurity http) throws Exception{
   
        http.authorizeRequests()
                .antMatchers("/test1").authenticated() //对路径认证
                .antMatchers(HttpMethod.POST,"/test2").authenticated() //对路径的POST请求认证
                .anyRequest().permitAll(); //方通其他路径请求,不需要认证和任何的权限
    }	

除了路径选择,还可以通过authenticated() 和 permitAll() 来定义该如何保护路径。authenticated()要求在执行该请求时,必须已经登录了应用。如果用户没有认证的话,Spring Security的Filter将会捕获该请求,并将用户重定向到应用的登录界面。

其他的用来定义如何保护请求的方法

方法 能够做什么
access(String) 如果给定的SpEL表达式计算结果为true,就允许访问
anonymous() 允许匿名访问
authenticated() 允许认证过的用户访问
denyAll() 无条件拒绝访问
fullyAuthenticated() 如果用户是完整认证的话(不是通过Remember-me功能认证的),就允许访问
hasAnyAuthority(String…) 如果用户具备给定权限的某一个的话,就允许访问
hashAnyRole(String…) 如果用户具备给定角色的某一个的话,就允许访问
hashAuthority(String) 如果用户具备给定权限的话,就允许访问
hasIpAddress(String) 如果请求来自给定IP地址的话,就允许访问
hasRole(String) 如果用户具备给定角色的话,就允许访问
not() 对其他访问方法的结果求反
permitAll(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值