apache - 使用 Apache Shiro 进行 Restful Web 服务身份验证和授权

标签 apache web-services rest shiro

我能够通过使用 JDBC relam 的数据库使用 apache shiro 对基于 Web 的应用程序进行身份验证。此外,我能够连续使用 Shiro 过滤器来授予对特定 web 资源或 http url 的访问权限,使用 web.xml 中的 Shiro 过滤器配置和配置到 shiro.ini。

现在,我也想为 Web 服务实现相同的功能。特别是,如果凭据有效,我希望用户点击登录 url 以获取 token 。之后,必须根据用户的特定 token 验证对 Web 服务的所有连续请求。
我没有任何线索来实现这一点。任何建议、程序或提示性链接都对我有很大帮助!!

最佳答案

我建议你使用 jersey web框架,因为它非常简单,在java中并带有注释!

您可以在 shiro.ini 中指定您的 uri、角色和权限,然后在 jersey 上创建一个 Web 项目。

之后在java代码中的使用就简单明了!查看如何取回

Jersey 代码:

/**
     * 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

关于apache - 使用 Apache Shiro 进行 Restful Web 服务身份验证和授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23906682/

相关文章:

php - 如何在 Mac 上的不同目录中设置 PHP 的 PATH

apache - 使用 htaccess 进行子域重定向而不更改地址栏中的 URL

.net - 是否要在 Web 服务中返回数据集?

asp.net - 如何调用 Web 服务并使用 URL 传递参数

spring-boot - Spring Boot使用ControllerAdvice中的自定义错误处理所有错误

java - 何时在 lucene 中进行索引

apache - 如何修改包含路径和参数的查询字符串?

linux - 为什么您选择的论坛软件最适合您?

web-services - 交换预约类型

java - reactx 和 REST Web 服务