我正在开发一个遗留的 grails 应用程序。
我有几张这样的 table
User ( id, name,enterprise_id)
Enterprise (id, name)
Asset (id,description, enterprise_id)
我想验证当某个用户想要访问 Assets 时,它具有正确的 enterprise_id(即用户与 Assets 属于同一企业)。
例如,考虑
John 是 Microsoft 的用户,Charles(来自 Oracle),只有 Charles 应该能够访问 Java 虚拟机。
Enterprise
id,name
--------
1 Oracle
2 Microsoft
Asset
id,description,enterprise_id
----------------------------
1 Java VM 1
2 .NET 2
User
id name enterprise_id
----------------------
1 John 2
2 Charles 1
我一直在阅读 spring security ,但看起来它不能帮助我。我看到的只是用户身份验证、密码、角色等(当然,我可能是错的)。这些东西已经得到保护并且工作正常。目前我正在考虑过滤器,但不能让它们工作并滚动我自己的安全性(见 this 问题),这似乎不对。
有什么想法吗? Spring Security 是要走的路吗?士郎?
提前致谢
最佳答案
你可以用 spring-security-acl 来实现它。 (这取决于 Spring 安全核心)
否则,您可以使用一组对象级授权 filters 实现两阶段方法(身份验证 + 授权) .
关于security - Grails + 保护应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3618879/