package com.mossle.security.client; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.PostConstruct; import com.mossle.security.impl.SpringSecurityUserAuth; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; public class MemoryUserDetailsService implements UserDetailsService { private static Logger logger = LoggerFactory .getLogger(MemoryUserDetailsService.class); private String text; private Map<String, SpringSecurityUserAuth> map = new HashMap<String, SpringSecurityUserAuth>(); @PostConstruct public void init() { if (text == null) { logger.info("text not exists"); return; } for (String line : text.split("\n")) { String[] array = line.split(","); String username = array[0]; List<String> permissions = new ArrayList<String>( Arrays.asList(array)); permissions.remove(0); SpringSecurityUserAuth userAuth = new SpringSecurityUserAuth(); userAuth.setId(username); userAuth.setUsername(username); userAuth.setDisplayName(username); userAuth.setPermissions(permissions); map.put(username, userAuth); } } public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { if (!map.containsKey(username)) { throw new UsernameNotFoundException(username, null); } return map.get(username); } public void setText(String text) { this.text = text; } }