wisemapping-open-source/wise-webapp/src/main/webapp/WEB-INF/wisemapping-security.xml

91 lines
4.5 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:sec="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
2020-11-07 20:56:38 +01:00
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/security
2020-11-07 20:56:38 +01:00
http://www.springframework.org/schema/security/spring-security.xsd">
2022-02-12 17:04:16 +01:00
<bean id="custom-firewall" class="org.springframework.security.web.firewall.StrictHttpFirewall">
<property name="allowSemicolon" value="true"/>
</bean>
<sec:http-firewall ref="custom-firewall"/>
<sec:http pattern="/static/webapp/**" security="none"/>
<sec:http pattern="/static/mindplot/**" security="none"/>
2012-02-13 01:57:11 +01:00
<sec:http pattern="/css/**" security="none"/>
<sec:http pattern="/js/**" security="none"/>
<sec:http pattern="/images/**" security="none"/>
<sec:http pattern="/icons/**" security="none"/>
<sec:http pattern="/c/home" security="none"/>
<sec:http pattern="/c/maps/*/embed" security="none"/>
2012-08-26 21:53:33 +02:00
<sec:http pattern="/c/maps/*/try" security="none"/>
<sec:http pattern="/c/maps/*/public" security="none"/>
<sec:http pattern="/c/restful/maps/*/document/xml-pub" security="none"/>
2012-06-22 03:18:04 +02:00
<sec:http pattern="/c/termsOfUse" security="none"/>
<sec:http pattern="/c/activation" security="none"/>
<!-- Admin related services that required admin role-->
<sec:http use-expressions="true" create-session="stateless" pattern="/service/**">
2022-02-19 21:39:38 +01:00
<sec:csrf/>
2020-11-07 06:35:54 +01:00
<!-- Enabled only for cors -->
<sec:intercept-url pattern="/service/users" method="OPTIONS" access="permitAll"/>
<sec:intercept-url pattern="/service/users/resetPassword" method="OPTIONS" access="permitAll"/>
2022-02-20 00:57:57 +01:00
<sec:intercept-url pattern="/service/users/" method="POST" access="permitAll"/>
<sec:intercept-url pattern="/service/users/resetPassword" method="PUT" access="permitAll"/>
<sec:intercept-url pattern="/service/admin/users/**" access="isAuthenticated() and hasRole('ROLE_ADMIN')"/>
2013-03-24 19:42:25 +01:00
<sec:intercept-url pattern="/service/admin/database/**" access="isAuthenticated() and hasRole('ROLE_ADMIN')"/>
2012-06-18 06:15:46 +02:00
<sec:intercept-url pattern="/service/**" access="isAuthenticated() and hasRole('ROLE_USER')"/>
2012-02-13 01:57:11 +01:00
<sec:http-basic/>
</sec:http>
2022-02-19 21:39:38 +01:00
<sec:http use-expressions="true" pattern="/c/**/*">
2022-02-20 02:21:45 +01:00
<sec:csrf request-matcher-ref="requestMatcher"/>
2022-02-19 21:39:38 +01:00
<sec:intercept-url pattern="/c/login" access="hasRole('ANONYMOUS')"/>
<sec:intercept-url pattern="/c/registration" access="hasRole('ANONYMOUS')"/>
2022-02-19 21:43:35 +01:00
<sec:intercept-url pattern="/c/registration-success" access="hasRole('ANONYMOUS')"/>
2022-02-19 21:39:38 +01:00
<sec:intercept-url pattern="/c/forgot-password" access="hasRole('ANONYMOUS')"/>
2022-02-19 21:43:35 +01:00
<sec:intercept-url pattern="/c/forgot-password-success" access="hasRole('ANONYMOUS')"/>
2012-06-18 06:15:46 +02:00
<sec:intercept-url pattern="/c/**/*" access="isAuthenticated() and hasRole('ROLE_USER')"/>
2022-02-19 21:39:38 +01:00
<sec:access-denied-handler error-page="/c/login"/>
<sec:form-login login-page="/c/login"
authentication-success-handler-ref="authenticationSuccessHandler"
always-use-default-target="false"
authentication-failure-url="/c/login?login_error=2"
2020-11-07 06:35:54 +01:00
login-processing-url="/c/perform-login"/>
2013-03-10 23:07:52 +01:00
<!-- Expire in 28 days -->
2022-02-19 21:39:38 +01:00
<sec:remember-me token-validity-seconds="2419200" remember-me-parameter="remember-me"/>
<sec:logout logout-url="/c/logout" invalidate-session="true" logout-success-url="/c/login"/>
</sec:http>
2022-02-20 02:21:45 +01:00
<!-- Extends CSFR match to get methods to have consistency in all errors. Otherwise, get requests are forward in some cases -->
2022-02-20 00:57:57 +01:00
<bean id="requestMatcher"
class="com.wisemapping.security.CSFRRequestMatcher">
<property name="prefix" value="/c/restful/"/>
2022-02-19 21:39:38 +01:00
</bean>
<import resource="wisemapping-security-${security.type}.xml"/>
<bean id="userDetailsService" class="com.wisemapping.security.UserDetailsService">
2012-06-23 21:15:59 +02:00
<property name="userService" ref="userService"/>
<property name="adminUser" value="${admin.user}"/>
</bean>
<bean id="authenticationSuccessHandler" class="com.wisemapping.security.AuthenticationSuccessHandler">
<property name="defaultTargetUrl" value="/c/maps/"/>
<property name="alwaysUseDefaultTargetUrl" value="false"/>
</bean>
2013-02-18 01:00:08 +01:00
</beans>