package app.controllers.other; import app.annotations.interfaces.CheckPermitionFlag; import app.annotations.interfaces.CheckWebAccess; import app.utils.CryptedCookie; import jakarta.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.Map; @RestController @RequestMapping("/api/crypto") public class CryptoController { private CryptedCookie cryptedCookie; @Autowired public CryptoController(CryptedCookie cryptedCookie) { this.cryptedCookie = cryptedCookie; } @CheckWebAccess @CheckPermitionFlag @RequestMapping(method = RequestMethod.OPTIONS) public ResponseEntity checkPermission(HttpServletRequest httpServletRequest) { return ResponseEntity.ok().build(); } @PostMapping("/crypt") @CheckWebAccess @CheckPermitionFlag public HashMap crypt(HttpServletRequest httpServletRequest, @RequestBody HashMap need_crypt) { return new HashMap<>() {{ need_crypt.entrySet().stream() .map((item) -> Map.of("key", item.getKey(), "value", cryptedCookie.Hashed(item.getValue()))) .toList() .forEach((m) -> put(m.get("key"), m.get("value"))); }}; } @PostMapping("/decrypt") @CheckWebAccess @CheckPermitionFlag public HashMap decrypt(HttpServletRequest httpServletRequest, @RequestBody HashMap need_decrypt) { return new HashMap<>() {{ need_decrypt.entrySet().stream() .map((item) -> Map.of("key", item.getKey(), "value", cryptedCookie.ReadCh(item.getValue()))) .toList() .forEach((m) -> put(m.get("key"), m.get("value"))); }}; } }