问题标签 [spring-security]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 将 Spring Web App 从 tomcat 5.5 迁移到 tomcat 6.0 的问题
我有一个在 tomcat 5.5 上运行良好的 Spring Web 应用程序。我试图将相同的 Web 应用程序部署到 tomcat 6 容器并遇到一些问题。
我遇到的主要两个问题与为 jstl 配置容器和让 spring 安全登录正常工作有关。
我相信我已经通过在 $CATALINA_HOME/lib 目录中包含这里的 jstl-1.2.jar lib 解决了 jstl 配置问题(尽管它确实看起来很奇怪,很难找到如何让它工作)。
现在的主要问题是,当我尝试使用基于表单的身份验证登录时,当登录表单提交到“j_spring_security_check”时出现 HTTP 404 错误。
我已经根据 spring 安全文档在 web.xml 文件中设置了过滤器,但似乎 tomcat 没有按预期调用它。
我希望有人可以在这里分享他们的经验,因为我肯定在我的配置中缺少一些基本的东西。
谢谢。
更新:虽然根据此处的响应进行故障排除,但我最终做的一件事是下载一个新的 tomcat 6.0.18 副本,并确保我在 WEB-INF/lib 目录中有 jstl-1.2.jar 文件。有趣的是,现在该应用程序似乎运行良好。
我有点难过,但我现在将尝试找出导致错误的两个 tomcat 安装的差异,并在此处发布进一步的更新。
感谢您对这些家伙的回复。
java - 有哪些使用 Spring 和 Hibernate 的优秀示例应用程序?
我需要快速开始使用 Spring 和 Hibernate,并且我正在寻找一些示例代码来修改和扩展。Struts2 和 Spring Security 集成的奖励积分。
spring - 单元测试中的 Spring 嵌入式 ldap 服务器
我目前正在尝试使用嵌入式 ldap 服务器进行单元测试。
在 Spring Security 中,您可以快速定义一个嵌入式 ldap 服务器,用于使用从指定 ldif 加载的一些示例数据的标记进行测试。
我将使用 Spring Ldap 执行 ldap 操作,并考虑测试我的用户服务对象的常用 CRUD 功能。
但是,有没有一种方法可以确保嵌入式服务器中的条目对于我正在运行的每个测试都处于相同的一致状态(有点像删除所有并重新加载 ldif 条目)?
我想到了以下几点:1)表明该方法弄脏了上下文,并强制重新创建嵌入式 ldap 服务器,这听起来很痛苦,因为它必须为每种方法重新启动服务器 2)在测试组织中创建测试条目,这样我就可以取消绑定它们并简单地再次加载 ldif 文件。
我更喜欢 2,但似乎 Spring LDAP 没有很好的帮手来加载和发送 ldif 文件的内容。
关于如何使用 spring 的嵌入式 ldap 服务器或我提到的两种可能的解决方案执行 ldap 测试的任何建议?
谢谢
java - ACEGI 身份验证在 tomcat 404 错误处理程序中可用
我在部署在 tomcat 5.5.26 中的 web 应用程序中使用 spring 和 acegi。
我想查看用户是否在 404 页面上登录,这样我们可以在他们登录时显示他们的姓名,否则显示登录链接。
我在请求调度程序的过滤器中有 HttpSessionContextIntegrationFilter。我在 ERROR 调度程序中也有它。
代码路径显示请求进入我的应用程序,通过 REQUEST 调度程序到 HttpSessionContextIntegrationFilter 记录它已被应用,设置用户上下文,然后继续过滤器链,然后清除用户上下文。然后它沿着 ERROR 调度程序前进,但是 HttpSessionContextIntegrationFilter 没有做任何事情,因为它已经为这个请求运行了,所以当它到达 404 页面时,上下文中没有身份验证(因为它被清除了出路)而不是放回去。
java - 如何为所有经过身份验证的用户授予访问权限?
需要使用 Spring Security 向没有任何角色的用户授予访问权限。必须授予任何人如何处理身份验证才能访问任何 URL。那么我可以通过这样的方式做到这一点,或者可能是其他方式吗?
java - 找不到“org.springframework.security.annotation.Jsr250MethodDefinitionSource”
当我在 Spring Security 下配置方法安全性时,出现上面显示的错误(请参阅下面的堆栈跟踪)。我在 Eclipse 3.4 下使用 Tomcat 6 运行时运行 Spring 2.5.6、Spring Security 2.0.4。我需要任何建议来了解如何使这项工作正常进行。
我的安全配置文件如下:
和异常堆栈跟踪:
java - 服务器端 API 中的权限检查
我们的产品建立在客户端-服务器架构上,服务器用 Java 实现(我们使用 POJO 和 Spring 框架)。我们在服务器上有两个 API 级别:
- 外部 API,它使用 REST Web 服务 - 对于外部客户端和与其他服务器的集成很有用。
- 内部 API ,它使用纯 Java 类 -对于内部的实际代码(业务逻辑多次调用 API 调用)以及与公司内部开发并作为我们产品的一部分部署的 plusins 集成很有用。外部 REST API 也使用内部 API。
我们在内部 API 中实现了权限检查(使用 Spring 安全性),因为我们希望在最低 API 级别控制访问。
但是问题来了:在 API 级别上定义了一些操作,这些操作被认为对当前登录的用户是禁止的,但应该由服务器本身顺利执行。例如,可以禁止用户删除某些实体,但服务器可能希望删除该实体,作为用户执行的某些其他操作的副作用,我们希望允许这样做。
那么,允许服务器执行实际登录用户可能禁止的操作(在某种超级用户模式下)的最佳方法是什么?
正如我所看到的,我们有几个选择,每个都有其优点和缺点:
- 在外部级别 API (REST) 中实施权限检查 - 不好,因为插件将绕过权限检查。
- 在请求被授予后关闭当前线程的权限检查 - 太危险了,我们可能允许太多应该被禁止的服务器操作。
- 明确要求内部 API 级别以特权模式执行操作(就像 java 安全框架中的 PrivilegedAction 一样) - 太冗长了。
由于上述方法都不是理想的,我想知道这个问题的最佳实践方法是什么?
谢谢。
java - 面向人类的 JAAS
我很难理解 JAAS。这一切似乎都比应有的复杂(尤其是 Sun 教程)。我需要一个简单的教程或示例,说明如何在基于 Struts + Spring + Hibernate 和自定义用户存储库的 java 应用程序中实现安全性(身份验证 + 授权)。可以使用 ACEGI 来实现。
spring - Spring Security:如何获取初始目标 url
我正在使用弹簧安全性来限制网址。我正在尝试在同一页面上提供注册和登录页面。
在登录 spring 安全转移到受限页面。但是我正在尝试将目标 url 传递给注册过程,以便在注册后我们可以重定向到受限页面。
如何获取用户被重定向的实际 URL。
有任何想法吗?
spring-security - Spring Security: Custom Authentication Provider for 'one time password' and 'securit questions'
I am using Spring Security and would like to use authentication providers for 'one time password' and 'security questions'. The number of allowed failures for one time password and security questions is limited.
So far the authentication providers works fine but for the enduser it would be nice to know if he has typed in the wrong 'one time password' or the limit of allowed failures is exceeded. But I have only the possiblity to throw an AuthenticationException within my authentication provider.
Any ideas?
Thanks, Ralph