Trabajo con Restful API (con muchas URL) usandoSpring 3.1.2, y desea aplicar filtros de seguridad por solicitud que utilicen tanto los datos del usuario autenticado "principal" como los datos enviados por la solicitud.
ejemplo:
validar accountId desde la url de solicitud:
http://www.foo.com/accountRecords?accountId=23
con datos principales principal.accountId = 23
.
Sé que esto se puede hacer desde los métodos de @requestMapping, pero quiero hacerlo fuera de El método real, por lo que será mantenible y configurable sin interferir en la lógica de negocios.
Pero no encontré ningún consejo al respecto ..
Creo que debería verse algo como:
@PreAuthorize("principal.accountId == requestParam.accountId")
Respuestas
0 para la respuesta № 1Creo que estás buscando filtros para filtrar la solicitud y la respuesta. En primavera, puedes usar interceptors
para este propósito.
public class MyInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession(false);
String requestParam = request.getParameter("your request param");
}
}
Finalmente, necesita configurar estos interceptores en su archivo context.xml:
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.example.MyInterceptor" />
</mvc:interceptor>
</mvc:interceptors>