<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ActiveMQ</title>
    <link rel="icon" type="image/png" href="/assets/img/favicon.png">

    <link rel="stylesheet" href="/css/main.css">
    <script defer src="/js/fontawesome-all.min.js" integrity="sha384-rOA1PnstxnOBLzCLMcre8ybwbTmemjzdNlILg8O7z1lUkLXozs4DHonlDtnE7fpc"></script>
    <script src="/js/jquery.slim.min.js" integrity="sha384-5AkRS45j4ukf+JbWAfHL8P4onPA9p0KwwP7pUdjSQA3ss9edbJUJc/XcYAiheSSz"></script>
    <script src="/js/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"></script>
    <script src="/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"></script>
</head>

<body>
<nav class="navbar navbar-expand-lg navbar-light fixed-top">
    <div class="container">
        <!-- <a class="navbar-brand mr-auto" href="#"><img style="height: 50px" src="assets/img/apache-feather.png" /></a> -->
        <a class="navbar-brand mr-auto" href="/"><img src="/assets/img/activemq_logo_black_small.png" style="height: 50px"/></a>
        <button class="navbar-toggler ml-auto" type="button" data-toggle="collapse" data-target="#navbarContent" aria-controls="navbarContent" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>

        <div class="ml-auto collapse navbar-collapse" id="navbarContent">
            <ul class="navbar-nav ml-auto">
                <li class="nav-item">
                    <a class="nav-link active" href="/news">News</a>
                </li>
                <li class="nav-item dropdown">
                    <a class="nav-link" id="navbarDropdownComponents" data-target="#" href="" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Components<span class="caret"></span></a>
                    <ul class="dropdown-menu dropdown-menu-center" aria-labelledby="navbarDropdownComponents">
                        <div class="row">
                            <div class="col-12">
                                <ul class="multi-column-dropdown">
                                    <li class="nav-item"><a class="dropdown-item" href="/components/classic">ActiveMQ Classic</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="/components/artemis/">ActiveMQ Artemis</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="/components/nms">NMS Clients</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="/components/cms">CMS Client</a></li>
                                </ul>
                            </div>
                        </div>
                    </ul>
                </li>
                <li class="nav-item dropdown">
                    <a class="nav-link" id="navbarDropdownCommunity" data-target="#" href="" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Community<span class="caret"></span></a>
                    <ul class="dropdown-menu dropdown-menu-center multi-column columns-1" aria-labelledby="navbarDropdownCommunity">
                        <div class="row">
                            <div class="col-12">
                                <ul class="multi-column-dropdown">
                                    <li class="nav-item"><a class="dropdown-item" href="/contact">Contact Us</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="/contributing">Contribute</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="/issues">Report Issues</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="/support">Get Support</a></li>
                                </ul>
                            </div>
                          </div>
                    </ul>
                </li>
                <li class="nav-item dropdown">
                    <a class="nav-link" id="navbarDropdownTeam" data-target="#" href="" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><img src="/assets/img/feather.png" style="height:20px">Apache<span class="caret"></span></a>
                    <ul class="dropdown-menu dropdown-menu-center multi-column columns-1" aria-labelledby="navbarDropdownTeam">
                        <div class="row">
                            <div class="col-sm-12">
                                <ul class="multi-column-dropdown">
                                    <li class="nav-item"><a class="dropdown-item" href="https://www.apache.org">The Apache Software Foundation</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="https://www.apache.org/licenses/">License</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="/security-advisories">Security</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="https://www.apache.org/events/current-event">Events</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="https://people.apache.org/phonebook.html?pmc=activemq">PMC & Committers</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/ActiveMQ.html">Board Reports</a></li>
                                    <li class="nav-item"><a class="dropdown-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a></li>
                                </ul>
                            </div>
                        </div>
                    </ul>
                </li>
            </ul>
        </div>
    </div>
</nav>

<div class="content">
  <div class="page-title-classic">
    <div class="container">
      <h1>ObjectMessage</h1>
    </div>
  </div>
  <div class="container" >
    <div class="row" style="margin-top: 30px">
      <div class="col-12 classic">
        <p><a href="features">Features</a> &gt; <a href="message-features">Message Features</a> &gt; <a href="objectmessage">ObjectMessage</a></p>

<p>Although ObjectMessage usage is generally discouraged, as it introduces coupling of class paths between producers and consumers, ActiveMQ Classic supports them as part of the JMS specification.</p>

<h2 id="security">Security</h2>

<p>ObjectMessage objects depend on Java serialization of marshal/unmarshal object payload. This process is generally considered unsafe as malicious payload can exploit the host system. That’s why starting with versions <strong>5.12.2</strong> and <strong>5.13.0</strong>, ActiveMQ Classic enforces users to explicitly whitelist packages that can be exchanged using ObjectMessages.</p>

<p>If you need to exchange object messages, you need to add packages your applications are using. You can do that with by using <code class="language-plaintext highlighter-rouge">org.apache.activemq.SERIALIZABLE_PACKAGES</code> system property, interpreted by the broker and the activemq client library. You can add this system property to <code class="language-plaintext highlighter-rouge">ACTIVEMQ_OPTS</code> variable in <code class="language-plaintext highlighter-rouge">${ACTIVEMQ_HOME}/bin/env</code> script.</p>

<p>For example:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>-Dorg.apache.activemq.SERIALIZABLE_PACKAGES=java.lang,javax.security,java.util,org.apache.activemq,org.fusesource.hawtbuf,com.thoughtworks.xstream.mapper,com.mycompany.myapp
</code></pre></div></div>
<p>will add <code class="language-plaintext highlighter-rouge">com.mycompany.myapp</code> package to the list of trusted packages. Note that other packages listed here are enabled by default as they are necessary for the regular broker work. In case you want to shortcut this mechanism, you can allow all packages to be trusted by using <code class="language-plaintext highlighter-rouge">*</code> wildcard, like</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>-Dorg.apache.activemq.SERIALIZABLE_PACKAGES=*
</code></pre></div></div>
<h3 id="clients">Clients</h3>

<p>On the client side, you need to have this same mechanism as malicious code can be deserialized on <code class="language-plaintext highlighter-rouge">ObjectMessage.getObject()</code> call, compromising your application’s environment. You can use the same configuration mechanism on the broker and configure trusted classes using system properties. However, this is usually not convenient in the client applications, so in <strong>5.12.2</strong> and <strong>5.13.1</strong> we introduced additional configuration mechanism using <code class="language-plaintext highlighter-rouge">ActiveMQConnectionFactory</code>. There are two additional methods defined:</p>

<ul>
  <li>The <code class="language-plaintext highlighter-rouge">setTrustedPackages()</code> method allows you to set the list of trusted packages you want to be to unserialize, like
    <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">ActiveMQConnectionFactory</span> <span class="n">factory</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">ActiveMQConnectionFactory</span><span class="o">(</span><span class="s">"tcp://localhost:61616"</span><span class="o">);</span>
<span class="n">factory</span><span class="o">.</span><span class="na">setTrustedPackages</span><span class="o">(</span><span class="k">new</span> <span class="nc">ArrayList</span><span class="o">(</span><span class="nc">Arrays</span><span class="o">.</span><span class="na">asList</span><span class="o">(</span><span class="s">"org.apache.activemq.test,org.apache.camel.test"</span><span class="o">.</span><span class="na">split</span><span class="o">(</span><span class="s">","</span><span class="o">))));</span>
</code></pre></div>    </div>
  </li>
  <li>The <code class="language-plaintext highlighter-rouge">setTrustAllPackages()</code> allows you to turn off security check and trust all classes. It’s useful for testing purposes.
    <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">ActiveMQConnectionFactory</span> <span class="n">factory</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">ActiveMQConnectionFactory</span><span class="o">(</span><span class="s">"tcp://localhost:61616"</span><span class="o">);</span>
<span class="n">factory</span><span class="o">.</span><span class="na">setTrustAllPackages</span><span class="o">(</span><span class="kc">true</span><span class="o">);</span>
</code></pre></div>    </div>
    <p>You can set the same properties in Camel context like:</p>
  </li>
</ul>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;bean</span> <span class="na">id=</span><span class="s">"connectionFactory"</span> <span class="na">class=</span><span class="s">"org.apache.activemq.spring.ActiveMQConnectionFactory"</span><span class="nt">&gt;</span>
    <span class="nt">&lt;property</span> <span class="na">name=</span><span class="s">"brokerURL"</span> <span class="na">value=</span><span class="s">"tcp://localhost:61616"</span><span class="nt">/&gt;</span>
    <span class="nt">&lt;property</span> <span class="na">name=</span><span class="s">"trustedPackages"</span><span class="nt">&gt;</span>
        <span class="nt">&lt;list&gt;</span>
            <span class="nt">&lt;value&gt;</span>org.apache.activemq.test<span class="nt">&lt;/value&gt;</span>
            <span class="nt">&lt;value&gt;</span>org.apache.camel.test<span class="nt">&lt;/value&gt;</span>
        <span class="nt">&lt;/list&gt;</span>
    <span class="nt">&lt;/property&gt;</span>
<span class="nt">&lt;/bean&gt;</span>
<span class="nt">&lt;bean</span> <span class="na">id=</span><span class="s">"jmsConfig"</span> <span class="na">class=</span><span class="s">"org.apache.camel.component.jms.JmsConfiguration"</span><span class="nt">&gt;</span>
    <span class="nt">&lt;property</span> <span class="na">name=</span><span class="s">"connectionFactory"</span> <span class="na">ref=</span><span class="s">"connectionFactory"</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/bean&gt;</span>
<span class="nt">&lt;bean</span> <span class="na">id=</span><span class="s">"activemq"</span> <span class="na">class=</span><span class="s">"org.apache.activemq.camel.component.ActiveMQComponent"</span><span class="nt">&gt;</span>
    <span class="nt">&lt;property</span> <span class="na">name=</span><span class="s">"configuration"</span> <span class="na">ref=</span><span class="s">"jmsConfig"</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/bean&gt;</span>
</code></pre></div></div>

<p>or</p>

<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;bean</span> <span class="na">id=</span><span class="s">"connectionFactory"</span> <span class="na">class=</span><span class="s">"org.apache.activemq.spring.ActiveMQConnectionFactory"</span><span class="nt">&gt;</span>
    <span class="nt">&lt;property</span> <span class="na">name=</span><span class="s">"brokerURL"</span> <span class="na">value=</span><span class="s">"tcp://localhost:61616"</span><span class="nt">/&gt;</span>
<span class="nt">&lt;property</span> <span class="na">name=</span><span class="s">"trustAllPackages"</span> <span class="na">value=</span><span class="s">"true"</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/bean&gt;</span>
<span class="nt">&lt;bean</span> <span class="na">id=</span><span class="s">"jmsConfig"</span> <span class="na">class=</span><span class="s">"org.apache.camel.component.jms.JmsConfiguration"</span><span class="nt">&gt;</span>
    <span class="nt">&lt;property</span> <span class="na">name=</span><span class="s">"connectionFactory"</span> <span class="na">ref=</span><span class="s">"connectionFactory"</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/bean&gt;</span>
<span class="nt">&lt;bean</span> <span class="na">id=</span><span class="s">"activemq"</span> <span class="na">class=</span><span class="s">"org.apache.activemq.camel.component.ActiveMQComponent"</span><span class="nt">&gt;</span>
    <span class="nt">&lt;property</span> <span class="na">name=</span><span class="s">"configuration"</span> <span class="na">ref=</span><span class="s">"jmsConfig"</span><span class="nt">/&gt;</span>
<span class="nt">&lt;/bean&gt;</span>
</code></pre></div></div>

<p>This configuration will override system properties if they are set.</p>


      </div>
    </div>
  </div>
</div>
<div class="row sitemap">
  <div class="col-sm-12">
    <div class="container">
      <div class="row">
        <div class="col-sm-12">
          <div class="row">
            <div class="col-sm-3">
              <div >
                <img class="float-left" style="max-height: 100px" src="/assets/img/activemq_logo_white_vertical_small.png"/>
              </div>
            </div>
            <div style="text-align: center; margin-bottom: 0px; margin-top: 30px; font-size: 65%" class="col-sm-6">
              <p><a href="https://www.apache.org/foundation/marks/list/">Apache, ActiveMQ, Apache ActiveMQ</a>, the Apache feather logo, and the Apache ActiveMQ project logo are trademarks of The Apache Software Foundation. Copyright &copy; 2024, The Apache Software Foundation. Licensed under <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License 2.0</a>.</p>
            </div>
            <div class="col-sm-3">
              <div >
                <a href="https://www.apache.org"><img class="float-right" style="margin-top: 10px; max-height: 80px" src="/assets/img/apache-logo-small.png"/></a>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

</body>
</html>
