我使用Shiro作为安全框架创建应用程序。 该应用程序有两个部分;网络和休息。
网络正在使用Shiro的默认FormAuthenticationFilter
。
我对基于会话的方法感到满意。
使用Rest的独立应用,我想限制使用FormAuthenticationFilter
和创建会话,我可以通过shiro.ini
文件
我需要在其余服务上实现基于凭据的安全性。
在网上浏览我看到一些博客建议你创建自己的Realm和过滤器来处理这种情况。但没有关于如何做到这一点的细节。
是否可以在Apache Shiro上实现基于凭据的安全性?如果有,是否有博客或教程向您展示如何实现这一目标?
问候
答案 0 :(得分:3)
您可以将基本身份验证用于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