// Path: src/main/java/com/nvisium/androidnv/api/service/UserService.java
// public interface UserService extends UserDetailsService {
// 
// 	public UserDetails loadUserByUsername(String username);
// 	
// 	public User loadUserById(Long id);
// 	
// 	public User loadUser(String username);
// 
// 	public void addRegularUser(String username, String password, String email,
// 			String answer, String firstname, String lastname);
// 
// 	public boolean isAnswerValid(String username, String answer);
// 
// 	public boolean validateCredentials(String username, String password);
// 
// 	public void logout();
// 
// 	public boolean validateCurrentPassword(String password);
// 
// 	public void updatePasswordById(String password);
// 	
// 	public void updateAnswerById(String answer);
// 	
// 	public void updatePasswordByUsername(String username, String password);
// 	
// 	public void updateUser(String username, String firstname, String lastname, String email);
// 
// 	public boolean doesUserExist(String username);
// 
// 	public List<User> getPublicUsers();
// 
// 	public void credit(Long id, BigDecimal amount);
// 
// 	public boolean debit(Long id, BigDecimal amount);
// }


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.security.SecurityProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.config.annotation.web.servlet.configuration.EnableWebMvcSecurity;
import org.springframework.security.web.savedrequest.NullRequestCache;
import com.nvisium.androidnv.api.service.UserService;
package com.nvisium.androidnv.api.security;



@Configuration
@EnableWebMvcSecurity
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

	@Autowired
// Path: src/main/java/com/nvisium/androidnv/api/service/UserService.java
// public interface UserService extends UserDetailsService {
// 
// 	public UserDetails loadUserByUsername(String username);
// 	
// 	public User loadUserById(Long id);
// 	
// 	public User loadUser(String username);
// 
// 	public void addRegularUser(String username, String password, String email,
// 			String answer, String firstname, String lastname);
// 
// 	public boolean isAnswerValid(String username, String answer);
// 
// 	public boolean validateCredentials(String username, String password);
// 
// 	public void logout();
// 
// 	public boolean validateCurrentPassword(String password);
// 
// 	public void updatePasswordById(String password);
// 	
// 	public void updateAnswerById(String answer);
// 	
// 	public void updatePasswordByUsername(String username, String password);
// 	
// 	public void updateUser(String username, String firstname, String lastname, String email);
// 
// 	public boolean doesUserExist(String username);
// 
// 	public List<User> getPublicUsers();
// 
// 	public void credit(Long id, BigDecimal amount);
// 
// 	public boolean debit(Long id, BigDecimal amount);
// }


// Path: src/main/java/com/nvisium/androidnv/api/security/SecurityConfiguration.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.security.SecurityProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.config.annotation.web.servlet.configuration.EnableWebMvcSecurity;
import org.springframework.security.web.savedrequest.NullRequestCache;
import com.nvisium.androidnv.api.service.UserService;

package com.nvisium.androidnv.api.security;



@Configuration
@EnableWebMvcSecurity
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

	@Autowired
	UserService userService;