To make sure the security between the interfaces of services, users can enable RSA Authorizaiton
by simple configuration as below.
Add dependence in pom.xml file:
<dependency> <groupId>org.apache.servicecomb</groupId> <artifactId>handler-publickey-auth</artifactId> </dependency>
Add handler chain in microservice.yaml:
cse: # other configurations omitted handler: chain: Consumer: default: auth-consumer
Add dependence in pom.xml file:
<dependency> <groupId>org.apache.servicecomb</groupId> <artifactId>handler-publickey-auth</artifactId> </dependency>
Add handler chain in microservice.yaml:
cse: # other configurations omitted handler: chain: Consumer: default: auth-provider
Auth sample use RestTemplate
to present RSA communication between provider and consumer.
Start the ServiceComb/Service Center
microservice.yaml
filecse: service: registry: address: http://127.0.0.1:30100 #service center address
Start the auth-provider service
Start provider service by maven
Compile the source code at root directory of ServiceComb Java Chassis, which is servicecomb-java-chassis/
, and use mvn exec
to execute the main class AuthProviderMain
.
cd servicecomb-java-chassis/ mvn clean install -Psamples -DskipTests #only need to install at first time. cd samples/auth-sample/auth-provider/ mvn exec:java -Dexec.mainClass="org.apache.servicecomb.samples.auth.provider.AuthProviderMain"
Start provider service by IDE
Import the project by InteliJ IDEA or Eclipse, add sample module to pom.xml file in root module servicecomb-java-chassis/pom.xml
, and add <module>samples</module>
to <modules></modules>
block, Then find main
function AuthProviderMain
of provider service and RUN
it like any other Java program.
Start the auth-consumer service
Just like how to start auth-provider service. But the main class of auth-consumer service is AuthConsumerMain
.
cd samples/auth-sample/auth-consumer/ mvn exec:java -Dexec.mainClass="org.apache.servicecomb.samples.auth.consumer.AuthConsumerMain"
How to verify On the producer side, the output should contain the following stuffs if the producer starts up successfully:
On the consumer side, you can see the following outputs if the consumer can invoke the producer: