2016-05-06 13 views
0

Gibt es eine Möglichkeit, nur CSRF-Schutz mit Federsicherheit zu implementieren, ohne die restlichen Funktionen wie Authentifizierung und Autorisierung zu verwenden?CSRF-Schutz mit Spring Security

Ich habe versucht, die folgende Konfiguration, aber es deaktiviert alle Funktionen der Feder-Sicherheit. Wollte sehen, ob es eine Möglichkeit gibt, die csrf-Funktionen auf ON zu setzen.

<beans:beans xmlns="http://www.springframework.org/schema/security" 
    xmlns:beans="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 
    http://www.springframework.org/schema/security 
    http://www.springframework.org/schema/security/spring-security-4.0.xsd"> 

    <http auto-config="true" security="none"/> 

    <authentication-manager> 
     <authentication-provider> 
      <user-service> 
       <user name="user" password="Password1" authorities="ROLE_USER"/> 
      </user-service> 
     </authentication-provider> 
    </authentication-manager> 

</beans:beans> 
+0

Diese Frage entspricht nicht wirklich den Richtlinien für diese Website, von der erwartet wird, dass Sie etwas Spezifisches fragen. Haben Sie bereits nach einem Ergebnis gegoogelt? Wenn ja, dann sollten Sie etwas versucht haben und spezifische Fragen dazu haben. – JoeG

Antwort

0

Wie Sie schon bemerkt, security="none" ermöglicht es Ihnen, eine Teilmenge von URLs angeben, für die Spring Security ist vollständig deaktiviert sein, wie in:

<http pattern="/css/**" security="none"/> 
<http pattern="/login.jsp*" security="none"/> 

Wenn Sie einen URL Spring Security behalten möchten wollen, aber die Authentifizierung usw. deaktivieren, verwenden Sie access="permitAll" statt:

<http> 
    <intercept-url pattern="/**" access="permitAll"/> 
</http> 

ich sehe, dass Sie Spring Security 4 verwenden, so csrf Schutz wird Standardmäßig aktiviert sein. Wenn Sie Spring Security wurden mit 3, müssen Sie es selbst ermöglichen, wie in:

<http> 
    <intercept-url pattern="/**" access="permitAll"/> 
    <csrf/> 
</http> 

EDIT Ich habe meine Antwort aktualisiert. Es ist eine Weile her, dass ich xml config benutzt habe. Vielleicht sollten Sie auch die Java-Konfiguration in Betracht ziehen?

+0

scheint nicht zu funktionieren. Ich erhalte folgende Ausnahme: cvc-complex-type.3.2.2: Attribut 'access' darf nicht im Element 'http' erscheinen. versuchte ich folgendes statt: Nun, ich bin immer Ausnahme folgende: org.springframework.beans.factory. parsing.BeanDefinitionParsingException: Konfigurationsproblem: Es konnte kein AuthenticationEntryPoint eingerichtet werden. – user3768145