Я тестирую инфраструктуру Spring AOP и у меня следующий вопрос.
У меня есть следующий код:
package danny.test.controllers;
@Controller
public class MyController{
@Autowired
private DaoService service;
@RequestMapping(value="/save",method = RequestMethod.POST)
public String addUser(@Valid MyClass myClass, BindingResult result){
service.save(myClass);
return "Ok";
}
Я бы хотел создать аспект Advice для проверки безопасности пользователя всеанс пользователя.
@Aspect
public class Profiler {
@Pointcut("execution(* danny.test.services.DaoServices.*.*(..))")
public void methods(){}
@Before("methods()")
public void checkSecurity() throws Throwable{
//check session if user is authenticated....
}
}
Что я не знаю, что делать, так это отменить выполнение метода DaoServices.save, если пользователь не аутентифицирован, и заставить контроллер вернуть любое другое значение вместо «ok».
Могу ли я это сделать?Может кто-нибудь указать мне на такой пример?Можно ли использовать @Around advice для таких действий?