Apache Shiro凭据基于Rest服务的安全性

时间:2014-03-20 09:38:30

标签: rest java-ee shiro

我使用Shiro作为安全框架创建应用程序。 该应用程序有两个部分;网络和休息。

网络正在使用Shiro的默认FormAuthenticationFilter。 我对基于会话的方法感到满意。

使用Rest的独立应用,我想限制使用FormAuthenticationFilter和创建会话,我可以通过shiro.ini文件

我需要在其余服务上实现基于凭据的安全性。

在网上浏览我看到一些博客建议你创建自己的Realm和过滤器来处理这种情况。但没有关于如何做到这一点的细节。

是否可以在Apache Shiro上实现基于凭据的安全性?如果有,是否有博客或教程向您展示如何实现这一目标?

问候

1 个答案:

答案 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