/ / Spring security: ¿asegura una solicitud al validar el principio contra el parámetro @RequestParam? - java, spring, spring-mvc, spring-security, spring-el

Seguridad de Spring: ¿asegura una solicitud al validar el principio contra el parámetro @RequestParam? - java, spring, spring-mvc, spring-security, spring-el

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 № 1

Creo 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>