方法级别的 Spring Security

2025年3月17日 | 阅读 3 分钟

除了身份验证,spring security 还会检查已登录用户的授权。 登录后,用户访问资源的权限是基于用户的角色决定的。

在 WebSecurityConfig 类中创建用户时,我们也可以指定用户的角色。

应用于方法级别的安全性会限制未经授权的用户,并只允许经过身份验证的用户。

让我们看一个例子。 首先,通过提供详细信息来创建一个 maven 项目。


Spring Security at Method Level

该项目最初看起来像这样


Spring Security at Method Level 2

Spring Security 配置

现在,配置应用程序以防止未经授权和未经身份验证的用户。它需要四个 Java 文件,如下所示,创建一个 com.javatpoint 包并将所有这些文件放在其中。

// AppConfig.java

此类用于借助视图解析器设置视图后缀和前缀。

// MvcWebApplicationInitializer.java.java

// SecurityWebApplicationInitializer.java

// WebSecurityConfig.java

此类用于创建用户并设置其身份验证。每次用户想要访问应用程序时都需要登录。

控制器

创建一个 HomeController 控制器并将其放置在 com.javatpoint.controller 包中。

// HomeController.java

视图 (View)

创建以下视图(JSP 页面)以为用户生成输出。将所有视图放置在 WEB-INF/views 文件夹中。

// index.jsp

// admin.jsp

包依赖项

以下是创建此项目所需的依赖项。

项目结构

添加所有以上文件后,我们的项目看起来像这样


Spring Security at Method Level 3

运行服务器

输出


Spring Security at Method Level 4

首先以 ADMIN 身份登录


Spring Security at Method Level 5

登录后,


Spring Security at Method Level 6

点击更新记录查看,记录已更新,因为用户的角色是 ADMIN。


Spring Security at Method Level 7

用户登录

现在,以用户身份登录。


Spring Security at Method Level 8
Spring Security at Method Level 9

现在,点击更新记录查看,服务器拒绝访问,因为用户的角色是 USER。


Spring Security at Method Level 10