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

标签 rest jakarta-ee shiro

我正在创建一个使用 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/

相关文章:

git - Azure DevOps 通过 REST API 获取链接到工作项的提交

ios - 实现类似于 Evernote 的同步功能

javascript - 通过带有 Trello 对象的 javascript 的 Trello API

java - 项目转换为maven后JSP类未定义类型

java - 用于提供静态内容的 Servlet

Apache Shiro 与 Java EE 原生 API

javascript - Websocket API 取代 REST API?

java - 如何将阿拉伯语csv加载到MYSQL

shiro - Zeppelin LDAP 身份验证

java - Spring 上的 Apache Shiro session 管理