security - Grails + 保护应用程序

标签 security grails spring-security shiro

我正在开发一个遗留的 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/

相关文章:

java - 在 Spring 中区分没有身份验证的用户

jsf spring安全 session 超时viewExpiredException

spring - 如何在 Spring Security JDBC 中保留 oauth 访问 token ?

cocoa - 如何写回现有文件,确保磁盘上的位在 OS X 中被覆盖

php - "Static"PHP页面安全

angularjs - Grails 3 - 将 html 模板限制为登录用户

grails - Intellij不再在Grails中运行单个Spock测试

grails - Grails-html-cleaner插件

sql - 报告的错误代码是否被认为是 SQL 注入(inject)?

php - 如何防止 PHP 中的 SQL 注入(inject)?