Ich bin ein wenig neu im Frühling Sicherheit und brauche Hilfe, wo ich die HTTP-Methoden wie OPTIONS, PUT oder DELETE deaktivieren kann.Deaktivieren Sie Http-Methoden auf Spring Security
Antwort
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/
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.
Wenn OP die Methoden deaktivieren möchten, genügt es, zu verwenden ' ' –