2016-05-06 9 views
0

Есть ли способ реализовать только защиту CSRF с использованием весенней безопасности без использования остальной части функций, таких как аутентификация и авторизация?Защита CSRF с использованием Spring Security

Я пробовал следующую конфигурацию, но отключает все функции пружинной защиты. Хотел посмотреть, есть ли способ настроить, чтобы включить функции csrf.

<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

Этот вопрос действительно не соответствует руководящим принципам для этого сайта, где вы должны спросить что-то конкретное. У вас уже есть результаты поиска? Если это так, то вам следует попробовать что-то и задать конкретные вопросы. – JoeG

ответ

0

Как вы уже заметили, security="none" позволяет указать подмножество адресов, для которых Spring Security должен быть полностью отключен, как в:

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

Если вы хотите сохранить Spring Security для URL , но хотите отключить проверку подлинности и т.д., используйте access="permitAll" вместо:

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

Я вижу, что вы используете Spring Security 4, так CSRF защиты будет по умолчанию. Если вы используете Spring Security 3, вам нужно будет включить его самостоятельно, как:

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

EDIT Я обновил свой ответ. Прошло некоторое время с тех пор, как я использовал xml config. Может быть, вам стоит рассмотреть возможность использования конфигурации Java?

+0

, похоже, не работает. Я получаю следующее исключение: cvc-complex-type.3.2.2: Атрибут «доступ» не может появляться в элементе «http». Я попробовал следующий вместо: <перехватывать-шаблон URL = "/ **" доступ = "permitAll" /> Теперь, я получаю следующее исключение: org.springframework.beans.factory. parsing.BeanDefinitionParsingException: проблема с конфигурацией: не удалось установить аутентификациюEntryPoint. – user3768145

Смежные вопросы