/ / Spring security - Sécuriser une requête en validant le principe avec le paramètre @RequestParam? - java, printemps, printemps-mvc, printemps-sécurité, printemps-el

Sécurité Spring - Sécurisez une requête en validant le principe avec le paramètre @RequestParam? - java, printemps, printemps-mvc, printemps-sécurité, printemps-el

Je travaille avec Restful API (avec plusieurs URL) en utilisantSpring 3.1.2, et souhaitez appliquer des filtres de sécurité par demande qui utilise à la fois les données de l'utilisateur authentifié "principal" et les données envoyées par la demande.

Exemple:

valider accountId à partir de l'URL de la demande:

http://www.foo.com/accountRecords?accountId=23

avec données principales principal.accountId = 23.

Je sais que cela peut être fait depuis les méthodes @requestMapping, mais je veux le faire. à l'extérieur la méthode réelle, donc il sera maintenable et configurable sans interférer avec la logique métier.

Mais je n’ai trouvé aucun conseil à ce sujet ..

Je crois que cela devrait ressembler à quelque chose comme: @PreAuthorize("principal.accountId == requestParam.accountId")

Réponses:

0 pour la réponse № 1

Je pense que vous recherchez des filtres pour filtrer la demande et la réponse. Au printemps, vous pouvez utiliser interceptors dans ce but.

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");
}
}

Enfin, vous devez configurer ces intercepteurs dans votre fichier context.xml:

<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.example.MyInterceptor" />
</mvc:interceptor>
</mvc:interceptors>