Spring security JSP 标签——我需要哪些 jars?

Posted

技术标签:

【中文标题】Spring security JSP 标签——我需要哪些 jars?【英文标题】:Spring security JSP tags - which jars do I need? 【发布时间】:2012-07-17 08:17:02 【问题描述】:

我有一个项目曾经使用 Spring-MVC 在 Spring 3.0 上成功运行。我将其移至 Spring 3.1,同时将我的 jar 管理更改为 Maven,而不是手动下载/复制到 Ant 的 project/lib。

在日志中加载第一个(登录)公共页面时,我看到: 信息:至少一个 JAR 已扫描 TLD,但未包含 TLD

这让我觉得我的 taglib URL 没有与适当的 taglib jar 匹配。所以要么 URL 不正确,要么我没有合适的 jars。

在我的 JSP 顶部:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

我认为是安全标签有问题,如下页所示(登录后)我收到一个新错误: javax.servlet.ServletException: javax.servlet.jsp.JspException: java.io.IOException: 在应用程序上下文中找不到可见的 WebSecurityExpressionHandler 实例。必须至少有一个才能支持 JSP 'authorize' 标记中的表达式。

这对我来说是新的 - 当我使用 Spring 3.0 库运行应用程序时,我不必定义“WebSecurityExpressionHandler”,所以要么我缺少一个提供相关的 jar在 Spring 3.0 -> 3.1 中我应该如何配置应用程序的安全性方面发生了一些变化。

编辑: 我发现它看起来应该在我的配置中扮演该角色:

`<bean id="expressionHandler" class="org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler" />`

并且 &lt;http auto-config="true" use-expressions="true" .... &gt; 在我的 security-context.xml 中

【问题讨论】:

【参考方案1】:

你至少应该有以下几个:

spring-security-config spring-security-web spring-security-taglibs

此外,您可以添加 spring-security-core,但 Maven 应将其解析为传递依赖项。

【讨论】:

谢谢阿隆索,我查过了,这些罐子都列在我的 pom.xml 中 这个问题对你有帮助吗? ***.com/questions/9728160/… 谢谢,这并没有完全解决我的问题,但确实回答了这个问题。干杯:)

以上是关于Spring security JSP 标签——我需要哪些 jars?的主要内容,如果未能解决你的问题,请参考以下文章

Spring Security,JSP 标记库错误

Spring Security--Jsp标签

Spring security jsp授权标签不起作用

Spring Security教程之Jsp标签

Spring Security 授权标签 - HTTP 状态 500

我们应该使用啥来代替 Spring Security 的 JSP 标签库来在 HTML 页面中的客户端具有安全性?