问题标签 [security-roles]

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.

0 投票
2 回答
3449 浏览

spring - 定义具有继承权限的用户角色

我目前正在研究 spring-security 框架 - 到目前为止很棒,印象非常深刻。但是,我还没有找到在哪里或如何定义权限继承。

例如,我希望 ROLE_ADMIN 至少拥有与 ROLE_USER 相同的权限。我为 spring 定义了三个 intercep-url:

当尝试从 /voting/ 访问任何嵌套的站点时,以 ROLE_ADMIN 用户身份登录时,我被拒绝了。我在这里错过了什么吗?我知道,我可以为 /voting/* 分支定义多个角色,但如果我想象在我的一个真实用例中我可能有 10 个不同的用户角色,我可以想象 .xml 文件会变得非常混乱,真的快速地。

我可以在某处配置角色的继承吗?

干杯

编辑:

感谢伟大的社区和他们的投入,我想出了一个可行的解决方案——它可能是好的风格,也可能不是——它有效:D

我定义了一个枚举,它反映了继承的 spring-sec 角色:

然后我实现了自己的 UserDetailsS​​ervice:

方法内

在将授予权限添加到 UserDetail 时,我得到相应的枚举值并附加此枚举值定义的所有角色:

我持久化的域对象包含一个带有 UserRole 的 @Enumerated 字段 - 在真实环境中,该字段是从数据库中加载的,并从该枚举中选择相应的角色。

再次感谢您的意见 - 爱这个社区 ^^

0 投票
2 回答
1221 浏览

mysql - ColdFusion:基于角色的应用程序选项?

<cflogin>我了解如何通过实现和角色来限制整个页面甚至组件。例如:

但是建议如何限制页面的某些方面?例如,允许“管理员”向所有用户发送全局消息,但该选项不适用于常规“用户”

我想我可以使用 Session 来操纵我的视图(页面)。这通常是如何处理的?

0 投票
6 回答
43098 浏览

spring-security - 如何动态决定在 Spring Security 中访问属性值?

在 Spring Security 中,我们使用 intercept-url 标签来定义对 URL 的访问,如下所示:

这是硬编码在applicationContext-security.xml. 我想改为从数据库表中读取访问值。我已经定义了自己UserDetailsService的角色,并从数据库中读取了登录用户的角色。如何在运行时将这些角色分配给 URL 模式?

0 投票
3 回答
989 浏览

asp.net-mvc - mvc 站点,保存登录凭据的最安全方法

好的,我对如何在 mvc 中保存登录凭据同时避免对数据库造成太大影响感到两难。我知道我可以很容易地Forms Authentication用来保存用户实例,但它是否可取?

目前我这样做的方式是将其存储User Id在一个cookie中,然后每次调用一个“需要”登录访问权限的操作时我都会访问它。在访问操作之前,用户 ID 将用于检索“新”用户实例。这在每个操作上都是一样的,我不会将用户存储在 cookie 中,因为我觉得一旦 cookie 被泄露,关于用户的所有内容都将可供黑客使用(用户 ID、电子邮件、角色等)

因此,如果我有大量需要登录的操作,这在我的带宽上会很困难。你觉得我用的方法怎么样?我是否应该将其更改为将所有 User 对象存储在 cookie 中并具有短暂的超时时间?任何想法都非常感谢。谢谢!!

0 投票
2 回答
5741 浏览

sql - 分配了 sql azure 角色的用户

我试图确保所有用户都被分配了一个特定的角色。是否有任何视图或 SQL 查询来获取此信息?

0 投票
2 回答
1303 浏览

c# - 角色管理器是否为自定义角色提供程序缓存数据,我可以清除此缓存吗?

我正在使用自定义角色提供程序,它过度简化使用 .net 4 MVC 项目上的 EF 从数据库中获取人员对象,并根据一些规则(和其他查询)分配用户角色。

数据会定期更改,尽管更改是通过系统中其他地方的代码而不是角色提供者进行的模式更改。角色提供者是一种方式,它只是获取用户所在的角色。

当我更改数据库值时,角色管理器不会接受角色的更改,直到我重新编译(例如通过在 web 配置中添加空格),或者应用程序重新启动。

我通过设置确保角色不会缓存在 cookie 中cacheRolesInCookie=false,这似乎是大多数帮助所指向的,并且假设角色管理器中内置了会话缓存。

我已经修改了返回 person 对象的 EF 查询,将时间戳作为查询的一部分。我可以通过探查器看到实际上正在调用查询,并且时间戳每次都会更改,但是我的调试会话显示“人员”项的先前状态的陈旧数据。站点的其他部分显示来自 Person 表的数据,这些数据显示最新状态。

我真的不明白调试器应该如何处理缓存的数据。如果是缓存问题,我不明白为什么 EF 查询会触发,但人员数据肯定会显示第一次运行的状态,而不是表行的当前状态。

我觉得我错过了一些明显的东西。角色管理器是否缓存会话中的数据?

0 投票
1 回答
2409 浏览

java - 无法使用 Apache Shiro 配置获得正确的结果

我正在尝试在我的项目中使用 apache shiro,因为我必须在我的项目中创建一个基于角色的机制。我创建了一个具有以下配置的演示项目...

我在我的项目中创建了以下文件 -

索引.jsp

登录.jsp

success.jsp
denied.jsp
logout.jsp
showUser.jsp

我的shiro.ini配置如下——

我正在使用 servlet LoginTestServlet.java在身份验证成功/不成功后调度到login.jsp页面或success.jsp -

我正在使用 TOMCAT 6.0。

我的问题是——

  1. 每当我尝试在login.jsp页面输入凭据时,它会自动将我带到相应页面以获取我输入的凭据。例如,如果我在单击success.jsp后尝试输入 ROLE_MEMBER 凭据,它会将我带到success.jsp页面。但是,如果我在单击相同的success.jsp后尝试输入 ROLE_ADMIN ,它会根据编写的 servlet 代码自动将我带到secret.jsp,而不是去denied.jsp
  2. 如何在不为每个资源编写单独的 servlet 以显示登录成功或拒绝页面的情况下制作通用代码?

另外,有没有办法在 shiro 中为每个资源创建自定义权限?如果是,那么如何。如果有这方面的链接,我将不胜感激。

谢谢大家。

0 投票
2 回答
4549 浏览

c# - 具有多个角色的自定义 CodeAccessSecurityAttribute

我正在为我们的应用程序开发一些基于角色的安全性,我基本上想做定制的版本 MVC AuthorizeAttribute- 但仅限于业务逻辑层,我们不链接到 MVC。

我看过PrincipalPermissionAttribute但似乎没有办法自定义它,因为它是密封的。我只想创建一个自定义版本,我可以在其中检查任何角色列表中的成员资格,而无需使用多个属性,并且还定义在哪里查找角色成员资格。

.Net 中是否有类似的东西我错过了?或者是否有人对如何在不重新实现 ASP.Net 的 AuthorizeAttribute/RoleProvider/etc 的情况下做到这一点有一些见解?

编辑

我目前有一个命令式版本正在运行,但我宁愿有一个声明属性版本,因为它更容易在方法/类上方看到它。

现在,我的业务层的抽象基类中有以下内容:

我喜欢能够使用Roles.Administratoretc,因为角色名称是可怕的(基于 Active Directory 组......),所以我正在考虑将这些细节包装在自定义属性的构造函数中,我可以在类/方法之上扑通一声.

GetAccountRoles只是可注入角色提供者属性的外观,我可以将其设置为使用 AD 或使用数据库的测试版本。

我可以子类Attribute化,但不确定它会如何启动安全检查。

0 投票
2 回答
7656 浏览

asp.net-mvc-3 - AuthorizeAttribute 与角色但不硬编码角色值

是否可以添加角色但不能硬编码以下值:

我想从数据库或配置文件中检索这些角色,如果我需要为控制器操作添加/删除角色,我不需要重建应用程序。

我知道使用枚举可以做到... http://www.vivienchevallier.com/Articles/create-a-custom-authorizeattribute-that-accepts-parameters-of-type-enum 但即使这样仍然不灵活足以满足我的需要;它仍然是一个硬代码,即使它更干净。

0 投票
2 回答
9109 浏览

c# - asp.net MVC 基于角色的对控制器的访问

很多关于基于角色的访问的在线文章都谈到应用这样的东西来确保对控制器或操作的基于角色的访问

这一切都很好,但是现在如果我需要实现我自己的基于角色的自定义访问,其中我在 [RoleMaster] 表中有角色,并且从另一个名为 [UserRoles] 的表中的 [User] 表中分配给用户的角色。在我的代码中,我将在会话中有一个用户对象,其中现在将有一个角色列表

现在,如何检查 RegisteredUsers 对象的 Roles 列表中的 UserRole.RoleName 属性是否与我使用 [Authorize(Roles = "Admin, Manager")] 分配给 Authorize 属性的任何值匹配。在某些情况下,如果角色具有管理员或经理,他们应该获得访问权限。在某些情况下,我希望他们同时拥有管理员和经理角色来获得访问权限。

此外,如果将来将新角色添加到系统中,我是否需要重新构建和重新部署我的应用程序,并重做所有授权属性?

我无法找到任何实现相同功能的明确示例,或者我可能没有正确搜索。请以任何方式帮助我。谢谢你的时间...