[英]Restful Web service Authentication and Authorization with Apache Shiro
我能够通过使用JDBC relam的数据库使用apache shiro对基于Web的应用程序进行身份验证。 此外,我可以通过使用Shiro过滤器来授予对特定Web资源或http url的访问权限,使用web.xml中的Shiro过滤器配置和shiro.ini中的配置。
现在,我也想为Web服务实现相同的功能。 特别是,如果凭据有效,我希望用户点击登录URL以获取令牌。 然后,必须基于该用户的特定令牌来验证对Web服务的所有后续请求。 我没有任何线索来实现这一目标。 任何建议,程序或暗示性链接都可以帮助我很多!
我建议您使用jersey web框架,因为它非常简单,在Java中带有注释!
如您所知,您可以在shiro.ini中指定您的uri,角色和权限,然后在jersey上创建一个Web项目。
之后,在Java代码中的使用就清晰而简单了! 了解如何找回
球衣代码:
/**
* login to app
* @param username
* @param password
* @return
* since v0.6.4
*/
@PUT
@Path("login")
@Produces({"application/json"})
public Response loginv3(
@FormParam("username") String username,
@FormParam("password") String password){
return login(username, password);
}
在这种情况下,只有在用户连接并且具有“阅读者”角色的情况下,我们才会检索图书:
@GET
@Path("/books")
@Produces({"application/json"})
@RequiresUser
@RequiresRoles("reader")
真的很简单! 请参见shiro文档: shiro注释参考
该机制由shiro实现,令牌传递到浏览器,并作为cookie存储在客户端导航器上。 之后,shiro将在每次连接上将令牌传递到服务,然后通过浏览器。
首先尝试使身份验证符合您的应用程序要求: authen shiro doc
请实施shiro Step by Step项目 ,以验证身份验证和自动化的概念! :)
请给我一些反馈。 好好享受 :)
在GIT上的shiro示例中显示了使用shiro进行用户身份验证。 只需分叉此git即可使其正常工作。
Shiro正在传递cookie,以保持连接状态! :) Cookie的传输由shiro管理,您无需考虑它。
请享用 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.