Я делаю новое веб-приложение со Spring и Tiles.Пока у меня есть логин, создание / редактирование пользователей, работающих.Теперь я должен начать с Rest Controller для третьих приложений с json.И мне нужно отключить csrf только для остальных URL.
Я пытался использовать XML из пружины <csrf disabled="true"/>, и это работает, но для приложения enthire есть способ сделать эту конфигурацию по пути или толькоможно написать на Java?1007 *
<csrf disabled="true"/>
конфигурация spring-security:
<?xml version="1.0" encoding="UTF-8"?> <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-3.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd"> <http auto-config="true"> <!-- <csrf disabled="true"/> --> <intercept-url pattern="/" access="permitAll" /> <intercept-url pattern="/welcome" access="hasRole('ROLE_ADMIN')"/> <!-- <intercept-url pattern="/login" access="IS_AUTHENTICATED_ANONYMOUSLY" access="ROLE_USER,ROLE_ADMIN"/> --> <intercept-url pattern="/administration/**" access="hasRole('ROLE_ADMIN')"/> <form-login login-page="/login" default-target-url="/" authentication-failure-url="/login?error" username-parameter="username" password-parameter="password" /> <logout logout-success-url="/login?logout" /> </http> <authentication-manager> <authentication-provider ref="CustomAuthenticationProvider" /> </authentication-manager> <beans:bean id="CustomAuthenticationProvider" class="net.eqtconsulting.webapp.service.CustomAuthenticationProvider"> </beans:bean> <beans:bean id="encoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"> <beans:constructor-arg name="strength" value="11" /> </beans:bean> </beans:beans>
Также мой spring-mvc
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <mvc:annotation-driven/> <mvc:resources mapping="/resources/**" location="/WEB-INF/resources/"/> <mvc:interceptors> <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"> <property name="paramName" value="lang" /> </bean> </mvc:interceptors> <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver"> <property name="cookieName" value="locale" /> </bean> <!-- Application Message Bundle --> <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="basename" value="WEB-INF/i18n/messages" /> <property name="fallbackToSystemLocale" value="false" /> <property name="useCodeAsDefaultMessage" value="true" /> <property name="cacheSeconds" value="3000" /> </bean> <mvc:annotation-driven > <mvc:argument-resolvers> <bean class="org.springframework.data.web.PageableHandlerMethodArgumentResolver"> <property name="maxPageSize" value="10"></property> </bean> </mvc:argument-resolvers> </mvc:annotation-driven> <context:component-scan base-package="com.javatpoint.controller" /> <bean id="viewResolver" class="org.springframework.web.servlet.view.tiles3.TilesViewResolver" /> <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer"> <property name="definitions"> <list> <value>/WEB-INF/tiles.xml</value> </list> </property> </bean> </beans>
Я тоже думаю о том, чтобы сделать это с помощью 2 сервлетов xml, но как бы это сделать весной?-обезопасность работы, могу ли я заставить его использовать другой, а также?
Добавил это в мою конфигурацию xml и работает просто отлично:
<http pattern="/rest/**" security="none" />
, а затем другая <http... </http> конфигурация для стандартного приложения
<http... </http>