<?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"
    xmlns:jee="http://www.springframework.org/schema/jee"
    xsi:schemaLocation="
	    http://www.springframework.org/schema/security 
	    http://www.springframework.org/schema/security/spring-security-3.1.xsd        
	    http://www.springframework.org/schema/beans 
	    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
   

	<http pattern="/statics/**" security="none"></http>
	<http auto-config='true' use-expressions="true">
	   
		<intercept-url pattern="/sign/**" access="permitAll" />
	    <intercept-url pattern="/monitoring/**" access="permitAll" />
	    <intercept-url pattern="/reload/monitoring/**" access="permitAll" />
	    	    
	    <intercept-url pattern="/ess/**" access="isAuthenticated()" />
	    <intercept-url pattern="/solar/**" access="isAuthenticated()" />
	    
	    <intercept-url pattern="/admin/**" access="hasAnyRole('ROLE_05', 'ROLE_09')" />
	    <intercept-url pattern="/plant/**" access="hasAnyRole('ROLE_05', 'ROLE_09')" />
	    <intercept-url pattern="/pms/**" access="hasAnyRole('ROLE_05','ROLE_09')" />
	    <intercept-url pattern="/user/**" access="hasAnyRole('ROLE_05','ROLE_09')" />
	    <intercept-url pattern="/client/**" access="hasAnyRole('ROLE_05','ROLE_09')" />
	    <intercept-url pattern="/kesco/**" access="hasAnyRole('ROLE_05','ROLE_09')" />
	    <intercept-url pattern="/cs/**" access="hasAnyRole('ROLE_05', 'ROLE_09')" /><!-- 
	    <intercept-url pattern="/noti/**" access="hasAnyRole('ROLE_05', 'ROLE_09')" /> -->
	    <intercept-url pattern="/report/**" access="hasAnyRole('ROLE_05', 'ROLE_09')" />
	    <intercept-url pattern="/sms/**" access="hasAnyRole('ROLE_05', 'ROLE_09')" />	    
	    <intercept-url pattern="/inspect/**" access="hasAnyRole('ROLE_05', 'ROLE_09')" />
	    <intercept-url pattern="/code/**" access="hasAnyRole('ROLE_05','ROLE_09')" />
	    <intercept-url pattern="/ivt/**" access="hasAnyRole('ROLE_05','ROLE_09')" />
	    <intercept-url pattern="/manage/**" access="hasAnyRole('ROLE_05','ROLE_09')" />
	    
	    <intercept-url pattern="/noti/**" access="hasAnyRole('ROLE_03', 'ROLE_05','ROLE_09')" />
	    <intercept-url pattern="/om/**" access="hasAnyRole('ROLE_03', 'ROLE_05','ROLE_09')" />
	    	    
	    <intercept-url pattern="/json/plant/**" access="isAuthenticated()" />
	    <intercept-url pattern="/data/**" access="isAuthenticated()" />
	    
	    <intercept-url pattern="/plant/inspect**" access="permitAll" /> <!--  향후 삭제 테스트 용!! -->
	    
	    <form-login login-page="/sign/login.co"
	                username-parameter="userId"
	                password-parameter="userPwd"    
	                login-processing-url="/sign/loginProcess.co"
	                default-target-url="/sign/loginSuccess.co"
	                always-use-default-target='false'	   
	                authentication-success-handler-ref="userAuthSuccHandler" 
	                authentication-failure-url="/sign/login.co?error"
		/>
		
		<session-management>
			<concurrency-control max-sessions="2" expired-url="/sign/loginDuplicate.co"/>
	    </session-management>
	    
	    <!-- 
	    <custom-filter ref="customAuthFilter" before="FORM_LOGIN_FILTER"/>
 		-->
 		
	</http>
	
 	<beans:bean id="userAuthSuccHandler" class="com.elt.ems.security.UserAuthenticationSuccessHandler" > 		
 		<beans:constructor-arg name="authService" ref="userAuthService" />
	</beans:bean>
	
 	<beans:bean id="userAuthenticationProvider" class="com.elt.ems.security.UserAuthenticationProvider" >
		<beans:constructor-arg name="authService" ref="userAuthService" />
	</beans:bean>
 	
	<beans:bean id="userAuthService" class="com.elt.ems.security.UserAuthenticationService">
		<beans:constructor-arg name="sqlSession" ref="sqlSession" />
	</beans:bean>
		
	<!-- 
	<beans:bean id="userAuthDetail" class="com.elt.ems.security.UserWebAuthenticationDetailsSource" />		 	
	<beans:bean id="customAuthFilter" class="com.elt.ems.security.CustomAuthenticationFilter">
		<beans:constructor-arg name="userAuthDetail" ref="userAuthDetail" />
	</beans:bean> 
	-->	
	 	 	
	<authentication-manager> 

		<authentication-provider ref="userAuthenticationProvider"  />
		<authentication-provider user-service-ref="userAuthService" />  
		
	</authentication-manager>
	

</beans:beans>






