spring 如何隐藏控制器方法中的URL对用户,但允许它用于其他控制器的方法

nc1teljy  于 2023-08-02  发布在  Spring
关注(0)|答案(1)|浏览(168)

我正在编写一个Spring MVC应用程序。我使用Spring 6。我有一些控制器,除了给用户一个html页面或重定向到另一个方法之外,还做一些中间工作。举例来说:

@RequestMapping("/department-save")
public String redirectDepartmentsAfterSavingDepartment(Department department) {
    departmentRepository.save(department);
    return "redirect:/departments";
}

字符串
用户以添加部门的形式单击“添加”按钮后调用此方法。
因此,如果用户直接在地址栏中键入此URL,那么我们将得到一个完全错误的操作。
有没有一种方法可以使URL对用户不可访问(不管他在Spring Security中的角色如何),但对其他控制器可访问?例如,如果您尝试从浏览器访问URL,将出现404错误,但其他控制器将能够使用此URL。
举例来说:

@RequestMapping("/department-save")
@AllowOnlyForControllers
public String redirectDepartmentsAfterSavingDepartment(Department department) {
    departmentRepository.save(department);
    return "redirect:/departments";
}

smdnsysy

smdnsysy1#

选项1:可以使用JWT security setting禁止用户调用路由
选项2:您可以用户角色或完成其他控制器对此操作,i用户WebUserController和PanelUserController并添加或删除一些方法,以防止他人访问或查看所有路由

相关问题