我在 docker 中有 Spring Boot 应用程序,并且我正在像这样运行我的应用程序:
docker run --rm --network host --name myapp1 myapp
Run Code Online (Sandbox Code Playgroud)
但是当我尝试从主机访问它时,它失败了:
my_machine:~ root$ curl localhost:8081/someendpoint -v
* Trying ::1...
* TCP_NODELAY set
* Connection failed
* connect to ::1 port 8081 failed: Connection refused
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connection failed
* connect to 127.0.0.1 port 8081 failed: Connection refused
* Failed to connect to localhost port 8081: Connection refused
* Closing connection 0
curl: (7) Failed to connect to localhost port 8081: Connection …Run Code Online (Sandbox Code Playgroud) 让我们考虑一下我有两个 Web 应用程序 A 和 B 的情况
初始数据来到 A,在那里我有下一个控制器:
@RestController
public class restController {
@RequestMapping(path = "/testA", method = RequestMethod.POST)
public final void test(*inputdata*) { "redirect POST to B app" }
}
Run Code Online (Sandbox Code Playgroud)
此数据必须发送到应用程序 B:
@RestController
public class restController {
@RequestMapping(path = "/testB", method = RequestMethod.POST)
public final void test(*inputdata*) { 'some logic' }
}
Run Code Online (Sandbox Code Playgroud)
并且必须将逻辑结果发送回 A 应用程序。
通信必须以 RESTful 格式进行。
据我通过“谷歌搜索”发现,Spring 无法做到这一点,我必须创建自定义的“POST”方法,是真的吗?因为这个链接http://www.baeldung.com/spring-redirect-and-forward包含有关“重定向 HTTP POST 请求”的信息,但我无法理解他们使用它的方式。
谢谢!
我正在尝试探索KeyCloak服务器的功能,并希望通过使用/ openid-connect / token / introspect端点获取有关访问令牌的信息。
因此,我正在向该端点发送下一个请求
curl -v --data "token_type_hint=access_token&client_id=product-
app&username=user&token=MY ACCESS TOKEN"
http://localhost:8080/auth/realms/springdemo/protocol/openid-
connect/token/introspect
Run Code Online (Sandbox Code Playgroud)
所以这就是我的回应:
{"error":"invalid_request","error_description":"Client not allowed."}*
Connection #0 to host localhost left intact
Run Code Online (Sandbox Code Playgroud)
这就是我在KeyCloak的日志中看到的内容:
12:00:18,045 WARN [org.keycloak.events] (default task-13)
type=INTROSPECT_TOKEN _ERROR,
realmId=springdemo, clientId=product-app, userId=null, ipAddress=127.0.0
.1, error=invalid_request, detail='Client not allowed.',
client_auth_method=client-secret
Run Code Online (Sandbox Code Playgroud)
因此,我无法理解-在这种情况下,关于该产品应用具有公共访问权限,我应该如何正确地请求密钥斗篷。请解释!