问题标签 [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.
spring - Spring AOP 和 apache shiro 配置。未扫描注释
我一直在努力解决需要 AOP 知识的配置。
我必须承认,AOP 是我试图获得一段时间但没有成功的那部分。似乎我的 shiro 注释没有被扫描,因此被忽略了。
我试过使用 shiro 1.1.0+ maven3+spring 3.0.5.RELEASE,休眠 3.6.1.Final 和 ZK 5.0.6。我让我的 hibernaterealm 工作,与数据库交谈,我得到了身份验证工作,我成功(我相信)加载了角色和权限。
所以为了测试授权方面我在我的代码中的某个地方:
它工作正常。
所以我知道我的权限已加载。我使用注释将它放在实现类中会很方便,因为我不打算首先将接口与扩展 ZK GenericForwardController 的控制器类一起使用。
我已经看到了这个错误 ,我决定尝试使用带有@RequiresPersmissions 方法的接口。
显然它仍然无法正常工作,因为它可以访问未经授权的主题。我的日志中没有错误。也许我做错了这里是代码片段:
它的界面:
这是我的 shiro 应用程序上下文
里面有我应该做的事情吗?感谢阅读和帮助
grails - 在 Grails 中为 ShiroUser 指定包
非常非常基本的问题。有没有办法指定将 ShiroUser 和 ShiroRole 类放置在哪里的包(在执行 shiro-quick-start 时)?默认情况下,它们位于 grails-app/domain/,我希望它们位于 /grails-app/domain/com/bla/bla。尝试移动这些类时,Netbeans 的重构工具毫无用处。
谢谢。
gwt - SHA1 哈希的细微差别
我正在进行的一个项目使用 Apache Shiro 作为安全框架。密码经过 SHA1 哈希处理(无盐,无迭代)。登录受 SSL 保护。但是,应用程序的其余部分不受 SSL 保护。在这种情况下(无 SSL)应该有一个用户可以更改密码的表单。由于直接传输它不是一个好主意,因此应该在客户端上对其进行哈希处理,然后再传输到服务器。由于客户端是基于 GWT (2.3) 的,我正在尝试这个库http://code.google.com/p/gwt-crypto,它使用来自 bouncycastle 的代码。但是,在许多情况下(不是全部),两个框架生成的哈希值相差 1-4(?) 个字符。例如“happa3”被散列到
通过这两种实现,而只是“happa”被散列到
通过 Shiro 实施和
通过 gwt-crypto 实现(第 23 个字符不同)。我想知道是否存在“正确”/标准 SHA1 散列以及其中一个库中是否存在错误,或者我对它们的使用是否存在缺陷。我的第一个想法是由于不同的传输机制(RPC 与 Post)而导致的不同编码或奇怪的转换。不过据我所知(以及最让我困惑的是),如果只有一位差异,SHA1 哈希应该很有可能完全不同。所以不同的编码不应该是这里的问题。我在客户端(GWT)上使用此代码进行散列:
这在服务器(Shiro)上:
which afaics 在幕后做了非常相似的事情(快速查看了源代码)。我在这里错过了什么明显的东西吗?
编辑:似乎 GWT 代码由于某种原因不能本机运行(即只是在开发模式下)并且静默失败(尽管它确实编译)。必须找出原因...
编辑(2):“int val = sha1.doFinal(结果,0);” 是造成麻烦的那一行,即如果存在,整个代码不会在本机(JS)中运行,而只能在开发模式下运行(结果错误)
grails - Apache Shiro/Active Directory 集成以支持 Grails Web 应用程序中的 SSO
我正在开发一个使用 Apache Shiro 进行身份验证的 grails Web 应用程序。现在,我被要求在此应用程序中实现 SSO 和 Active Directory 集成。由于我是 LDAP/AD 新手,我很难正确实施它。
这是我所做的,我通过执行某些网站上提到的以下命令生成了 ShiroLdapRealm.groovy 文件。
然后我在 grails-app/conf/Config.groovy 中为 LDAP 添加了一些配置属性。
但是现在我不确定如何在我的应用程序中获取当前登录的 windows 用户并提供一个 UsernamePasswordToken 来针对这个生成的 ShiroLdapRealm 进行身份验证。我只是想为用户来自 Windows Active Directory 的 shiro 提供 SSO 体验。我找不到任何好的文档。
我也很困惑是否使用一些帖子中提到的 ShiroLdapRealm 或 ActiveDirectoryRealm。这两者之间可能有什么区别?什么时候用哪一个?
任何人都可以帮我解决这个问题。
提前致谢。
阿山
grails - 安装插件 [shiro-1.1.3] 时出错:无法删除
圣杯 2.0.0.M1 + shiro-1.1.3
grails> 安装插件 shiro
| 解决插件 JAR 依赖项..
删除日志...
| 已安装插件。
grails> 编译 --staktrace
| 错误 安装插件 [shiro-1.1.3] 出错:无法删除文件 D:\TZProfile.grails\2.0.0.M1\projects\Vote\plugins\shiro-1.1.3\lib\shiro-co re -1.1.0.jar
| Error Error running script compile --staktrace: org.codehaus.groovy.grails.cli .ScriptExitException (使用 --stacktrace 查看完整跟踪)
grails - Grails - ShiroSecurity - 手动登录用户
我正在尝试做相对简单的事情:手动登录用户。我正在使用 FacebookGraph 插件连接到 Facebook。如果用户通过 Facebook 登录,我会得到他的 ID,并且我想在 ShiroSecurity 中对他进行身份验证。当然像这样微不足道的事情
不起作用。我在 wiki 中找到了代码,应该可以解决问题:
但是它不起作用。我仍然被重定向到 auth/login 并显示 ShiroSubject 为空的 log.debug 消息。也许是因为我在服务中调用了这段代码。任何想法如何使这项工作?
更新:
grails - Shiro 标签 'isLoggedIn' 和 'authenticated' 意思一样吗?
我刚刚开始使用 Grails 和 Shiro,我正在考虑将 Shiro 添加到现有项目中。
我想知道 Shiro 标签isLoggedIn
和authenticated
意思是否相同(即总是产生相同的结果)?
Grails Shiro 插件页面似乎是这样建议的:
标记
<shiro:isLoggedIn>
并<shiro:authenticated>
检查经过身份验证的用户,标记<shiro:user>
检查已知用户(经过验证或记住),并且标记<shiro:remembered>
仅检查记住的用户。
但这几乎不是一个深入的描述,也没有解释如果它们相同,为什么它们都存在。
spring-mvc - 使用 ini 文件的 Spring MVC 和 Shiro 配置
我正在尝试使用 Spring MVC 和 Apache Shiro 设置环境。我正在关注 shiro.apache.org 中提到的文章。
我在 web.xml 中使用 Spring 的 DelegatingFilterProxy 作为 Shiro 过滤器。
当前过滤使用以下方法完成:
问题是,如何使用 shiro.ini 文件定义安全设置?
spring-mvc - Shiro Spring JDBCRealm 身份验证和授权
主意
我需要使用 Spring MVC 和 Shiro 作为安全框架来开发一个 Web 应用程序。
要求
要存储在数据库中的用户名、密码、角色等。数据库架构:
密码应在表中进行散列和加盐处理。
Web 应用中的 Shiro Filter 应该是DeligatingFilterProxy
利用 Spring 的配置机制
除 /login 外,所有请求都应经过身份验证,例如
如果身份验证成功,框架应该路由到/dashboard
所有 URL 都由 Spring Controller 处理,称为MainController
问题
我们如何解决上述要求?什么配置转到什么文件?
请帮忙。
spring-mvc - 当@Controller重定向到登录页面时如何配置Shiro + Spring MVC
我有一个典型的 Spring MVC + GWT 架构,其中 Apache Shiro 作为安全层。
问题:无论使用什么协议向 App 服务器发出请求,页面都应该以请求的“X-Forwarded-Proto”标头中指定的协议返回(因此,应用服务器可以接收 HTTP 请求,但如果标头表示 HTTPS,它应该使用 HTTPS 响应)。显然,Shiro-Spring 教程中指定的配置不会起作用,因为它与协议无关(login.jsp 将使用请求中使用的协议返回):
可能的解决方案:
使用 @Controller 重定向到具有指定协议的登录视图:
并将 shiro 配置中的 loginUrl 更改为指向 /login,以便 @controller 捕获它:
但是使用这种配置,虽然我得到了相同的登录页面,但myRealm (com.myapp.security.DBRealm) 根本没有被触发(意味着没有检查凭据),并且登录总是失败。似乎重定向的页面失去了对领域的“钩子”。
关于我做错了什么的任何想法?