`
barryzhong
  • 浏览: 21375 次
  • 性别: Icon_minigender_1
社区版块
存档分类

Enable BlazeDS 4 on Glassfish V3.1.1

阅读更多
I had been using BlazeDS 3 on Sun Glassfish Enterprise Application Server V2.1.1 for a long time. At that time, I  followed someone's guide and hacked TomcatValve.java. And then BlazeDS 3 will be fully supported on Glassfish V2.1.1, including authentication of course.

But for Glassfish V3, I cannot find any guide, and authentication failed for Glassfish V3.1.1. And then I downloaded the source code of Glassfish V3.1.1 and BlazeDS 4, after 1 day's debugging. I got the solution hacking TomcatValve again. If you don't want to know the detail, just download the jar file or java file. For java file you have to compile that by yourself in BlazeDS 4 open source project. And for jar file, put them into the following directory:

$glassfish_home/glassfish/lib/

If you want to know all the detail about this issue, you can read the article below.

What caused BlazeDS's TomcatValve failed to authenticate?

No method found for Realm.authenticate(String username, String password).

Why BlazeDS's TomcatValve doesn't work for Glassfish V3.1.1 Server?

Glassfish changed it's method signature to Realm.authenticate(String username, char[] password).

How to hack?

Simple replace the method invocation with the following code segment:
			char[] passwordCharArray = password.toCharArray();

			try {
				Method m = realm.getClass().getMethod("authenticate",
						String.class, char[].class);
				principal = (Principal) m.invoke(realm, username,
						passwordCharArray);
			} catch (Exception e) {
				e.printStackTrace();
				throw new RuntimeException(e);
			}



More details.

Glassfish(Tomcat) Server will configure Web Module via following class and method:

WebModule.configureCatalinaProperties

    /**
     * Configure the <code>WebModule</code< properties.
     * @param propName the property name
     * @param propValue the property value
     */
    protected void configureCatalinaProperties(String propName,
                                               String propValue){
        if (propName == null || propValue == null) {
            logger.log(Level.WARNING,
                        "webcontainer.nullWebModuleProperty",
                        getName());
            return;
        }

        if (propName.startsWith("valve_")) {
            addValve(propValue);
        } else if (propName.startsWith("listener_")) {
            addCatalinaListener(propValue);
        }
    }



We can see, why we have to configure "<property name="valve_1" value="flex.messaging.security.TomcatValve"/>" into glassfish-web.xml,
分享到:
评论

相关推荐

    flex+blazeds+glassfish 远程操作实例1

    flex远程对象操作(简单对象到复杂对象) 服务器为glassfish 工作过程录制,语言为成都方言:),听不明白的只有光看了

    flex+blazeds+glassfish 远程操作实例2

    工作录制,语言为成都方言 主要实际操作Flex远程对象实现

    flex+blazeds+glassfish 远程操作实例3

    工作录制,语言为成都方言 主要实际操作Flex远程对象实现

    flex blazeds glassfish远程对象操作实例5

    工作录制,语言为成都方言 主要实际操作Flex远程对象实现

    flex blazeds glassfish远程对象操作实例4

    工作录制,语言为成都方言 主要实际操作Flex远程对象实现

    blazeds4整合spring3

    blazeds4整合spring3 这是我新近研究的方法 与整合spring2.5以下的方法有不同了,(看过一些教程觉得不是很好,用起来不顺手) 最终参考了官方的sample,得到了这个不错的整合方法。 把要用blazeds公开给flex的java...

    Flex4项目访问BlazeDS4服务的操作指南借鉴.pdf

    《Flex4项目访问BlazeDS4服务的操作指南》 在开发Flex应用程序时,与服务器端进行数据交互是一项关键任务。BlazeDS是一个开源项目,它提供了Flex与Java应用程序之间的实时双向通信,支持AMF(Action Message Format...

    blazeds4.7官方下载

    4. **集成Spring框架**:BlazeDS可以与Spring框架无缝集成,使得Java后端的服务和组件可以轻松地被Flex客户端调用。开发者可以利用Spring的依赖注入和事务管理等功能,提高代码的可维护性和可扩展性。 5. **安全性*...

    spring+blazeDS+flex4 例子

    《Spring、BlazeDS与Flex4的整合应用详解》 在现代Web开发中,构建交互性强、用户体验良好的富互联网应用程序(Rich Internet Applications, RIA)是开发者追求的目标。Spring、BlazeDS和Flex4的结合,正是实现这一...

    Flex4+Blazeds4.0+Spring3.0+hibernate2.5.2整合笔记

    Flex4+Blazeds4.0+Spring3.0+hibernate2.5.2整合笔记 本篇笔记主要介绍了如何将 Flex4、Blazeds4.0、Spring3.0 和 hibernate2.5.2 进行整合,实现一个完整的富互联网应用程序。下面是对笔记中关键部分的详细解释: ...

    Flex4+J2EE+Blazeds配置jspweb工程

    Flex4、J2EE和Blazeds是构建富互联网应用程序(RIA)的组合技术,用于创建交互性强、用户体验丰富的Web应用。在这个配置过程中,我们将深入理解这三个组件的作用以及如何将它们整合到一个JSP Web工程中。 1. Flex4...

    Flashbuilder4.5 + BlazeDS4 + Cairngrom3 + Spring 实例教程

    在这个实例教程中,我们将探讨如何使用FlashBuilder 4.5、BlazeDS 4、Cairngorm 3和Spring框架来开发一个Flex应用程序。首先,确保你已经准备好了所有必要的软件工具,包括myEclipse 9、FlashBuilder 4.5、Tomcat 6...

    spring3.0+hibernate3.2+blazeDS4+flex3.2

    在本项目中,"spring3.0+hibernate3.2+blazeDS4+flex3.2" 是一个集成开发环境,旨在构建高效、解耦的Web应用程序。这个组合利用了Spring 3.0作为核心框架,Hibernate 3.2作为对象关系映射(ORM)解决方案,BlazeDS 4...

    BlazeDS,PureMVC

    BlazeDS通信到Java的PureMVC——Flex框架,BlazeDS的服务器配置比较麻烦,这里使用的是直接下载blazeds_turnkey_3-0-0-544.zip中的tomcat BlazeDS模板路径为: blazeds_turnkey_3-0-0-544.zip解压后路径\tomcat\...

    MyEclipse_8.5_flex4+Blazeds配置

    【MyEclipse_8.5_flex4+Blazeds配置】是一篇关于在MyEclipse 8.5环境中配置Flex 4和Blazeds的教程。以下是对整个配置过程的详细说明: 首先,你需要准备以下软件: 1. `apachetomcat.exe`:Apache Tomcat服务器,...

    Blazeds4+spring3+mybatis集成

    Blazeds4、Spring3 和 MyBatis 是三个在企业级开发中广泛应用的技术栈,它们分别专注于富互联网应用(RIA)开发、依赖注入与服务管理以及数据库操作。下面将详细介绍这三个技术的集成及其应用场景。 BlazeDS是Adobe...

    Spring BlazeDS Integration Spring集成BlazeDS

    **Spring BlazeDS Integration** 是一个强大的技术组合,它允许开发者使用Spring框架在后端服务器上进行业务逻辑处理,同时利用Adobe Flex在前端构建富互联网应用程序(RIA)。BlazeDS是Adobe提供的一种开源服务器端...

    Blazeds入门教程.doc

    ### Blazeds入门教程知识点详解 #### 一、引言 Blazeds是一个由Adobe官方推出的开源数据服务中间件,其前身是LiveCycle Data Services(LCDS),也称为Flex Data Services(FDS)。Blazeds简化了Flex应用程序与...

    blazeds 服务器war包

    4. **Flex SDK集成**:Blazeds提供了Flex库项目,使得开发者在创建Flex应用程序时可以直接引用,简化了开发过程。 **部署Blazeds:** 部署Blazeds.war文件非常简单。只需将文件复制到Java应用服务器的webapps目录下...

    blazeds4.0.1

    4. **解压后的文件夹**: 解压后的blazeds和blazeds-spring文件夹包含了所有必要的类、配置文件和其他资源,这些文件在部署到Web服务器时会被加载并运行。开发者可以直接在这些文件中修改配置,以适应特定的项目需求...

Global site tag (gtag.js) - Google Analytics