- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如何获取RequestMapping中写入的绝对URL?
下面给出的代码:
@RequestMapping("/user/{id}")
公共(public)用户获取(){
字符串 url = "/user/{id}";
};
最佳答案
ServerHttpRequest 请求 = (ServerHttpRequest) Exchange.getRequest();
使用request.getURI().getPath()
我能够获取API路径。
@Component
public class ServerAuthEntryPointJwt implements ServerAuthenticationEntryPoint {
private static final Logger logger = LoggerFactory.getLogger(ServerAuthEntryPointJwt.class);
@Override
public Mono<Void> commence(ServerWebExchange exchange, AuthenticationException ex) {
// TODO Auto-generated method stub
logger.error("Unauthorized error: {}", ex.getMessage());
ServerHttpRequest request = (ServerHttpRequest) exchange.getRequest();
ServerHttpResponse response = (ServerHttpResponse) exchange.getResponse();
// response.set(MediaType.APPLICATION_JSON_VALUE);
response.setStatusCode(HttpStatus.UNAUTHORIZED);
final Map<String, Object> body = new HashMap<>();
body.put("status", HttpStatus.UNAUTHORIZED);
body.put("error", "Unauthorized");
body.put("message", ex.getMessage());
body.put("path", request.getURI().getPath());
response.getHeaders().add(HttpHeaders.CONTENT_TYPE, "application/json");
JSONObject fadfa = new JSONObject(body);
byte[] bytes = fadfa.toString().getBytes(StandardCharsets.UTF_8);
DataBuffer buffer = exchange.getResponse().bufferFactory().wrap(bytes);
return exchange.getResponse().writeWith(Flux.just(buffer));
}
}
回应:
{
"path": "/admin-service/conversation-management/conversations",
"error": "Unauthorized",
"message": "Not Authenticated",
"status": "UNAUTHORIZED"
}
关于java - 如何在webflux ServerHttpRequest中获取原始url路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58678562/
Spring 启动:2.2.4 springdoc-openapi-ui:1.3.0 Java:11 项目编译并正确启动,导航到 /swagger-ui.html 时出现异常: java.lang.N
想要在 Spring API Gateway 之上实现代理来记录请求/响应。我为传入请求和传出响应定义了自己的过滤器。 请求网关过滤器: public class RequestGatewayFilt
我正在使用 spring boot 版本 - 2.0.6.RELEASE 和 spring cloud 版本 - Finchley.SR2 并且我已经创建了我的自定义网关过滤器来修改请求正文。 但是在
这个问题与 this one 非常相似。除了我使用的事实: org.springframework.http.server.ServerHttpRequest 不是 HttpServletReques
我有如下代码: MyExceptionHandler { @ExceptionHandler(Exception.class) public Object handleMvc(Exceptio
我有一个 Controller @RestController public class NameController { @Autowired private NameService
我是一名优秀的程序员,十分优秀!