Spring Security JSP 标签库

2025年3月18日 | 阅读 5 分钟

Spring Security 为 JSP 页面提供自己的标签。 这些标签用于访问安全信息并在 JSP 中应用安全约束。

以下标签用于保护应用程序的视图层。

  • 授权标签
  • 身份验证标签
  • Accesscontrollist 标签
  • Csrfinput 标签
  • CsrfMetaTags 标签

授权标签

此标签用于授权目的。 此标签评估并检查请求是否已授权。

它使用两个属性 accessURL 来检查请求授权。 我们可以传递用户的角色来评估此标签。

只有在属性满足时,才会显示此标签内写入的内容。 例如。

身份验证标签

此标签用于访问存储在安全上下文中的身份验证。 如果 Authentication 是 UserDetails 对象的实例,则可以使用它来获取当前用户详细信息。 例如。

Accesscontrollist 标签

此标签与 Spring Security 的 ACL 模块一起使用。 它检查指定域所需的权限列表。 仅当当前用户拥有所有权限时才执行。 例如。

CsrfInput 标签

此标签用于为 HTML 表单创建 CSRF 令牌。 要使用它,请确保启用了 CSRF 保护。 我们应该将此标签放在 <form></form> 标签内以创建 CSRF 令牌。 例如。

CsrfMetaTags 标签

它插入包含 CSRF 令牌、表单字段、标头名称和 CSRF 令牌值的元标记。 这些值有助于在应用程序的 JavaScript 中设置 CSRF 令牌。

此标签应放置在 HTML <head> 标签内。

Spring Security Taglib JAR

要实现这些标签中的任何一个,我们的应用程序中必须有 spring security taglib jar。 也可以使用以下 maven 依赖项添加它。

Spring Security Taglib 声明

在 JSP 页面中,我们可以使用以下声明使用 taglib。

现在,让我们看一个在 spring security maven 项目中实现这些标签的例子。

我们使用 STS (Spring Tool Suite) 创建项目。 请看例子。

创建项目


Spring Security JSP Tag Library
Spring Security JSP Tag Library 2
Spring Security JSP Tag Library 3

单击完成按钮,它将创建一个如下所示的 maven 项目


Spring Security JSP Tag Library 4

Spring Security 配置

要在 Spring MVC 应用程序中配置 Spring Security,请将以下四个文件放在 com.javatpoint 文件夹中。

AppConfig.java

 

AppConfig 用于设置视图文件的视图位置后缀。

// MvcWebApplicationInitializer.java

此类用于初始化 servlet 调度程序。

// SecurityWebApplicationInitializer.java

再创建一个类,用于创建用户并在用户可访问性上应用身份验证和授权。

// WebSecurityConfig.java

控制器

现在,创建一个控制器来处理请求并响应。

// HomeController.java

视图 (View)

创建视图 (jsp) 文件以向用户显示输出。 我们创建了三个 JSP 文件,请参见下文。

// index.jsp

// user.jsp

// admin.jsp

在管理页面中,我们使用了 authorize 标签,该标签仅在给定的角色满足时才进行评估。

项目依赖项

我们的项目包含构建应用程序所需的以下依赖项。

// pom.xml

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


Spring Security JSP Tag Library 5

运行应用程序

右键单击项目并选择在服务器上运行。 它向浏览器显示以下输出。


Spring Security JSP Tag Library 6

单击用户,并通过提供在 AppSecurityConfig 文件中设置的凭据来登录。


Spring Security JSP Tag Library 7

成功登录后,它会显示如下所示的管理页面。 在这里,请注意,由于登录用户具有角色 USER,因此不会显示在 authorize 标签内编写的内容。


Spring Security JSP Tag Library 8

注销,现在以管理员身份登录,提供管理员凭据。


Spring Security JSP Tag Library 9

以管理员身份登录后,这次查看 authorize 标签的评估,并显示以下输出。


Spring Security JSP Tag Library 10

下载示例

 
下一主题#