Spring安全JSP标签 - 我需要哪些罐子?

时间:2012-07-18 10:05:18

标签: spring security jsp taglib

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

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

这让我觉得我的taglib网址没有匹配到合适的taglib jar。所以要么URL不正确,要么我没有合适的罐子。

在我的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中发生了变化 - &gt; 3.1我应该如何配置我的应用程序的安全性。

编辑: 我发现它应该在我的配置中实现该角色:

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

和     我的security-context.xml中的<http auto-config="true" use-expressions="true" .... >

1 个答案:

答案 0 :(得分:4)

您至少应该拥有以下内容:

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

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