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

Brap和Spring整合(简单权限验证)

 
阅读更多

     在使用Spring的发布WebService的实现,如果采用Brap实现更加简单,权限验证只需要添加相关的验证接口

服务接口:

package com.easyway.remoting.braps;



/**
 * 服务实现的接口
 * @author longgangbai
 *
 */
public interface HelloService {
    public String sayHello(String name);
}

 

服务的实现类:

package com.easyway.remoting.braps;
/**
 * 服务端的服务实现类
 * @author longgangbai
 *
 */
public class HelloServiceImpl implements HelloService {
    public String sayHello(String name) {
      return "Hello world, " + name;
    }
}

 spring的配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:lang="http://www.springframework.org/schema/lang"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.5.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"
	default-autowire="no" default-lazy-init="true">
	<!--  服务包装类-->
	<bean id="helloRemoteService"
		class="no.tornado.brap.servlet.ServiceWrapper">
		<property name="service" ref="helloService" />
		<property name="authenticationProvider"
			ref="authenticationProvider" />
		<property name="authorizationProvider"
			ref="authorizationProvider" />
	</bean>
	<!-- 服务端服务实现类 -->
	<bean id="helloService"
		class="com.easyway.remoting.braps.HelloServiceImpl" />
	<!--  用户验证的信息-->
	<bean id="authenticationProvider"
		class="no.tornado.brap.auth.SingleUsernamePasswordAuthenticator">
		<property name="username" value="admin" />
		<property name="password" value="admin" />
	</bean>
	<!-- 权限验证器-->
	<bean id="authorizationProvider"
		class="no.tornado.brap.auth.AuthenticationRequiredAuthorizer" />

</beans>

 

web.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
		 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
		 version="2.4">

	<display-name>BRAP Test</display-name>
    <!-- 设置Spring的配置 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
 <!-- 需要暴露spring的一种服务 -->
	<servlet>
		<servlet-name>hello</servlet-name>
		<servlet-class>no.tornado.brap.spring.SpringProxyServlet</servlet-class>
		<!-- 需要暴露的bean名称 -->
        <init-param>
            <param-name>beanName</param-name>
            <param-value>helloRemoteService</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
	</servlet>
   <!-- 暴露的路径名称 -->
	<servlet-mapping>
		<servlet-name>hello</servlet-name>
		<url-pattern>/remoting/hello</url-pattern>
	</servlet-mapping>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

</web-app>

 

客户端调用如下:

package com.easyway.ws.brap.service.client;

import java.net.MalformedURLException;

import no.tornado.brap.client.ServiceProxyFactory;
import no.tornado.brap.common.UsernamePasswordPrincipal;

import com.easyway.remoting.braps.HelloService;

/**
 * 客户端调用代码
 * @author longgangbai
 *
 */
public class BrapClient {
	public static void main(String[] args) throws MalformedURLException {
		//客户端验证的用户名和密码
		UsernamePasswordPrincipal upp = new UsernamePasswordPrincipal("admin",
				"admin");
		//客户端的服务信息
		HelloService service = ServiceProxyFactory.createProxy(
				HelloService.class,
				"http://localhost:8080/BrapServiceWS/remoting/hello", upp);
		//客户端的操作
		System.out.println(service.sayHello("Hello"));

	}
}

 

 

 

分享到:
评论

相关推荐

    brap(Java远程调用框架 BRAP)

    9. **微服务架构支持**:BRAP与Spring Cloud、Dubbo等微服务框架兼容,可以在现有的微服务架构中无缝集成,提升微服务间的通信性能。 10. **监控与日志**:BRAP提供了全面的调用链监控和日志记录,便于开发者排查...

    基于Java的源码-brap(Java远程调用框架 BRAP).zip

    BRAP(Business Remote Access Protocol)是一个专为Java设计的高性能、轻量级的远程调用框架,它旨在简化分布式系统中的服务调用过程,提高系统的可扩展性和灵活性。本资料包含的是BRAP的源码,对于Java开发者来说...

    基于java的开发源码-brap(Java远程调用框架 BRAP).zip

    基于java的开发源码-brap(Java远程调用框架 BRAP).zip 基于java的开发源码-brap(Java远程调用框架 BRAP).zip 基于java的开发源码-brap(Java远程调用框架 BRAP).zip 基于java的开发源码-brap(Java远程调用框架 BRAP)....

    基于Java的实例开发源码-brap(Java远程调用框架 BRAP).zip

    5. **安全控制**:BRAP支持基于Token的身份验证和授权,确保只有合法的客户端才能访问服务,保障了服务的安全性。 6. **监控与管理**:BRAP提供了丰富的监控指标,包括调用次数、调用延迟、成功率等,便于运维人员...

    brap(Java远程调用框架 BRAP).7z

    5. **API友好**:BRAP提供了简单的API,开发者可以通过注解或者配置来定义服务接口和实现,使得开发过程更加直观。 6. **协议独立**:虽然BRAP默认使用HTTP作为传输协议,但它也支持自定义协议,以适应不同的网络...

    基于Java的brap(Java远程调用框架 BRAP).zip

    BRAP则更专注于Java生态,且提供了更简单的API和更直接的Java对象传输。 5. **BRAP在实际项目中的应用** - **微服务架构**:在微服务架构中,BRAP可以作为服务间通信的桥梁,实现服务解耦和高可用。 - **大...

    基于java的brap(Java远程调用框架 BRAP).zip

    1. **简单易用**:BRAP的API设计简洁,开发者可以快速上手,减少学习成本。 2. **高性能**:通过高效的序列化和网络通信优化,实现低延迟的远程调用。 3. **高可用性**:支持服务注册、发现、负载均衡和熔断,增强...

    基于Java的实例源码-brap(Java远程调用框架 BRAP).zip

    - **大数据处理**:在大数据处理场景中,BRAP可以用于分布式计算任务的调度和协调。 - **云平台**:在云环境中,BRAP可以为多租户服务提供高效可靠的调用支持。 6. **学习路径** - 首先,你需要掌握Java基础和...

    java源码:brap(Java远程调用框架 BRAP).rar

    BRAP在RPC的基础上,提供了更丰富的功能和优化策略,包括服务注册与发现、服务版本管理、负载均衡、故障隔离、服务监控等。 1. **服务注册与发现**:BRAP框架使用中心化的服务注册表,服务提供者在启动时会将自己的...

    java资源brap(Java远程调用框架BRAP)

    java资源brap(Java远程调用框架 BRAP)提取方式是百度网盘分享地址

    Java远程调用框架 BRAP源码

    BRAP可能包含了身份验证、授权和加密等安全措施,以防止未经授权的访问和数据泄露。 通过研究BRAP的源码,开发者可以学习到如何构建高效、可靠的远程调用框架,这对于理解和改进现有的分布式系统,或者开发新的...

    小程序 brap(Java远程调用框架 BRAP)(源码).rar

    免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...

    BRAP:浏览器记录器和播放器 (BRAP) 是一种基于 Java 的工具,它提供了一种编程方式来记录用户在浏览器中的操作(例如点击、击键等),然后重播他们的操作

    浏览器记录器和播放器 (BRAP) 正是这样的工具。 它是一个开源 Java 包,您可以在其中决定对记录和播放感兴趣的用户操作类型。 BRAP 在检测由于用户交互而导致的页面更改方面很智能,因此当您想在多页面设置中记录和...

    JAVA上百实例源码以及开源项目源代码

    Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...

    java开源包1

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包11

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包2

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包3

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包6

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

Global site tag (gtag.js) - Google Analytics