<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Security Policy on Apache Dubbo</title><link>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/tasks/security/</link><description>Recent content in Security Policy on Apache Dubbo</description><generator>Hugo</generator><language>en</language><atom:link href="https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/tasks/security/index.xml" rel="self" type="application/rss+xml"/><item><title>Class Check Mechanism</title><link>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/tasks/security/class-check/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/tasks/security/class-check/</guid><description>&lt;h2 id="feature-description">Feature Description&lt;/h2>
&lt;p>This mechanism ensures compatibility and security between service providers and consumers.&lt;/p>
&lt;h2 id="use-cases">Use Cases&lt;/h2>
&lt;p>To prevent potential issues due to class version mismatches, incompatible method signatures, or missing classes.&lt;/p>
&lt;h2 id="usage">Usage&lt;/h2>
&lt;p>Supported Versions
Dubbo &amp;gt;= 3.1.6&lt;/p>
&lt;p>Applicable Scope
Currently, serialization checks support Hessian2, Fastjson2 serialization, and generic calls. Other serialization methods are not supported.&lt;/p>
&lt;h3 id="check-modes">Check Modes&lt;/h3>
&lt;p>The check mode has three levels: &lt;code>STRICT&lt;/code>, &lt;code>WARN&lt;/code>, &lt;code>DISABLE&lt;/code>.
&lt;code>STRICT&lt;/code>: Disallows deserialization of all classes not in the allowed serialization list (whitelist).
&lt;code>WARN&lt;/code>: Only disallows serialization of classes in the disallowed serialization list (blacklist) and logs a warning when deserializing classes not in the allowed serialization list (whitelist).
&lt;code>DISABLE&lt;/code>: No checks at all.&lt;/p></description></item><item><title>Permission Control</title><link>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/tasks/security/token-authorization/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/tasks/security/token-authorization/</guid><description>&lt;h2 id="feature-description">Feature Description&lt;/h2>
&lt;p>Control permissions in the registry through token verification to decide whether to issue a token to consumers, which can prevent consumers from bypassing the registry to access providers. Moreover, the authorization method can be flexibly changed through the registry without modifying or upgrading the provider.&lt;/p>
&lt;p>&lt;img alt="/user-guide/images/dubbo-token.jpg" src="https://deploy-preview-3202--dubbo.netlify.app/imgs/user/dubbo-token.jpg">&lt;/p>
&lt;h2 id="usage-scenarios">Usage Scenarios&lt;/h2>
&lt;p>To a certain extent, achieve trusted authentication between the client and server, preventing any client from gaining access and reducing the risk of security issues.&lt;/p></description></item><item><title>TLS Support</title><link>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/tasks/security/tls/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/tasks/security/tls/</guid><description>&lt;h2 id="feature-description">Feature Description&lt;/h2>
&lt;p>The built-in Dubbo Netty Server and the newly introduced gRPC protocol provide TLS-based secure link transmission mechanisms.&lt;/p>
&lt;p>TLS configuration has a unified entry point.&lt;/p>
&lt;h2 id="use-cases">Use Cases&lt;/h2>
&lt;p>Users with encryption requirements for end-to-end links can use TLS.&lt;/p>
&lt;blockquote>
&lt;p>Reference Use Case
&lt;a href="https://github.com/apache/dubbo-samples/tree/master/4-governance/dubbo-samples-ssl">dubbo-samples-ssl&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;h2 id="usage">Usage&lt;/h2>
&lt;h3 id="provider-side">Provider Side&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>SslConfig sslConfig &lt;span style="color:#719e07">=&lt;/span> &lt;span style="color:#719e07">new&lt;/span> SslConfig();
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sslConfig.setServerKeyCertChainPath(&lt;span style="color:#2aa198">&amp;#34;path to cert&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sslConfig.setServerPrivateKeyPath(args&lt;span style="color:#719e07">[&lt;/span>1&lt;span style="color:#719e07">]&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75">// If mutual cert authentication is enabled&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">if&lt;/span> (mutualTls) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> sslConfig.setServerTrustCertCollectionPath(args&lt;span style="color:#719e07">[&lt;/span>2&lt;span style="color:#719e07">]&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ProtocolConfig protocolConfig &lt;span style="color:#719e07">=&lt;/span> &lt;span style="color:#719e07">new&lt;/span> ProtocolConfig(&lt;span style="color:#2aa198">&amp;#34;dubbo/grpc&amp;#34;&lt;/span>);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>protocolConfig.setSslEnabled(&lt;span style="color:#cb4b16">true&lt;/span>);
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>If using the gRPC protocol, protocol negotiation will be used when enabling TLS, so a Provider supporting the ALPN mechanism must be used, with netty-tcnative recommended. See the gRPC Java community&amp;rsquo;s &lt;a href="https://github.com/grpc/grpc-java/blob/master/SECURITY.md">summary&lt;/a>.&lt;/p></description></item><item><title>Service Authorization</title><link>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/tasks/security/auth/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3202--dubbo.netlify.app/en/overview/mannual/java-sdk/tasks/security/auth/</guid><description>&lt;h2 id="feature-description">Feature Description&lt;/h2>
&lt;p>Business scenarios that are sensitive to security, such as payment, may have limitations on anonymous calls. To enhance security, version 2.7.5 introduced an authentication and authorization mechanism based on the AK/SK model, along with an authorization service center. The main principle is that the consumer client generates the corresponding request signature using SK, request metadata, timestamp, parameters, etc., when requesting a service that requires authorization. This signature is carried to the other end via Dubbo&amp;rsquo;s Attachment mechanism for verification. Only after successful verification will business logic be processed. As shown in the figure below:&lt;/p></description></item></channel></rss>