|
@@ -1,15 +1,16 @@ |
|
|
package cn.org.bjca.trust.pushdemo.controller; |
|
|
package cn.org.bjca.trust.pushdemo.controller; |
|
|
|
|
|
|
|
|
import org.apache.tomcat.util.codec.binary.Base64; |
|
|
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.GetMapping; |
|
|
import org.springframework.web.bind.annotation.PathVariable; |
|
|
import org.springframework.web.bind.annotation.PathVariable; |
|
|
import org.springframework.web.bind.annotation.RequestMapping; |
|
|
import org.springframework.web.bind.annotation.RequestMapping; |
|
|
import org.springframework.web.bind.annotation.RestController; |
|
|
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; |
|
|
import java.nio.charset.StandardCharsets; |
|
|
|
|
|
|
|
|
@RestController |
|
|
@RestController |
|
@@ -17,33 +18,39 @@ import java.nio.charset.StandardCharsets; |
|
|
public class HelloController { |
|
|
public class HelloController { |
|
|
|
|
|
|
|
|
@GetMapping("/{id}") |
|
|
@GetMapping("/{id}") |
|
|
public String getById(@PathVariable String id) { |
|
|
|
|
|
|
|
|
public String getById(@PathVariable String id) throws Exception { |
|
|
System.out.println("id ==> " + id); |
|
|
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" + "}"; |
|
|
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)); |
|
|
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(); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |