Deployment 在Glassfish集群上部署JSF应用程序

Deployment 在Glassfish集群上部署JSF应用程序,deployment,jsf,jakarta-ee,glassfish,Deployment,Jsf,Jakarta Ee,Glassfish,当我在Glassfish V2.1 Patch02集群上部署JSF应用程序时,在加载第一个页面时会引发以下异常 我没有在我的应用程序中使用任何类型的加密/解密 当我搜索这个异常时,我发现在应用程序中加载密码时会出现这种情况 我想知道Glassfish/JSF是否加载导致此异常的默认密码 如果不是,可能的原因和解决方案是什么?我唯一能想到的是基本JSF实现可能使用加密的地方。组件树是有状态的,因此它在请求之间被保存,无论是在会话中还是在一个隐藏的表单字段中(由javax.faces.STATE

当我在Glassfish V2.1 Patch02集群上部署JSF应用程序时,在加载第一个页面时会引发以下异常



我没有在我的应用程序中使用任何类型的加密/解密

当我搜索这个异常时,我发现在应用程序中加载密码时会出现这种情况

我想知道Glassfish/JSF是否加载导致此异常的默认密码


如果不是,可能的原因和解决方案是什么?

我唯一能想到的是基本JSF实现可能使用加密的地方。组件树是有状态的,因此它在请求之间被保存,无论是在会话中还是在一个隐藏的表单字段中(由
javax.faces.STATE\u SAVING\u方法
init参数设置)。如果使用了隐藏的表单字段,那么实现将明智地对其进行加密,以防止黑客重写服务器状态。(请注意,JSF中的状态管理是可插入的,因此第三方库可以替换默认行为。如果您使用的是富组件库,则值得查看文档。)

我认为基本JSF实现可能使用加密的唯一地方是。组件树是有状态的,因此它在请求之间被保存,无论是在会话中还是在一个隐藏的表单字段中(由
javax.faces.STATE\u SAVING\u方法
init参数设置)。如果使用了隐藏的表单字段,那么实现将明智地对其进行加密,以防止黑客重写服务器状态。(请注意,JSF中的状态管理是可插拔的,因此第三方库可以替代默认行为。如果您使用的是富组件库,则值得查看文档。)

您可以尝试在非集群glassfish或tomcat中部署您的应用程序,看看是否遇到同样的情况。然后您就知道问题是您的应用程序还是应用程序服务器或群集的配置。

您可以尝试在非群集glassfish或tomcat中部署您的应用程序,看看是否遇到同样的情况。然后您就会知道问题是您的应用程序还是应用程序服务器或群集的配置。

问题已经解决。问题是这个“小”错误-

解决方案是将以下条目放入web.xml中,以禁用状态管理的加密,并将状态保存切换到服务器

<context-param>
        <param-name>org.apache.myfaces.USE_ENCRYPTION</param-name>
        <param-value>false</param-value>
</context-param> 

<context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>server</param-value>
</context-param> 

org.apache.myfaces.USE_加密
假的
javax.faces.STATE_保存方法
服务器
根据我的经验,在Websphere(独立或集群)中部署应用程序时,如果“默认”启用了加密(即没有org.apache.myfaces.USE_encryption in web.xml的条目),则该应用程序可以正常工作


但是该应用程序没有部署在Glassfish集群或Tomcat 6中(问题在线程-nabble.com/BadPadding-Exception-and-more-td21984713.html中定义)

问题已经解决。问题是这个“小”错误-

解决方案是将以下条目放入web.xml中,以禁用状态管理的加密,并将状态保存切换到服务器

<context-param>
        <param-name>org.apache.myfaces.USE_ENCRYPTION</param-name>
        <param-value>false</param-value>
</context-param> 

<context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>server</param-value>
</context-param> 

org.apache.myfaces.USE_加密
假的
javax.faces.STATE_保存方法
服务器
根据我的经验,在Websphere(独立或集群)中部署应用程序时,如果“默认”启用了加密(即没有org.apache.myfaces.USE_encryption in web.xml的条目),则该应用程序可以正常工作


但是该应用程序没有部署在Glassfish集群或Tomcat 6中(问题在线程-nabble.com/BadPadding-Exception-and-more-td21984713.html中定义)

包括加密/解密模块在内的完整应用程序在独立服务器上运行良好。也许这与集群中的安全设置有关。我希望有人能指出,覆盖或禁用McDowell(上面)所说的加密。至少你知道你的应用程序可能没有问题。恐怕我不能再帮你了,不过,我在集群方面做得不多。谢谢joel。如果我们能够解决此问题,将保持此线程的发布完整的应用程序(包括加密/解密模块)在独立服务器上运行良好。也许这与集群中的安全设置有关。我希望有人能指出,覆盖或禁用McDowell(上面)所说的加密。至少你知道你的应用程序可能没有问题。恐怕我不能再帮你了,不过,我在集群方面做得不多。谢谢joel。如果我们能够解决问题,将保持此线程的发布