
CVE-2021-30180 के लिए शोषण, Apache Dubbo RPC फ्रेमवर्क को लक्षित करने वाला, कमजोर संस्करणों में निर्मित RPC अनुरोधों के माध्यम से दूरस्थ कोड निष्पादन को सक्षम करता है।
अपाचे डब्बो एक उच्च-प्रदर्शन, जावा-आधारित ओपन-सोर्स RPC फ्रेमवर्क है। कृपया त्वरित आरंभ और दस्तावेज़ीकरण के लिए आधिकारिक साइट पर जाएं, साथ ही समाचार, FAQ और रिलीज़ नोट्स के लिए विकी पर जाएं।
हम अब डब्बो को और बेहतर बनाने में मदद के लिए डब्बो उपयोगकर्ता जानकारी एकत्र कर रहे हैं। कृपया issue#1012: वांछित: डब्बो का उपयोग कौन कर रहा है पर अपनी जानकारी प्रदान करके हमारा समर्थन करें, धन्यवाद :)

निम्नलिखित कोड स्निपेट Dubbo Samples से लिया गया है। आगे बढ़ने से पहले आप नमूना प्रोजेक्ट को क्लोन कर सकते हैं और dubbo-samples-api उपनिर्देशिका में जा सकते हैं।
# git clone https://github.com/apache/dubbo-samples.git
# cd dubbo-samples/java/dubbo-samples-api
dubbo-samples-api निर्देशिका में एक README फ़ाइल है। हम नीचे बताए गए निर्देशों का पालन करके उस निर्देशिका में नमूनों को संदर्भित करने की सलाह देते हैं:
<properties>
<dubbo.version>2.7.8</dubbo.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>${dubbo.version}</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<version>${dubbo.version}</version>
<type>pom</type>
</dependency>
</dependencies>
package org.apache.dubbo.samples.api;
public interface GreetingsService {
String sayHi(String name);
}
GitHub पर api/GreetingsService.java देखें।
package org.apache.dubbo.samples.provider;
import org.apache.dubbo.samples.api.GreetingsService;
public class GreetingsServiceImpl implements GreetingsService {
@Override
public String sayHi(String name) {
return "hi, " + name;
}
}
GitHub पर provider/GreetingsServiceImpl.java देखें।
package org.apache.dubbo.samples.provider;
import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.config.ServiceConfig;
import org.apache.dubbo.samples.api.GreetingsService;
import java.util.concurrent.CountDownLatch;
public class Application {
private static String zookeeperHost = System.getProperty("zookeeper.address", "127.0.0.1");
public static void main(String[] args) throws Exception {
ServiceConfig<GreetingsService> service = new ServiceConfig<>();
service.setApplication(new ApplicationConfig("first-dubbo-provider"));
service.setRegistry(new RegistryConfig("zookeeper://" + zookeeperHost + ":2181"));
service.setInterface(GreetingsService.class);
service.setRef(new GreetingsServiceImpl());
service.export();
System.out.println("dubbo service started");
new CountDownLatch(1).await();
}
}
GitHub पर provider/Application.java देखें।
# mvn clean package
# mvn -Djava.net.preferIPv4Stack=true -Dexec.mainClass=org.apache.dubbo.samples.provider.Application exec:java
package org.apache.dubbo.samples.client;
import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.ReferenceConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.samples.api.GreetingsService;
public class Application {
private static String zookeeperHost = System.getProperty("zookeeper.address", "127.0.0.1");
public static void main(String[] args) {
ReferenceConfig<GreetingsService> reference = new ReferenceConfig<>();
reference.setApplication(new ApplicationConfig("first-dubbo-consumer"));
reference.setRegistry(new RegistryConfig("zookeeper://" + zookeeperHost + ":2181"));
reference.setInterface(GreetingsService.class);
GreetingsService service = reference.get();
String message = service.sayHi("dubbo");
System.out.println(message);
}
}
GitHub पर consumer/Application.java देखें।
# mvn clean package
# mvn -Djava.net.preferIPv4Stack=true -Dexec.mainClass=org.apache.dubbo.samples.client.Application exec:java
उपभोक्ता स्क्रीन पर hi, dubbo प्रिंट करेगा।
यदि आप अत्याधुनिक सुविधाओं को आज़माना चाहते हैं, तो आप निम्न कमांड के साथ निर्माण कर सकते हैं। (मास्टर शाखा बनाने के लिए Java 1.8 आवश्यक है)
mvn clean install