Ich weiß nicht, ob es gibt bessere Möglichkeiten ähnlich wie wir passieren Request-Header wie @RequestHeader („Content-Type“) ... ich würde lieben, das zu sehen ...
@PreAuthorize("authorizeAccess(#user,#contentType,)")
public Idea somemethod(@RequestBody User user, @RequestHeader("Content-Type") String contentType)
{..}
Aber unten ist definitiv eine Option.
Angenommen, Sie wissen, wie Sie überschreiben schreiben oder schreiben Sie Ihre eigenen Methoden im Frühling Sicherheit (angepasste Klasse SecurityExpressionRoot zu erweitern). Wenn dies der Fall, wenn Sie eine Methode i.e..authorizeAccess
public boolean authorizeAccess(String mapping)
{
// use mapping to authorize
.. do something
}
Dann haben, können wir alle URLs in einer konstanten Datei ..
package org.somepackage;
public interface URLMappings {
public static String ADMIN = "/admin";
}
dann diese Urls als Konstanten ..
@RequestMapping(value = URLMappings.ADMIN, method = RequestMethod.POST)
@PreAuthorize("authorizeAccess(T(org.somepackage.URLMappings).ADMIN)")