mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-06-23 07:55:07 +00:00

* apply fix * Fixes empty th:action * Update build.gradle * fix * formatting * Save signatures * Fix code scanning alert no. 42: Uncontrolled data used in path expression Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> * fix UserServiceInterface * Merge branch 'feature/saveSigns' of git@github.com:Stirling-Tools/Stirling-PDF.git into feature/saveSigns * 0.31.0 bump and further csrf * formatting * preview name * add * sign doc * Update translation files (#2128) Signed-off-by: GitHub Action <action@github.com> Co-authored-by: GitHub Action <action@github.com> --------- Signed-off-by: GitHub Action <action@github.com> Co-authored-by: Dimitrios Kaitantzidis <james_k23@hotmail.gr> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: a <a> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: GitHub Action <action@github.com>
45 lines
1.6 KiB
Java
45 lines
1.6 KiB
Java
package stirling.software.SPDF.controller.web;
|
|
|
|
import java.io.IOException;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.http.HttpStatus;
|
|
import org.springframework.http.MediaType;
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
import org.springframework.web.bind.annotation.PathVariable;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
import stirling.software.SPDF.controller.api.pipeline.UserServiceInterface;
|
|
import stirling.software.SPDF.service.SignatureService;
|
|
|
|
@Controller
|
|
@RequestMapping("/api/v1/general/")
|
|
public class SignatureController {
|
|
|
|
@Autowired private SignatureService signatureService;
|
|
|
|
@Autowired(required = false)
|
|
private UserServiceInterface userService;
|
|
|
|
@GetMapping("/sign/{fileName}")
|
|
public ResponseEntity<byte[]> getSignature(@PathVariable(name = "fileName") String fileName)
|
|
throws IOException {
|
|
String username = "NON_SECURITY_USER";
|
|
if (userService != null) {
|
|
username = userService.getCurrentUsername();
|
|
}
|
|
|
|
// Verify access permission
|
|
if (!signatureService.hasAccessToFile(username, fileName)) {
|
|
return ResponseEntity.status(HttpStatus.FORBIDDEN).build();
|
|
}
|
|
|
|
byte[] imageBytes = signatureService.getSignatureBytes(username, fileName);
|
|
return ResponseEntity.ok()
|
|
.contentType(MediaType.IMAGE_JPEG) // Adjust based on file type
|
|
.body(imageBytes);
|
|
}
|
|
}
|