尝试使用 Jersey 来实现 Spring Security 我的 security-context.xml 文件有什么问题?
我正在尝试将 Spring Security 添加到我的 Jersey Web 应用程序中。我尝试使用以下内容作为我的 security-context.xml 文件以及现有的 applicationContext.xml (web.xml 中 contextConfigLocation 的 2 个单独文件):
基于此处提供的解决方案:Jersey REST 服务上的用户身份验证
但是启动 tomcat 后...我得到出现以下错误:
严重:将上下文初始化事件发送到类 org.springframework.web.context.ContextLoaderListener 的侦听器实例时发生异常 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:ServletContext 资源 [/META-INF/securityContext.xml] 中的 XML 文档中的第 11 行无效;嵌套异常为 org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: 匹配通配符严格,但找不到元素“security:global-method-security”的声明。
有人可以帮我看看出了什么问题吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您使用了:Spring Security 2 命名空间,但元素“security:global-method-security”是 Spring Security 3 的功能。
如果您使用 Spring Security 3(需要 Spring 3),则更新两个命名空间:Spring 命名空间(您使用 Spring 2.5 命名空间)和 Spring Security 命名空间。
如果您确实必须使用 spring security 2.0,那么您不能使用元素“security:global-method-security”。在这种情况下,您必须显式编写隐藏在该标记之间的 bean 配置。 (但不幸的是,这是很多 bean,并且包名称已从版本 2.0 更改为版本 3.0,因此我无法提供有效的示例。)
You used: Spring Security 2 namespace but the element 'security:global-method-security' is a spring security 3 feature.
If you use Spring Security 3 (requires Spring 3) then update both namespaces, the one for Spring (you using Spring 2.5 namespace) and the Spring Security Namespace.
If you really must use spring security 2.0 then you ca not use the element 'security:global-method-security`. In this case you must explicit write the bean configuration that is hidden between that tag. (But unfortunately this are a lot of beans and there package names was changed form version 2.0 to version 3.0, so I can not provide a working example.)