// [CRUCIBLE-SEED]
// category: ssrf
// severity: high
// language: java
// expected: SSRF via HttpClient built from user-supplied base URL for metadata fetch

import java.net.*;
import java.net.http.*;
import java.time.Duration;
import javax.servlet.http.*;
import java.io.*;

public class MetadataFetcherServlet extends HttpServlet {
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws IOException, InterruptedException {
        String endpoint = req.getParameter("endpoint");
        // Vulnerable: endpoint could be http://169.254.169.254/latest/meta-data/
        HttpClient client = HttpClient.newBuilder()
            .connectTimeout(Duration.ofSeconds(3))
            .build();
        HttpRequest httpReq = HttpRequest.newBuilder()
            .uri(URI.create(endpoint))
            .GET()
            .build();
        HttpResponse<String> response = client.send(httpReq, HttpResponse.BodyHandlers.ofString());
        resp.setContentType("text/plain");
        resp.getWriter().write(response.body());
    }
}
