我正在创建一个使用 Shiro 作为安全框架的应用程序。
该应用程序有两个部分;网络和休息。
Web 使用的是 Shiro 的默认设置 FormAuthenticationFilter
.
我对基于 session 的方法感到满意。
使用 Rest 的独立应用程序,我想限制使用 FormAuthenticationFilter
并从创建 session 开始,我可以通过 shiro.ini
完成此操作文件
我需要在其余服务上实现基于凭据的安全性。
在网上浏览时,我看到一些博客建议您创建自己的 Realm 并过滤以处理这种情况。但没有关于如何做到这一点的详细信息。
是否可以在 Apache Shiro 上实现基于凭据的安全性?如果是这样,是否有博客或教程向您展示如何实现这一目标?
问候
最佳答案
您可以对 Web 服务端点使用基本身份验证,对 Web 使用基于表单的身份验证。
网络用户是否也可以访问您的网络服务?
编辑:
查看此示例应用程序。 https://github.com/dominicfarr/skybird-shiro
它在 shiro 中配置了三个 url 路径。
web - 使用表单例份验证。
api - 使用基本身份验证。
Jersey - 匿名访问。
切到 shiro.ini 配置。
[main]
authc.loginUrl = /web/login.html
sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager
sessionDAO = org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO
securityManager.sessionManager = $sessionManager
securityManager.sessionManager.sessionDAO = $sessionDAO
[users]
dom = password, user
[roles]
user = standard
[urls]
/web/login.html = authc
/web/** = authc
/api/** = authcBasic
/jersey/message = anon
关于rest - 基于 Apache Shiro 凭据的 Rest 服务安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22528801/