Spring 启动 ActiveMQ
Spring Boot ActiveMQ
在我的 Spring Boot 1.4.0.BUILD-SNAPSHOT 应用程序中,为了修复 ActiveMQ 安全问题:
This class is not trusted to be serialized as ObjectMessage payload. Please take a look at http://activemq.apache.org/objectmessage.html for more information on how to configure trusted classes.
我必须添加以下参数(我想允许所有 类)
-Dorg.apache.activemq.SERIALIZABLE_PACKAGES="*"
到应用程序 VM 参数。
是否可以通过 application.properties 或我的 Spring 引导应用程序内部的其他方式提供此参数?
您可以使用 spring.activemq.packages.trust-all=true
来信任所有包,或者如果您想要更多控制,则可以使用 spring.activemq.packages.trusted=com.example.foo,com.example.bar
。
您可以在 spring 启动应用程序中设置。在配置 class 中,您需要获取 ActiveMQConnectionFactory 的句柄并进行设置,如下所示:
@Inject
private ActiveMQConnectionFactory connectionFactory;
private void addTrustedPackage(){
final List<String> trustedPackageList = new ArrayList<>(connectionFactory.getTrustedPackages());
trustedPackageList.add("the packages that you want to add");
connectionFactory.setTrustedPackages(trustedPackageList);
}
您需要获取现有软件包列表并添加到其中的原因是因为它包含 java.lang 等基础软件包
您也可以使用
在 application.properties 文件中设置这些
spring.activemq.packages.trust-all=false # Trust all packages.
spring.activemq.packages.trusted= # Comma-separated list of specific packages to trust (when not trusting all packages).
在我的 Spring Boot 1.4.0.BUILD-SNAPSHOT 应用程序中,为了修复 ActiveMQ 安全问题:
This class is not trusted to be serialized as ObjectMessage payload. Please take a look at http://activemq.apache.org/objectmessage.html for more information on how to configure trusted classes.
我必须添加以下参数(我想允许所有 类)
-Dorg.apache.activemq.SERIALIZABLE_PACKAGES="*"
到应用程序 VM 参数。
是否可以通过 application.properties 或我的 Spring 引导应用程序内部的其他方式提供此参数?
您可以使用 spring.activemq.packages.trust-all=true
来信任所有包,或者如果您想要更多控制,则可以使用 spring.activemq.packages.trusted=com.example.foo,com.example.bar
。
您可以在 spring 启动应用程序中设置。在配置 class 中,您需要获取 ActiveMQConnectionFactory 的句柄并进行设置,如下所示:
@Inject
private ActiveMQConnectionFactory connectionFactory;
private void addTrustedPackage(){
final List<String> trustedPackageList = new ArrayList<>(connectionFactory.getTrustedPackages());
trustedPackageList.add("the packages that you want to add");
connectionFactory.setTrustedPackages(trustedPackageList);
}
您需要获取现有软件包列表并添加到其中的原因是因为它包含 java.lang 等基础软件包
您也可以使用
在 application.properties 文件中设置这些spring.activemq.packages.trust-all=false # Trust all packages.
spring.activemq.packages.trusted= # Comma-separated list of specific packages to trust (when not trusting all packages).