Добрый день.
Я новичок в веб-программировании, поэтому я хотел бы учиться у более опытных людей. Проект занимается весенней загрузкой. УСЛОВИЯ, например, - мой метод контроллера:
- , который доступен для обеих ролей (УЧИТЕЛЬ и СТУДЕНТ)
- Я хочу дать доступ только учителю, который является ведущим в проекте
- , а также доступ к студентам, которые являются частью команды
Код моего контролера, например:
@PreAuthorize("hasAuthority('_2_TEACHER') or hasAuthority('_3_STUDENT')")
@GetMapping("/project/{projectId}/stage/{stageId}/team/{teamId}")
public String viewAnswerByProjectByStageByTeam(
@AuthenticationPrincipal User user,
@PathVariable("projectId") Project project,
@PathVariable("stageId") Stage stage,
@PathVariable("teamId") Team team,
Model model) {
if (!project.getProjectLead().equals(user) || !team.getTeamUsers().contains(user))
return "redirect:/projects";
boolean isProjectLead = isProjectLead(user, project);
boolean isTeamCaptain = isTeamCaptain(user, team);
Answer answerByStageAnswerStageIdAndTeamAnswerTeamId = answerService.findAnswerByAnswerStageStageIdAndAnswerTeamTeamId(stage.getStageId(), team.getTeamId());
model.addAttribute("project", project);
model.addAttribute("stage", stage);
model.addAttribute("team", team);
model.addAttribute("answer", answerByStageAnswerStageIdAndTeamAnswerTeamId);
model.addAttribute("isProjectLead", isProjectLead);
model.addAttribute("isTeamCaptain", isTeamCaptain);
return "answer";
}
Что делать, если пользователь не должен иметь доступ к указанной c странице ??
- перенаправлению, например, на главную страницу
- сгенерировать исключение, например 403 ошибки
сейчас Я реализовал перенаправление, потому что не знаю, как вызвать исключение для приложения classi c (не REST).
Буду благодарен за ответы и ссылки о том, как правильно обработать это исключение.