`
ajax
  • 浏览: 253686 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Restlet实战(二十一)如何保护确定的资源(续)

    博客分类:
  • REST
阅读更多

Restlet实战(十七)如何保护确定的资源 中我给出一个如何保护确定资源的解决方案,大致是override类Guard中的doHandle方法,然后加入我们自己的判断逻辑。在结尾,我也提出了自己的疑问:判断那些Uris需要认证保护应该由Restlet来完成,而不是由开发者自己写逻辑代码。

 

本篇文章将结合一个示例介绍如何解决上述问题。此示例将对/customers, /customers/{customerId}这两个Uris进行保护认证,而对/users不作任何认证校验。

 

大致思路是: 创建两个Router,其中一个router attach我们创建的Guard,这个Guard将负责具体的认证校验。而所有受保护的资源attach到这个Guard,而另外一个router则attach所有不需要认证保护的资源,也就是上面示例中的/users.

 

 

 思路有了,其它的修改就很容易了,我们修改一下之前的配置文件就可以完成这样的功能。

 

<bean id="component" class="org.restlet.ext.spring.SpringComponent">
	<property name="defaultTarget" ref="defaultRouter" />
</bean>

<bean id="customerResolver" class="com.infosys.restlet.filter.CustomerResolver"/>

<bean id="defaultRouter" class="org.restlet.ext.spring.SpringRouter">
	<property name="attachments">
		<map>
			<entry key="/protection">
					<bean class="com.infosys.restlet.filter.CustomerGuardFilter"> 
						<property name="next" ref="restRoute"/>
						<property name="secretResolver" ref="customerResolver"/> 
					</bean>
			</entry>
			<entry key="/users">
				<bean class="com.infosys.restlet.application.UserApplication"/>
			</entry>
		</map>
	</property>
</bean>

<bean id="restRoute" class="org.restlet.ext.spring.SpringRouter">
	<property name="attachments">
		<map>
			<entry key="/customers">
				<bean class="org.restlet.ext.spring.SpringFinder">
					<lookup-method name="createResource" bean="customersResource" />
				</bean>
			</entry>
			<entry key="/customers/{customerId}">
				<bean class="org.restlet.ext.spring.SpringFinder">
					<lookup-method name="createResource" bean="customerResource" />
				</bean>
			</entry>
		</map>
	</property>
</bean>

 

 照例解释一下,首先配置一个default router,指定它为Component的defautlTarget属性的值。在这个default router, 配置了两个元素,请注意,这里很关键,一个是我们创建的Guard的子类,即CustomerGuardFilter,对应的Uri key是/protection, 意思是在客户端请求的URL中,/protection应该紧跟在base ur之后,在这个Guard类的next属性配置的,就是我们要保护的所有的资源,即在上面配置文件中restRoute。

 

另外,我们直接配置/users,因为其不需要保护。

 

 

下面做一个简单的测试:

 

打开浏览器,输入http://localhost:8080/restlet/resources/protection/customers , 就会有一个校验的对话框出现,需要输入用户名和密码,分别为login和secret:



 点OK后,就会通过认证,然后执行响应的资源。

 

而如果在浏览器地址输入 http://localhost:8080/restlet/resources/users, 由于配置中,此Uri非受保护,所以,不会有什么认证校验,而是直接读取资源。

  • 大小: 34.4 KB
分享到:
评论
1 楼 andyjackson 2010-07-17  
我想问一下ajax先生,对于ajax(如jquery)的请求,如何认证

相关推荐

    Restlet实战(二十六)事务 (Transaction)

    本文将深入探讨RESTful服务中的事务处理,并以《Restlet实战(二十六)事务 (Transaction)》为例进行解析。 首先,我们要理解RESTful服务中的核心原则之一是无状态(Stateless)。这意味着每个客户端请求都包含处理...

    restlet2.1学习笔记项目代码

    在Restlet中,资源由`org.restlet.resource.ServerResource`或`org.restlet.resource.ClientResource`类表示,负责处理请求并返回响应。 3. **代表(Representation)**:在REST中,资源的状态通过数据的表示形式...

    restlet

    RESTlet是一款开源框架,专为构建基于REST(Representational State Transfer)原则的Web服务和应用程序设计。REST是一种轻量级的架构风格,广泛应用于互联网应用的开发,它强调通过简单的HTTP方法(如GET、POST、...

    Restlet 2.0 边学边写(八)使用jQuery和ajax实现对Restlet资源的CRUD操作

    在本篇博文中,我们将深入探讨如何利用jQuery和Ajax技术与Restlet 2.0框架进行交互,实现对Restful资源的创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作,即CRUD操作。Restlet是一个开源的Java ...

    Restlet开发的Basic认证

    通过这个基本认证的例子,开发者可以了解Restlet框架如何与HTTP协议的认证机制结合,以及如何在实际应用中保护资源的安全。理解这一概念对于开发安全的REST服务至关重要,特别是在处理敏感数据或需要授权访问的场景...

    restlet实现最简单的restful webservice

    3. **定义路由**:在Restlet应用中,你需要创建一个路由(Route)来映射URL到对应的资源。这可以通过创建一个Application类来完成。 ```java import org.restlet.Application; import org.restlet.Restlet; ...

    restlet项目

    1. **Restlet**: 是框架的基本构建块,代表了REST架构中的资源。一个Restlet可以响应特定的URI,处理HTTP请求,并返回适当的响应。 2. **Client/Server Connector**: 这些组件允许Restlet与网络进行交互,处理...

    RESTLET开发

    ### RESTLET开发实例详解 #### 一、RESTLET框架简介 **RESTLET**是一个轻量级且全面的框架,旨在实现REST(Representational State Transfer)原则与Java类之间的映射。该框架支持广泛的REST式系统构建,不仅仅...

    restlet处理各种请求方式参考示例

    在Restlet中,应用程序由资源(Resource)组成,这些资源是可交互的对象,它们响应客户端的请求并提供响应。资源通过代表者(Representation)来表达其状态,代表者可以是文本、图像或其他任何形式的数据。 1. GET...

    Restlet开发实例

    Restlet是一款强大的开源框架,专为构建RESTful(Representational State Transfer)Web服务而设计。REST是一种轻量级的架构风格,广泛应用于Web应用程序的开发,以提高性能、可伸缩性和可维护性。本系列的开发实例...

    RESTLET框架学习书籍

    - 整合Restlet的资源、过滤器和路由器。 - 实现一个完整的Restlet应用案例。 - **第四章:本地部署Restlet应用**: - 在本地Java SE环境或Java EE服务器上部署应用。 - 测试和调试已部署的应用。 #### 五、参考...

    Restlet所需要的所有jar包

    此外,理解RESTful设计原则,如资源的URI定位、状态码的使用、无状态通信等,对于有效利用Restlet构建高质量的Web服务也是十分必要的。 总之,"Restlet所需要的所有jar包"的压缩包提供了开发RESTful服务的基础环境...

    org.restlet-2.3.0.jar 最新版本

    《深入理解org.restlet-2.3.0.jar:Java RESTful开发的得力助手》 在Java开发领域,REST(Representational State Transfer)架构风格已经成为构建Web服务的主流选择,而org.restlet-2.3.0.jar则是实现RESTful API...

    org.restlet.jar

    org.restlet.jar

    Restlet in action 英文 完整版

    第五章“Securing a Restlet application”则深入探讨了如何保护Restlet应用免受安全威胁。内容包括但不限于身份验证机制、授权策略以及如何实施加密技术来保障数据的安全传输。对于任何关心自己服务安全性的开发者...

    Restlet in Action

    - 创建Restlet资源:介绍如何定义资源类以及实现HTTP方法的处理逻辑。 - 部署与测试:演示如何将Restlet应用程序部署到服务器上,并进行基本的功能性测试。 3. **第3章:部署Restlet应用程序**(Deploying a ...

    restlet restful

    Restlet是Java领域的一款开源框架,专门用于构建REST(Representational State Transfer)风格的Web服务。RESTful是一种软件架构风格,设计模式,是基于HTTP协议的Web服务设计原则,强调资源的概念,通过URI来定位...

    Restlet in action 中文

    【Restlet in Action 中文】这本书是一本针对Java开发者介绍Restlet框架的实战指南,旨在帮助读者更好地理解和使用RESTful Web API。Restlet是一个开源的Web框架,它以面向对象的方式提供了一系列类和示例,使得...

Global site tag (gtag.js) - Google Analytics