我能够使用JDBC关系使用apache shiro通过数据库验证基于Web的应用程序。此外,我已经能够使用Shiro-Filters为web.xml中的Shiro过滤器配置和shiro.ini中的配置授予对特定Web资源或http URL的访问权限。
现在,我想为webservices实现相同的功能。特别是,如果凭据有效,我希望用户点击login-url获取令牌。之后,必须根据用户的特定令牌验证对Web服务的所有连续请求。 我没有任何线索来实现这一点。任何建议,程序或暗示性链接都可以帮助我很多!!
答案 0 :(得分:3)
我建议您使用jersey网络框架,因为它非常简单,在java和注释中!
如您所知,您可以在shiro.ini中指定您的uri,角色和权限,然后在球衣上制作一个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 annotation reference
答案 1 :(得分:0)
这个mecanic由shiro实现,令牌传递给浏览器并作为cookie存储在客户端导航器上。之后,shiro会将每个连接上的令牌传递给浏览器服务器。
首先尝试让您的应用程序支持身份验证:authen shiro doc
请实施shiro Step by Step project以验证身份验证和自动化的概念! :)
请给我一些反馈。享受它:))
答案 2 :(得分:-1)
使用shiro的用户身份验证显示在shiro example on GIT中。只需分叉这个git就可以了。
Shiro正在传递cookie以保持连接活着! :) cookie的转移由shiro管理,你不必考虑它。
享受:)