В моем приложении у меня есть этот метод :JSON размещены с @RequestParam
RequestMapping(value = "/variable/add", method = RequestMethod.POST)
public @ResponseBody
Object addVariable(@RequestBody MyObject myObject) {
//do something
return saimVariable;
}
и аутентификации аспект:
@Around("execution(* pl.my.company.*.*(..))")
public Object advice(ProceedingJoinPoint joinPoint) {
ServletRequestAttributes t = (ServletRequestAttributes) RequestContextHolder
.currentRequestAttributes();
HttpServletRequest request = t.getRequest();
String username = (String) request.getParameter("username");
System.out.println("USER : " + username);
try {
if (username.equals("myname")) {
System.out.println("*** ACCESS GRANTED *** ");
Object response = joinPoint.proceed();
return response;
} else {
System.out.println();
return "ACCESS DENIED";
}
} catch (Throwable e) {
System.out.println(e.getMessage());
return "ACCESS DENIED";
}
}
}
Я хочу создать REST так что для securitu мне нужно аутентифицировать КАЖДЫЙ запрос, поэтому мне нужно передать также USERNAME, а не только JSON. Но я не знаю, как это сделать, потому что, когда я использую @RequestParam("myObject")
вместо @RequestBody
, он просто не работает. Так что я задал себе вопрос:
Как передать и JSON, и другие параметры (строки, ints ... и т. Д.) С помощью ONE Запрос POST?
Почему вместо этого? Вы хотите как '@ RequestBody' для данных JSON, так и' @ RequestParam' для параметров. – zeroflagL
Но как мне передать оба JSON и другие параметры для обслуживания, чтобы JSON был хорошо переведен на объект в java? – jmachnik
Вам лучше настроить Spring Security и использовать фильтр для реализации вашей аутентификации. –