问题标签 [shiro]

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 投票
1 回答
5524 浏览

java - 对 Apache Shiro 和自定义授权领域感到困惑

我正在尝试为 Apache Shiro 创建一个简单的授权领域以进行测试:

如您所见,它并不关心用户是谁——它只返回一个角色和一个特定的权限。

现在,我正在尝试在以下代码段中对其进行测试:

我收到以下输出

:(

所以看来角色配置正确(因为用户只有角色kota),但是权限不行(为什么要打印koko2???)!!!

谁能向我解释我做错了什么?

蒂亚!

0 投票
2 回答
3095 浏览

java - 如何获取/设置 JdbcRealm 的盐

我正在尝试使用 Shiro JdbcRealm 和 SHA256 hashedcredentialsMatcher。我需要更新旧数据库并为每个用户分配适当的盐(通过批处理例程)。

如何使用 Shiro 框架获取/设置给定帐户的盐?

0 投票
1 回答
3680 浏览

multi-tenant - Shiro 的多租户

我们正在为我们正在构建的自定义 Saas 应用程序评估 Shiro。似乎一个伟大的框架可以完成我们想要的 90% 的工作,开箱即用。我对 Shiro 的理解是基本的,这就是我想要完成的。

  • 我们有多个客户,每个客户都有一个相同的数据库
  • 所有授权(角色/权限)将由客户端在他们自己的专用数据库中配置
  • 每个客户端将有一个唯一的虚拟主机,例如。client1.mycompany.com、client2.mycompany.com 等

方案 1

方案 2


问题:

Sc 1 & 2 的共同点如何告诉 Shiro 使用哪个数据库?我意识到必须通过某种自定义身份验证过滤器来完成,但是有人可以指导我采用最合乎逻辑的方式吗?计划使用虚拟主机 url 告诉 shiro 和 mybatis 使用哪个 DB。

我是否为每个客户端创建一个领域?

Sc 1(由于 LDAP,用户名在客户端之间是唯一的)如果用户 jdoe 由 client1 和 client2 共享,并且他通过 client1 进行身份验证并尝试访问 client2 的资源,Shiro 会允许还是让他再次登录?

Sc 2(仅在数据库中唯一的用户名)如果客户端 1 和客户端 2 都创建了一个名为 jdoe 的用户,那么 Shiro 是否能够区分客户端 1 中的 jdoe 和客户端 2 中的 jdoe 吗?

我的解决方案基于 Les 的输入..

新型代币..

修改我继承的 JDBC Realm

最后在登录时使用新令牌

0 投票
1 回答
2982 浏览

java - Apache shiro LDAP 多个 OU

我正在尝试配置 apache shiro 以使用我们的 LDAP 服务器进行身份验证。我对LDAP不是很熟悉,所以请原谅我的无知!

在 shiro.ini 中使用以下选项可以正常工作(用户已通过身份验证):

但是,我们公司有不止一个组织单位(ou)。如何使 ou 参数采用多个值?我可以用这个吗

我只想尝试所有组织单位,直到登录成功。

添加具有不同 ou 的额外 ldap 领域怎么样:

这行得通吗?

还可以在登录页面中添加一个下拉列表以允许用户选择他们的组织单位并将其作为参数传递给 ldapRealm 吗?我应该如何处理?

TIA,塞拉芬

0 投票
2 回答
2988 浏览

java - 结合 shiro:hasPermission 标签

我正在使用标签

根据当前用户拥有的权限,在我的 JSP 的各个位置显示或隐藏内容。

但是,有时我需要组合权限,例如

或者

我怎么能这样做?我可以在 <c:if> 标签中使用 hasPermission 吗?shiro 是否有可用的东西或者我应该实现自己的 EL 函数?

TIA,

塞拉芬

0 投票
1 回答
1324 浏览

spring-mvc - Spring MVC MultiActionController 和 Apache Shiro

我正在尝试将 Apache Shiro 与 Spring MVC 一起使用。

我们公开(并希望保护)的控制器扩展了 MultiActionController。我已经按照他们在这里描述的方式为 Spring 配置了 Apache Shiro:http: //shiro.apache.org/spring.html

我想在我的控制器方法上使用 @RequiresRoles 注释,但它不起作用......

它不会在日志中给出任何错误,从我在调试中看到的情况来看,似乎只检查了 AbstractController(MultiActionController 的超类)中的 handleRequest 方法的注释。

从handleRequest 到我的注释方法的“内部”调用不是通过代理调用的,因此没有检查Shiro 注释。

尽管事实上它是对与调用者相同对象的方法的调用,但我能否以某种方式通过代理调用我的方法?

或者有没有其他解决这个问题的方法?

提前致谢

0 投票
3 回答
1743 浏览

tomcat - Apache shiro - 我怎么知道缓存正在为授权工作?

我在我的 Tomcat 中使用 Apache Shiro,我想通过 EhCache 启用授权缓存。

我所做的是在 shiro.ini 中添加这两行:

并将 ehcache-core-2.5.1.jar 复制到我的 WEB-INF/lib 目录中。对于授权,我实现了一个从 MySQL 数据库读取权限的自定义领域。所以我想启用缓存以尽可能减少对数据库的查询......我不得不提到我对EhCache并不熟悉,我只想启用授权的缓存!

如果我正确理解了 Shiro 文档,以上内容足以启用缓存 - 但是我没有看到:(

Tomcat 无异常启动,并且在测试 JSP 中,我使用的授权起初工作正常。如果我对数据库的权限进行更改,我会看到测试 JSP 立即意识到更改!我期待测试 JSP 会从缓存中返回值......你能告诉我可能有什么问题吗?另外,有没有办法查明是否实际调用了 EhCache 以及它的行为方式(如果需要启用日志记录,如果您提供详细信息,我将不胜感激,因为我对此不太熟悉)。

更新:我还必须提到我添加了该行

在我的自定义领域的初始化中,我得到了真实!

TIA,

塞拉芬

0 投票
2 回答
514 浏览

grails - 在 grails 中设置 ini 文件

我正在尝试使用 ini 文件通过 shiro 插件登录到 grails 应用程序。我创建了一个ini文件并将其放在config文件夹中。ini 如下所示。

createSecurityManager()我使用在引导程序中调用的方法创建了一个服务:

当我尝试使用用户名admin和密码heslo登录时,登录失败。

0 投票
1 回答
1865 浏览

spring - Shiro授权异常如何处理?

我已经开始在使用 spring mvc 3.0.5 和 zk 5.0.8 作为管理员的 Web 应用程序中使用 shiro 1.1.0。我没有 shiro 注释工作,所以我在安全应用程序上下文中指定了 requredroles:

这工作正常并将我重定向到我创建的未经授权的分页。现在我得到了注释工作,所以我在一个类的顶部使用了@RequiresRoles(value={"manager","admin","superadmin"}):

它抛出

org.apache.shiro.authz.UnauthorizedException:主题没有角色 [经理]

使用注释来捕获此类授权时,有什么要激活的吗?

感谢您阅读本文。

0 投票
1 回答
830 浏览

ajax - 在与 JSF 和 Apache Shiro 的 Ajax 交互中处理身份验证

我正在使用 Apache Shiro 开发 JSF 应用程序。一切都很好,除了当 UI 通过 ajax 与服务器交互时,web 什么都没有反映。如何配置应用程序,以便在 UI 通过 ajax 与服务器交互时将用户重定向到登录页面。

有人可以帮助我吗?先感谢您。