Мне нужно настроить адрес для перенаправления при получении статуса 302. Я искал много страниц без результата для реализации, которую мы имеем. Так как настроить адрес и где в этом коде?
Я пытался как-то, но я не уверен, что это нормально.
override fun getDocumentContent(
@PathVariable repository: String,
@PathVariable dmsId: String,
@RequestParam version: String?
): ResponseEntity<Resource> {
val content: DocumentContent = documentService.getDocumentContent(repository, dmsId, version)
val encodedFilename = URLEncoder.encode(content.filename, "UTF-8").replace("+", " ")
return try {
ResponseEntity
.ok()
.contentType(MediaType.parseMediaType(content.contentType!!))
.header(
HttpHeaders.CONTENT_DISPOSITION,
// sets filename twice for interoperability of multiple browsers
"""attachment; filename="$encodedFilename"; filename*="UTF-8''$encodedFilename""""
)
.header(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, HttpHeaders.CONTENT_DISPOSITION)
.body(ByteArrayResource(content.data!!))
} catch (e: GeneralErrorException) {
val location = toString("documents/err/$dmsId?errMsg=Klient / ESSO nenalezen/a.")
ResponseEntity
.status(HttpStatus.FOUND)
.header(HttpHeaders.LOCATION, webApiLinkBuilder
.build(methodOn(DocumentsController::class.java)
.getDocumentContent(repository, dmsId, version), Backends.DOC))
.header(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, HttpHeaders.LOCATION, location)
.build()
}
}