Sfoglia il codice sorgente

用户注册

master
xuqm 1 anno fa
parent
commit
672436d9d0
4 ha cambiato i file con 144 aggiunte e 23 eliminazioni
  1. +4
    -0
      pom.xml
  2. +73
    -0
      src/main/java/cn/org/bjca/trust/pushdemo/OkHttpConfig.java
  3. +30
    -23
      src/main/java/cn/org/bjca/trust/pushdemo/controller/HelloController.java
  4. +37
    -0
      src/main/java/cn/org/bjca/trust/pushdemo/message/RabbitUser.java

+ 4
- 0
pom.xml Vedi File

@@ -41,6 +41,10 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</dependency>

</dependencies>



+ 73
- 0
src/main/java/cn/org/bjca/trust/pushdemo/OkHttpConfig.java Vedi File

@@ -0,0 +1,73 @@
package cn.org.bjca.trust.pushdemo;

import okhttp3.ConnectionPool;
import okhttp3.OkHttpClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.concurrent.TimeUnit;

@Configuration
public class OkHttpConfig {
@Bean
public OkHttpClient okHttpClient() {
return new OkHttpClient.Builder()
// .sslSocketFactory(sslSocketFactory(), x509TrustManager())
.retryOnConnectionFailure(false)
.connectionPool(pool())
.connectTimeout(30, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.writeTimeout(30, TimeUnit.SECONDS)
.build();
}

@Bean
public X509TrustManager x509TrustManager() {
return new X509TrustManager() {

@Override
public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
}

@Override
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {

}

@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
};
}

@Bean
public SSLSocketFactory sslSocketFactory() {
try {
//信任任何链接
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, new TrustManager[]{x509TrustManager()}, new SecureRandom());
return sslContext.getSocketFactory();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (KeyManagementException e) {
e.printStackTrace();
}
return null;
}

@Bean
public ConnectionPool pool() {
return new ConnectionPool(200, 5, TimeUnit.MINUTES);
}
}


+ 30
- 23
src/main/java/cn/org/bjca/trust/pushdemo/controller/HelloController.java Vedi File

@@ -1,15 +1,16 @@
package cn.org.bjca.trust.pushdemo.controller;

import org.apache.tomcat.util.codec.binary.Base64;
import org.springframework.http.HttpHeaders;
import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.reactive.function.BodyInserters;
import org.springframework.web.reactive.function.client.WebClient;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;

@RestController
@@ -17,33 +18,39 @@ import java.nio.charset.StandardCharsets;
public class HelloController {

@GetMapping("/{id}")
public String getById(@PathVariable String id) {
public String getById(@PathVariable String id) throws Exception {
System.out.println("id ==> " + id);

WebClient webClient = WebClient.builder().baseUrl("http://127.0.0.1:15672").defaultHeaders(httpHeaders -> httpHeaders.addAll(getHeaders())).build();

webClient.put().uri("/api/users/{userId}", id) // 请求路径
.body(BodyInserters.fromValue("{\n" + " \"username\": \"" + id + "\",\n" + " \"password\": \"" + id + "\",\n" + " \"tags\": \"none\"\n" + "}")).retrieve();

webClient.put().uri("/api/permissions/{vhost}/{userId}", "/", id) // 请求路径
.body(BodyInserters.fromValue("{\n" + " \"username\": \"" + id + "\",\n" + " \"vhost\": \"/\",\n" + " \"configure\": \".*\",\n" + " \"write\": \".*\",\n" + " \"read\": \".*\"\n" + "}")).retrieve();
webClient.put().uri("/api/topic-permissions/{vhost}/{userId}", "/", id) // 请求路径
.body(BodyInserters.fromValue("{\n" + " \"username\": \"" + id + "\",\n" + " \"vhost\": \"/\",\n" + " \"exchange\": \"\",\n" + " \"write\": \".*\",\n" + " \"read\": \".*\"\n" + "}")).retrieve();

requestByGetAndParams("http://127.0.0.1:15672/api/users/" + id, "{\"username\":\"" + id + "\",\"password\":\"" + id + "\",\"tags\":\"\"}");
requestByGetAndParams("http://127.0.0.1:15672/api/permissions/%2F/" + id, "{\"username\":\"" + id + "\",\"vhost\":\"/\",\"configure\":\".*\",\"write\":\".*\",\"read\":\".*\"}");
requestByGetAndParams("http://127.0.0.1:15672/api/topic-permissions/%2F/" + id, "{\"username\":\"" + id + "\",\"vhost\":\"/\",\"exchange\":\"\",\"write\":\".*\",\"read\":\".*\"}");

return "{\n" + " \"msg\": \"qdxorigin\",\n" + " \"status\": \"200\",\n" + " \"data\": \"Sbfuiaefhaikufhcsauik\"\n" + "}";
}

String enc = new String(Base64.encodeBase64("admin:admin".getBytes(StandardCharsets.ISO_8859_1), false));
HttpHeaders headers = null;

private MultiValueMap<String, String> getHeaders() {

if (headers == null) {
headers = new HttpHeaders();
headers.add(HttpHeaders.AUTHORIZATION, "Basic " + enc);
headers.add(HttpHeaders.CONTENT_TYPE, "application/json");
public void requestByGetAndParams(String requestUrl, String param) throws Exception {
URL url = new URL(requestUrl);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
//设置请求方式,请求参数类型
httpURLConnection.setRequestMethod("PUT");
httpURLConnection.setRequestProperty("content-type", "application/json;charset=UTF-8");
httpURLConnection.setRequestProperty("Authorization", "Basic YWRtaW46YWRtaW4=");
httpURLConnection.setDoOutput(true);
OutputStream outputStream = httpURLConnection.getOutputStream();
//将参数写入输出流,param必须是JSON格式
outputStream.write(param.getBytes());
outputStream.flush();
InputStream inputStream = httpURLConnection.getInputStream();
ByteArrayOutputStream bout = new ByteArrayOutputStream();
byte[] bytes = new byte[1024];
int len = 0;
while ((len = inputStream.read(bytes)) >= 0) {
bout.write(bytes, 0, len);
}
return headers;
inputStream.close();
bout.close();
bout.toByteArray();
}
}

+ 37
- 0
src/main/java/cn/org/bjca/trust/pushdemo/message/RabbitUser.java Vedi File

@@ -0,0 +1,37 @@
package cn.org.bjca.trust.pushdemo.message;

public class RabbitUser {
private String username;
private String password;
private String tags;

public RabbitUser(String username, String password, String tags) {
this.username = username;
this.password = password;
this.tags = tags;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public String getTags() {
return tags;
}

public void setTags(String tags) {
this.tags = tags;
}
}

Loading…
Annulla
Salva