允许通过spring-web安全性有限地访问安全资源



需要一些建议

我使用春季网络安全,例如

@Override
public void configure(HttpSecurity http) throws Exception {
http
.headers().frameOptions().disable()
.and()
.authorizeRequests()
.antMatchers("/app/profile-info").permitAll()
.antMatchers("/app/**").authenticated()
.antMatchers("/management/health").permitAll();
}

若要访问API"应用程序",您必须通过身份验证。然而,我想允许任何人在一段时间内使用应用程序api,例如,他们每天可以使用api 3次,之后他们需要注册服务

我研究了几种解决方案,例如使用ip和存储他们使用API 的次数

我想知道春季安全是否有实现上述目标的机制?我一直找不到任何

您所描述的问题不是身份验证问题,而是授权问题。

我认为,用户应该被识别和验证(例如,如果服务可以在没有注册的情况下使用,则通过IP/SMS/等进行注册或识别(。然后,您将给定的配额与用户(DB中的一个简单字段(相关联,并在执行API中的任何方法之前对其进行检查。据我所知,它可以通过基于属性的访问控制使用spring安全性来实现,在该控制中,您的自定义属性将检查用户是否超出配额。

此外,请注意一个称为Race条件的问题:用户可以尝试以比数据库中更新配额计数器更快的速度访问资源(通过创建大量同时请求(。在我一直在使用的几个春季应用程序中看到了它。

最新更新