2016-07-31 12 views

Antwort

0

Warum haben Sie nicht nur eine Controller-Methode, die nur GET erlaubt? Alle anderen HTTP-Methoden werden automatisch zurückgewiesen.

@Controller 
@RequestMapping("/releaseupdates") 
public class ReleaseUpdateController { 

    @RequestMapping(method=RequestMethod.GET) 
    public String getRequest() { 
     //do something, only accepts GET 
    } 


} 

Wenn Sie die anderen Methoden ermöglichen, sondern nur auf einen bestimmten Benutzer/Rolle, dann können Sie diese feinkörnig Einstellungen in ähnlicher Weise wie diese konfigurieren: https://www.mkyong.com/spring-security/spring-security-custom-login-form-annotation-example/

1

Frühling Interceptor url stellt ein Verfahren Parameter, ist die Down-Größe, dass es nur eine einzige Methode erlaubt zu spezifizieren.
Sie können dies überwinden, indem specifing wenige Interceptor-URL-Element für das gleiche Muster

<http auto-config="true" use-expressions="true" > 
    <intercept-url pattern="/login " access="permitAll" /> 

    <intercept-url pattern="/**" access=" hasRole('ROLE_ADMIN')" method="GET" /> 
    <intercept-url pattern="/**" access=" hasRole('ROLE_ADMIN')" method="POST" /> 
</http> 

Eine andere Alternative ist, Ihren eigenen Feder-security-Ausdruck zum Beispiel schreiben isPermitedMethod kann folgendes blog helfen.

Siehe auch:
Using Spring Security, how can I use HTTP methods (e.g. GET, PUT, POST) to distingush security for particular URL patterns?

+0

Wenn OP die Methoden deaktivieren möchten, genügt es, zu verwenden '' –