java做RESTful Web Service(API)如何解决验证的问题

问题描述

由于restfulwebservice是stateless无状态的,这样如何才能进行使用者的身份验证呢?哪位前辈可以提供一点思路吗?或者说,有现成的框架可以利用的?找到一篇文章:不知道文中的方法,是不是现在业界最常用的办法呢?或者说,是不是业界证明最好最有效的办法?

解决方案

解决方案二:
REST服务的安全,一般依赖于HTTP认证,HTTP认证有几种:basic,digest,token,这些都有标准的实现的开源包需要主要的是这个认证的帐号跟你业务的帐户实际是不一样的,REST属于webService一种,他的安全是后台服务的安全,因此不需要实际的业务帐号,通常是系统keyStore证书库里的账户
解决方案三:
引用楼主bigbro001的回复:

由于restfulwebservice是stateless无状态的,这样如何才能进行使用者的身份验证呢?哪位前辈可以提供一点思路吗?或者说,有现成的框架可以利用的?找到一篇文章:不知道文中的方法,是不是现在业界最常用的办法呢?或者说,是不是业界证明最好最有效的办法?

RESTFulurl也可以用session进行验证啊。加个filter过滤一下需要验证的URL,或者直接在你的restaction里验证。
解决方案四:
我用Shiro,很好用,是一个使用简单,功能强大的安全验证框架。
解决方案五:
验证可以单独作为一个前置服务做,比如可以借助ldap等。
解决方案六:
引用2楼skgary的回复:

Quote: 引用楼主bigbro001的回复:
由于restfulwebservice是stateless无状态的,这样如何才能进行使用者的身份验证呢?哪位前辈可以提供一点思路吗?或者说,有现成的框架可以利用的?找到一篇文章:不知道文中的方法,是不是现在业界最常用的办法呢?或者说,是不是业界证明最好最有效的办法?

RESTFulurl也可以用session进行验证啊。加个filter过滤一下需要验证的URL,或者直接在你的restaction里验证。

这样岂不是每个请求都要附加用户信息??未免效率太低了吧。。。
解决方案七:
引用3楼Inhibitory的回复:

我用Shiro,很好用,是一个使用简单,功能强大的安全验证框架。

哦?shiro还可以用来验证restful的服务?请问前辈可以给个简单的代码例子吗?拜谢!
解决方案八:
RESTFul与服务没有关系?REST的本质是设计风格,不是技术。REST的URL还是个URL,就是个普通的URL,访问这个URL的时候,先被ServletFilter(即Shiro的Filter)拦截住,判断你有没有登录,权限等,如果没有就不让访问,如果有就进入Dispatcher进入对应的处理流程。Shiro可以用在Web,非Web环境。看Shiro的例子
解决方案九:
引用5楼bigbro001的回复:

Quote: 引用2楼skgary的回复:
Quote: 引用楼主bigbro001的回复:
由于restfulwebservice是stateless无状态的,这样如何才能进行使用者的身份验证呢?哪位前辈可以提供一点思路吗?或者说,有现成的框架可以利用的?找到一篇文章:不知道文中的方法,是不是现在业界最常用的办法呢?或者说,是不是业界证明最好最有效的办法?

RESTFulurl也可以用session进行验证啊。加个filter过滤一下需要验证的URL,或者直接在你的restaction里验证。

这样岂不是每个请求都要附加用户信息??未免效率太低了吧。。。

session是附加在cookie上的,对你应用来说是透明的。你用框架,基本上也是用这个机制实现的

时间: 2024-10-27 09:07:38

java做RESTful Web Service(API)如何解决验证的问题的相关文章

使用Java创建RESTful Web Service(转)

REST是REpresentational State Transfer的缩写(一般中文翻译为表述性状态转移).2000年Roy Fielding博士在他的博士论文"Architectural Styles and the Design of Network-based Software Architectures"<体系结构与基于网络的软件架构设计>中提出了REST. REST是一种体系结构.而HTTP是一种包含了REST架构属性的协议. REST基础概念 在REST中所

Java RESTful Web Service实战(第2版)

Java核心技术系列 Java RESTful Web Service实战 (第2版) 韩陆 著 图书在版编目(CIP)数据 Java RESTful Web Service实战 / 韩陆著. -2版. -北京:机械工业出版社,2016.7 (Java核心技术系列) ISBN 978-7-111-54213-1 Ⅰ. J-   Ⅱ. 韩-   Ⅲ. JAVA语言-程序设计   Ⅳ. TP312 中国版本图书馆CIP数据核字(2016)第156331号 Java RESTful Web Servi

Java RESTful Web Service实战(第2版) 导读

Java核心技术系列 Java RESTful Web Service实战 (第2版) 韩陆 著   半年前初识韩陆的时候,我们就聊到他正在写的这本书,当得知我从2006年就参与了Apache CXF开发,他立即邀请我为他的新书写序,我也就欣然答应了. Apache CXF作为JAXWS以及JAX-RS规范的实现框架,已经成为很多Web服务开发者必选的开发框架.作为这一框架的开发维护者之一,我的日常工作经常需要熟悉这些JSR规范,并实现JSR所定义的API,解决最终用户的使用问题. 熟悉Java

Java RESTful Web Service实战(第2版) 1.2 解读REST服务

1.2 解读REST服务 RESTful对应的中文是REST式的,RESTful Web Service的准确翻译应该是REST式的Web服务,我们通常简称为REST服务.RESTful的应用或者Web服务是最常见的两种REST式的项目部署.存在的方式.本节将介绍REST服务并对比其与传统Web Services的不同. 1.2.1 REST式的Web服务 RESTful Web Service是一种遵守REST式风格的Web服务.REST服务是一种ROA(Resource-Oriented A

Java RESTful Web Service实战(第2版) 1.3 解读JAX-RS标准

1.3 解读JAX-RS标准 JAX-RS是Java领域的REST式的Web服务的标准规范,是使用Java完成REST服务的基本约定. 1.3.1 JAX-RS2标准 Java领域中的Web Service是指实现SOAP协议的JAX-WS.直到Java EE 6(发布于2008年9月)通过JCP(Java Community Process)组织定义的JSR311(http://www.jcp.org/en/jsr/detail?id=311),才将REST在Java领域标准化. JSR311

用 Jersey 2 和 Spring 4 构建 RESTful web service

本文介绍了如何通过 Jersey 框架优美的在 Java 实现了 REST 的 API.CRUD 的 操作存储在 MySQL 中 1. 示例 1.1 为什么 Spring 可以对于 REST 有自己的实现(见 https://spring.io/guides/tutorials/rest/). 但本文展示的是用 "官方" 的 方法来实现 REST ,即使用 Jersey. 1.2 它是做什么的? 管理 资源. REST API 将允许创建.检索.更新和删除这样的资源. 1.3 架构及技

JavaScript跨域请求RESTful Web Service

当我们用js请求RESTful Web Service的时候,通常会出现跨域无法访问的问题,也就是无法正常得到我们要的值.jsonp是个解决问题的方法.但是,我们希望访问RESTful Web Service就像一般的ajax方法一样,不用每个都去搞一个jsonp和callback.这就需要我们在服务端进行一些设置,下面我用一个简单的 Filter来进行说明,其他比较复杂的情况根据自己的需求进行改动. import java.io.IOException; import javax.servle

java端RESTful web services的几种实现方式

1) 利用JAX-WS的Dispatch/Provider对 在JAX-WS中,我们可以跳过SOAP栈的处理,直接调用Service Endpoint,这样我们就可以传输POX(Raw xml)或者JSON给Service Endpoint处理,并可以通过MessageContext拿到HTTP method,从而进行判断,调用不同的逻辑.需要注意的是将Endpoint的@WebService替换成@WebServiceProvider,需要实现Provider<Source>接口.接着将Bi

Building a RESTful Web Service(转)

Building a RESTful Web Service This guide walks you through the process of creating a "hello world" RESTful web service with Spring. What you'll build You'll build a service that will accept HTTP GET requests at: http://localhost:8080/greeting a