返回

让 Spring Security 知道我们想要保护所有端点

后端

前言

在上一篇文章中,我们学习了如何使用 Spring Security 来验证用户。我们配置了 SecurityConfig 类,并添加了必要的依赖项。现在,我们需要让 Spring Security 知道我们想要保护所有端点。

配置 HttpSecurity

HttpSecurity 是 Spring Security 的核心配置类。它提供了许多方法来配置 Spring Security 的行为。我们可以使用 HttpSecurity 来指定要保护的端点,并指定对这些端点的访问权限。

要保护所有端点,我们可以使用 antMatchers() 方法。该方法接受一个字符串参数,该参数指定要保护的端点。我们可以使用星号 (*) 来匹配所有端点。

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
        .antMatchers("/**")
        .authenticated();
}

上面的代码将保护所有端点。这意味着只有经过身份验证的用户才能访问这些端点。

指定访问权限

我们可以使用 authorizeRequests() 方法来指定对端点的访问权限。该方法接受一个 RequestMatcherExpressionBuilder 参数,该参数可以用来指定要保护的端点。我们可以使用 hasRole() 方法来指定对端点的访问权限。该方法接受一个字符串参数,该参数指定要访问端点所需的权限。

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
        .antMatchers("/admin/**")
        .hasRole("ADMIN");
}

上面的代码将保护 /admin/** 端点。只有具有 ADMIN 权限的用户才能访问这些端点。

总结

在本文中,我们学习了如何使用 Spring Security 来保护所有端点。我们还学习了如何指定对端点的访问权限。通过使用 Spring Security,我们可以确保只有经过身份验证的用户才能访问我们的端点。