Pessoal, eu estou com dificuldade para criar uma session em Java. Eu estou criando um api que cadastra chamados. Em resumo, eu tenho os Controladores UsuariosController e a ChamadosController. Em ChamadosController ele precisa receber o id do usuario que fez o login no sistema para ser associado ao chamado. Como eu posso criar uma sessão eu passar o id do usuario para a classe ChamadosController?
Segue as classes:
@Api(tags="Usuarios")
@RestController
@RequestMapping("/usuarios")
public class UsuariosController {
@Autowired
private UsuariosRepository usuariosRepository;
private BCryptPasswordEncoder bCryptPasswordEncoder;
public UsuariosController(UsuariosRepository usuariosRepository, BCryptPasswordEncoder bCryptPasswordEncoder)
{
this.usuariosRepository = usuariosRepository;
this.bCryptPasswordEncoder = bCryptPasswordEncoder;
}
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Retorna a lista de usuarios"),
@ApiResponse(code = 403, message = "Você não tem permissão para acessar este recurso"),
})
@ApiOperation(value = "", authorizations = { @Authorization(value = "jwtToken") })
@RequestMapping(method=RequestMethod.GET, value="/cadastrados")
public @ResponseBody List<Usuarios> listausuarios() {
return usuariosRepository.findAll();
}
@PostMapping("/cadastro")
public void signUp(@RequestBody Usuarios usuarios, HttpSession session)
{
usuarios.setSenha(bCryptPasswordEncoder.encode(usuarios.getSenha()));
usuariosRepository.save(usuarios);
session.setAttribute("usuario", new Usuarios().getId());
}
@RestController
@RequestMapping("/chamados")
public class ChamadosController {
@Autowired
private ChamadosService chamadosService;
@ApiOperation(value = "", authorizations = { @Authorization(value = "jwtToken") })
@GetMapping(value = "/{chamadoId}")
public ResponseEntity<Chamados> findById(@PathVariable Long chamadoId) {
Chamados obj = chamadosService.findById(chamadoId);
return ResponseEntity.ok().body(obj);
}
@ApiOperation(value = "", authorizations = { @Authorization(value = "jwtToken") })
@PostMapping("/{userId}/{problemId}")
public ResponseEntity<Chamados> cadastrarChamado(@PathVariable("userId") Long userId, @PathVariable("problemId") Long problemId,
@RequestParam("file") MultipartFile file, @RequestParam("descricaoProblema") String descricaoProblema,
@RequestParam("dataCriacao") String dataCriacao) {
Chamados obj = chamadosService.salvarDados(userId, problemId, file, descricaoProblema, dataCriacao);
URI uri = ServletUriComponentsBuilder.fromCurrentRequest().path("/{chamadoId}")
.buildAndExpand(obj.getId()).toUri();
return ResponseEntity.created(uri).build();
}
@ApiOperation(value = "", authorizations = { @Authorization(value = "jwtToken") })
@GetMapping
public ResponseEntity<List<Chamados>> ListaDeChamados() {
List<Chamados> list = chamadosService.lista();
return ResponseEntity.ok().body(list);
}
@ApiOperation(value = "", authorizations = { @Authorization(value = "jwtToken") })
@GetMapping("/baixarAnexo/{chamadoId}")
public ResponseEntity<ByteArrayResource> downloadFile(@PathVariable Long chamadoId){
Chamados chamado = chamadosService.getFile(chamadoId).get();
return ResponseEntity.ok()
.contentType(MediaType.parseMediaType(chamado.getTipoAnexo()))
.header(HttpHeaders.CONTENT_DISPOSITION,"attachment:filename=\""+chamado.getNomeAnexo()+"\"")
.body(new ByteArrayResource(chamado.getAnexo()));
}
}