java - Apache Shiro 是我的案例的正确选择吗?

标签 java authentication authorization shiro

我正在尝试实现模块化身份验证/授权应用程序。我想知道 Shiro 是否是正确的选择。我想要的是拥有一个我可以插入的系统,也许以后可以交换一些身份验证端点和授权端点。我希望能够使用 shiro 进行身份验证(例如,我将为 shiro 实现 facebook 插件,或为 shiro 实现 ldap 插件,我可以轻松地将其插入我的身份验证/授权应用程序)。我也可能希望使用与 shiro 不同的框架实现授权。

我想知 Prop 有自定义 session 及其主题和领域的 shiro 是否能够像我描述的那样做这些事情? 目前我认为 Shiro 是一个非常动态的框架,它允许做这样的事情,但我可能是错的,因为我以前从未使用过。自定义身份验证模块 (imo) 可能会作为新领域插入,但我不确定这是否适用于授权?

我也不明白当我想对 web 应用程序设置限制时如何使用 shiro 角色和权限系统,例如我想对给定的 url/url 组进行限制。我认为实现它的唯一方法是创建一个自定义映射器,它将给定的角色映射到权限。例如,在某些数据库中,我将拥有所有 url,而在单独的表中,我将拥有角色列表。然后我会为每个角色添加一组 URL。 我不知道如何使用 shiro 权限系统来实现 URL 限制。

请告诉我 shiro 是否是一个不错的选择,或者我应该进入其他框架(也许是 spring security?)

最佳答案

我现在处于你的位置,我必须在 Shiro 和 Spring Security 之间做出选择。

我能够使用这两种工具实现您所描述的内容,但从我目前了解到的情况来看,SS 具有更松散的耦合架构,因此更能满足您的特定需求并且更易于定制。

我的观点背后的一个原因是使用 SS 更容易实现我需要的某些功能,角色的访问策略。

所以在 Shiro、SS、Heras、OACC、OWASP 之间……Shiro 是第二种解决方案,SS 是第一种。

关于java - Apache Shiro 是我的案例的正确选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27282163/

相关文章:

java - 为什么 ExecutorService.submit 将 Errors 包装在 ExecutionException 中?

php - 使用 HTTP header 重定向到不同的页面/文档还是合并动态消息来通知用户访问被拒绝,哪个更好?

ASP.Net MVC优雅的UI和ModelBinder授权

Symfony 2.3 getRequest()-> headers 不显示授权承载 token

.net-core - Swagger 授权承载不发送

java - 从java中的String数组中删除所有非字母字符

java - 我可以让 Java 编译器发出特定的错误消息并停止编译吗?

java - 在 JavaFX 桌面应用程序中获取远程 IP 地址

authentication - 什么是私钥挑战?

django覆盖auth登录方法