Bem estou com dificuldades para conseguir pegar o id de usuário que esta na Sessão atual, preciso desse id para que eu posso apresentar informações pertinentes apenas a o usuário que estiver com a sessão aberta no momento, o metodo e o controller que preciso usar sao esses:
Controller
@RequestMapping(value = REDIRECT_PAGE_CARREGAR, method = RequestMethod.GET)
public ModelAndView showCarregar(Model model, HttpServletRequest request) {
model.addAttribute("folhaBean", folhaBean);
return new ModelAndView(REQUEST_MAPPING_PAGE_CARREGAR);
}
@RequestMapping(value = "/carregarDados", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<FolhaBean>> carregar() {
long id = 0;
List<Folha> folhas = folhaService.findFetchAll(id);
List<FolhaBean> folhasBean = FolhaBean.bindingProperties(folhas);
return new ResponseEntity<List<FolhaBean>>(folhasBean, HttpStatus.OK);
}
Metodo de login
@Transactional
public UserDetails loadUserByUsername(String login) throws UsernameNotFoundException, DataAccessException {
if (StringUtils.isEmpty(login)) {
throw new UsernameNotFoundException("Não foi possível localizar o Usuário");
}
Optional<Usuario> optional = usuarioService.findByLogin(login);
if (!optional.isPresent()) {
LOGGER.error("Não foi possível localizar o login: {}", login);
throw new UsernameNotFoundException("Não foi possível localizar o Usuário.");
}
Usuario usuario = optional.get();
List<GrantedAuthority> authorities = usuarioService.carregarPerfil(usuario.getPerfil());
Principal principal = new Principal(usuario.getId(), usuario.getNome(), usuario.getSobrenome(), usuario.getLogin(), usuario.getEmail(),
usuario.getPerfil().getNome(), usuario.getSenha(), usuario.getSituacao(), authorities);
LocalDate data = LocalDate.now();
LocalTime entrada = LocalTime.now();
LocalTime saidaAlmoco = LocalTime.now();
LocalTime voltaAlmoco = LocalTime.now();
LocalTime saida = LocalTime.now();
Folha folha = new Folha();
List<Folha> findDateUser = folhaService.findByDateAndUser(data, usuario.getId());
if (findDateUser.size() == 0 ) {
folha.setData(data);
folha.setUsuario(usuario);
folha.setEntrada(entrada);
folhaDAO.persistir(folha);
} else if (findDateUser.iterator().next().getEntrada() != null
&& findDateUser.iterator().next().getSaidaAlmoco() == null) {
long version = 0;
long novoIdFolha = 0;
LocalTime novaEntrada = null;
novoIdFolha = findDateUser.iterator().next().getIdFolha();
folha.setIdFolha(novoIdFolha);
version = findDateUser.iterator().next().getVersion();
folha.setVersion(version);
folha.setData(data);
novaEntrada = findDateUser.iterator().next().getEntrada();
folha.setEntrada(novaEntrada);
folha.setUsuario(usuario);
folha.setSaidaAlmoco(saidaAlmoco);
folhaDAO.persistir(folha);
} else if (findDateUser.iterator().next().getSaidaAlmoco() != null
&& findDateUser.iterator().next().getVoltaAlmoco() == null) {
long version = 0;
long novoIdFolha = 0;
LocalTime novaEntrada = null;
LocalTime novaSaidaAlmoco = null;
novoIdFolha = findDateUser.iterator().next().getIdFolha();
folha.setIdFolha(novoIdFolha);
version = findDateUser.iterator().next().getVersion();
folha.setVersion(version);
novaEntrada = findDateUser.iterator().next().getEntrada();
folha.setEntrada(novaEntrada);
novaSaidaAlmoco = findDateUser.iterator().next().getSaidaAlmoco();
folha.setSaidaAlmoco(novaSaidaAlmoco);
folha.setData(data);
folha.setUsuario(usuario);
folha.setVoltaAlmoco(voltaAlmoco);
folhaDAO.persistir(folha);
} else if( findDateUser.iterator().next().getVoltaAlmoco() != null
&& findDateUser.iterator().next().getSaida() == null){
long version = 0;
long novoIdFolha = 0;
LocalTime novaEntrada = null;
LocalTime novaSaidaAlmoco = null;
LocalTime novaVoltaAlmoco = null;
novoIdFolha = findDateUser.iterator().next().getIdFolha();
folha.setIdFolha(novoIdFolha);
version = findDateUser.iterator().next().getVersion();
folha.setVersion(version);
novaEntrada = findDateUser.iterator().next().getEntrada();
folha.setEntrada(novaEntrada);
novaSaidaAlmoco = findDateUser.iterator().next().getSaidaAlmoco();
folha.setSaidaAlmoco(novaSaidaAlmoco);
novaVoltaAlmoco = findDateUser.iterator().next().getVoltaAlmoco();
folha.setVoltaAlmoco(novaVoltaAlmoco);
folha.setData(data);
folha.setUsuario(usuario);
folha.setSaida(saida);
folhaDAO.persistir(folha);
}
return principal;
}
a Minha duvida esta em como pega o id que tenho no login e passa para o controller.