我有Controller
和Interface
,当我尝试实施应用Preauthorize
注释的界面时,它会对控制器造成损害,因此methods
在那种情况下没有工作。我知道我可以直接在controller
内部应用注释,但如果我可以使用Spring的示例中的界面来应用它,我会很高兴
public interface PermissionsSecurity {
@PreAuthorize("hasRole('ROLE_ADMIN')")
String deletePost(@RequestParam(value = "id", required = true) Long id);
@PreAuthorize("hasRole('ROLE_ADMIN')")
String permissions(ModelMap model, @RequestParam(value = "q", required = false) String q);
}
控制器:
@Controller
public class PermissionsController implements PermissionsSecurity{
@Autowired
@Qualifier("permissionValidator")
private Validator validator;
@Autowired
private Permissions permissionsService;
@InitBinder
private void initBinber(WebDataBinder binder){
binder.setValidator(validator);
}
@RequestMapping(value="/permissions:delete", method=RequestMethod.POST)
public String deletePost(@RequestParam(value = "id", required = true) Long id) {
permissionsService.delete(id);
return "redirect:/permissions";
}
@RequestMapping(value = "/permissions", method=RequestMethod.GET)
public String permissions(ModelMap model, @RequestParam(value = "q", required = false) String q){
model.addAttribute("q", (q != null)? q : "");
model.addAttribute("viewTemplate", "permissions");
model.addAttribute("roles", permissionsService.getAll());
return "welcome";
}
}