Consistent URL Scheme for Northbound and Web UI
[controller.git] / opendaylight / web / topology / src / main / resources / WEB-INF / spring / servlet / security.xml
1 <beans:beans xmlns="http://www.springframework.org/schema/security"
2         xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3         xsi:schemaLocation="http://www.springframework.org/schema/beans
4            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
5            http://www.springframework.org/schema/security
6            http://www.springframework.org/schema/security/spring-security-3.1.xsd">
7
8
9         <http pattern="/css/**" security="none" />
10         <http pattern="/js/**" security="none" />
11         <http pattern="/images/**" security="none" />
12         <http pattern="/favicon.ico" security="none" />
13         <http pattern="/controller/web/css/**" security="none" />
14         <http pattern="/controller/web/js/**" security="none" />
15         <http pattern="/controller/web/images/**" security="none" />
16
17
18         <http auto-config="false" authentication-manager-ref="authenticationManager"
19                 security-context-repository-ref="securityContextRepo" entry-point-ref="loginUrlAuthenticationEntryPoint">
20                 <intercept-url pattern="/login*" access="IS_AUTHENTICATED_ANONYMOUSLY" />
21                 <intercept-url pattern="/logout*" access="IS_AUTHENTICATED_ANONYMOUSLY" />
22
23
24                 <intercept-url pattern="/**"
25                         access="ROLE_SYSTEM-ADMIN, ROLE_NETWORK-ADMIN, ROLE_NETWORK-OPERATOR, ROLE_CONTAINER-USER, ROLE_APP-USER" />
26                 <custom-filter ref="authenticationFilter" position="FORM_LOGIN_FILTER" />
27                 <custom-filter position="LOGOUT_FILTER" ref="logoutFilter" />
28                 <custom-filter position="LAST" ref="controllerFilter" />
29                 <remember-me services-ref="rememberMeServices" key="SDN" />
30         </http>
31         
32         <beans:bean id="controllerFilter"
33                 class="org.opendaylight.controller.web.ControllerCustomFilter" />
34
35         <authentication-manager id="authenticationManager">
36                 <authentication-provider ref="authenticationProviderWrapper" />
37         </authentication-manager>
38
39         <beans:bean id="authenticationFilter"
40                 class="org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter">
41                 <beans:property name="authenticationManager" ref="authenticationManager" />
42                 <beans:property name="authenticationFailureHandler"
43                         ref="authenticationFailureHandler" />
44                 <beans:property name="authenticationSuccessHandler">
45                         <beans:bean
46                                 class="org.opendaylight.controller.web.ControllerAuthenticationSuccessHandler">
47                                 <beans:property name="targetUrlParameter" value="x-page-url" />
48                                 <beans:property name="defaultTargetUrl" value="/" />
49                         </beans:bean>
50                 </beans:property>
51                 <beans:property name="rememberMeServices" ref="rememberMeServices" />
52         </beans:bean>
53
54         <beans:bean id="securityContextRepo"
55                 class="org.opendaylight.controller.web.ControllerWebSecurityContextRepository" />
56
57         <beans:bean id="authenticationFailureHandler"
58                 class="org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler">
59                 <beans:property name="useForward" value="false" />
60                 <beans:property name="defaultFailureUrl" value="/login" />              
61         </beans:bean>
62
63         <beans:bean id="loginUrlAuthenticationEntryPoint"
64                 class="org.opendaylight.controller.web.ControllerLoginUrlAuthEntryPoint">
65                 <beans:property name="loginFormUrl" value="/login" />
66         </beans:bean>
67
68         <beans:bean id="authenticationProviderWrapper"
69                 class="org.opendaylight.controller.web.AuthenticationProviderWrapper" />
70
71     <!-- logout related -->
72     
73     <beans:bean id="logoutHandler"
74         class="org.opendaylight.controller.web.ControllerLogoutHandler" />
75         
76     <beans:bean id="securityContextLogoutHandler"
77         class="org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler" />    
78         
79             
80     <beans:bean id="logoutFilter" class="org.springframework.security.web.authentication.logout.LogoutFilter">
81         <!-- if logout succeed then this is the URL -->
82         <beans:constructor-arg value="/login" />
83         <beans:constructor-arg>
84             <beans:list>
85                 <beans:ref bean="logoutHandler"/>
86                 <beans:ref bean="rememberMeServices"/>
87                 <beans:ref bean="securityContextLogoutHandler"/>
88             </beans:list>
89         </beans:constructor-arg>
90         <beans:property name="filterProcessesUrl" value="/logout" />
91     </beans:bean>       
92         
93
94
95
96         <!-- remember me related -->
97         <beans:bean id="rememberMeFilter"
98                 class="org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter">
99                 <beans:property name="rememberMeServices" ref="rememberMeServices" />
100                 <beans:property name="authenticationManager" ref="authenticationManager" />
101         </beans:bean>
102
103         <beans:bean id="rememberMeServices"
104                 class="org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices">
105                 <beans:property name="userDetailsService" ref="userDetailsServiceRef" />
106                 <beans:property name="key" value="SDN" />
107                 <beans:property name="alwaysRemember" value="true"></beans:property>
108                 <beans:property name="tokenValiditySeconds" value="3600" />
109                 <beans:property name="cookieName" value="SDN-Controller" />
110         </beans:bean>
111
112         <beans:bean id="userDetailsServiceRef" class="org.opendaylight.controller.web.ControllerUserDetailsService" />
113
114
115         <beans:bean id="rememberMeAuthenticationProvider"
116                 class="org.springframework.security.authentication.RememberMeAuthenticationProvider">
117                 <beans:property name="key" value="SDN" />
118         </beans:bean>
119         
120 </beans:beans>