package com.sungardas.enhancedsnapshots.security; import com.sungardas.enhancedsnapshots.aws.dynamodb.model.User; import com.sungardas.enhancedsnapshots.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import java.util.Arrays; public class DynamoDbUserDetailsService implements UserDetailsService { private static final String ROLE_PREFIX = "ROLE_"; @Autowired private UserService userService; @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { User user = userService.getUser(username.toLowerCase()); if (user != null) { return new org.springframework.security.core.userdetails.User(username, user.getPassword(), Arrays.asList(new SimpleGrantedAuthority(ROLE_PREFIX + user.getRole().toUpperCase()))); } throw new UsernameNotFoundException("No User found with login: "); } }