休息,glassfish4 shiro 启用工作样本
Posted
技术标签:
【中文标题】休息,glassfish4 shiro 启用工作样本【英文标题】:rest, glassfish4 shiro enabled working sample 【发布时间】:2014-09-27 14:10:46 【问题描述】:我是 javaee 开发的新手。我正在尝试构建一个 javaee 应用程序,其中驻留在 Glassfish4 上的其余服务将由移动客户端调用。我在网上遇到了用于身份验证和授权的 apache shiro 框架。我想使用 shiro 来保护服务。 目前我正在尝试使用一些硬编码用户配置基本身份验证以获得信心。我的最终目标是将用户存储移动到数据库中。
按照 apache shiro 教程,我配置了我的 web.xml 和 shiro.ini。
1) 但是不知何故,其余的服务仍然是开放的,我可以在没有任何密码的情况下调用它们。 shiro.ini 没有在我的应用程序中正确加载吗?
2) 将来我将有来自多个应用程序的多个休息服务,所以我也需要为所有这些服务配置 shiro 吗?有没有办法使用单个 shiro 配置来处理多个 webapp 的身份验证和授权?
3) 如果您有类似的工作示例,请指出。
项目位置
网址:https://github.com/debashisgho/MyApp/
我可以在不使用任何用户/密码的情况下获取资源数据
http://localhost:8080/MyApp/rest/MyResource
我确定我没有正确配置它。需要帮助找出缺少的东西。
【问题讨论】:
检查您的依赖项,特别是 shiro-jersey,该库将 Shiro 支持添加到 Jersey。确保正确配置 (github.com/silb/shiro-jersey) 谢谢秃头。我正在使用 javaee 容器 glassfish 来运行我的服务。我还需要使用 shiro-jersey 吗? 【参考方案1】:您能否告诉您是否在控制台中看到任何错误或看到 shiro 环境已成功初始化。
你可以试试
<filter>
<filter-name>ShiroFilter</filter-name>
<filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
</filter>
而不是
<filter>
<filter-name>ShiroFilter</filter-name>
<filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
<init-param>
<param-name>configPath</param-name>
<param-value>classpath:shiro.ini</param-value>
</init-param>
</filter>
【讨论】:
我在取出init-parm后重新部署了应用程序war。严重:[admin-listener(8)] INFO org.apache.shiro.web.env.EnvironmentLoader - Shiro 环境在 298 毫秒内初始化。 INFO:MyApp 在 1,172 毫秒内成功部署。信息:启动 Jersey 应用程序...严重:PWC6117:找不到文件“..glassfish\domains\domain1\applications\MyApp\login.jsp”。还是不行。【参考方案2】:将 shiro 配置更改为以下内容后,基本身份验证和授权工作正常 稍后我将尝试将其集成到数据库中。但这让我相信 Shiro 会起作用。
[main]
authBasic = org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter
[users]
# format: username = password, role1, role2, ..., roleN
root = secret,admin
guest = guest,guest
[roles]
#format; roleName = permission1, permission2, ..., permissionN
admin = *
[urls]
/api/** = authBasic
我没有得到第二个问题的答案是否可以为多个 webapp 配置单个 shiro.ini。
【讨论】:
以上是关于休息,glassfish4 shiro 启用工作样本的主要内容,如果未能解决你的问题,请参考以下文章
JEE、eclipselink、glassfish4.0 无法持久化实体
使用 Shiro 注销时出现 IllegalStateException
Shiro / CDI 注入安全主体适用于 Glassfish 但不适用于 Wildfly