Browse Source

changed myuserdetailsservice to use userservice instead of calling userrolerepository directly.

master
nova 4 years ago
parent
commit
b83417570d
  1. 16
      chatto/src/main/java/org/ros/chatto/security/MyUserDetailsService.java
  2. 1
      chatto/src/main/java/org/ros/chatto/service/UserService.java
  3. 30
      chatto/src/main/java/org/ros/chatto/service/UserServiceImpl.java

16
chatto/src/main/java/org/ros/chatto/security/MyUserDetailsService.java

@ -4,7 +4,7 @@ import java.util.List;
import org.ros.chatto.model.ChatUser;
import org.ros.chatto.model.UserRole;
import org.ros.chatto.repository.UserRoleRepository;
import org.ros.chatto.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
@ -12,26 +12,28 @@ import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
@Service
@Slf4j
public class MyUserDetailsService implements UserDetailsService {
@Autowired
private UserRoleRepository userRoleRepository;
private UserService userService;
@Override
public UserDetails loadUserByUsername(String username) {
List<UserRole> userRoles = userRoleRepository.findByUser(username);
System.out.println("Test from userdetails");
log.trace("User Details - loading with username: {}", username);
List<UserRole> userRoles = userService.getUserWithRole(username);
if (userRoles.size() == 0) {
log.warn("Request for unknown user {}", username);
throw new UsernameNotFoundException(username);
}
ChatUser user = userRoles.get(0).getUser();
return User.withUsername(user.getUserName()).password(user.getPassword())
.roles(userRoles.stream().map(userRole -> {
System.out.println("role = " + userRole.getRole().getName());
log.trace("role = " + userRole.getRole().getName());
return userRole.getRole().getName();
}).toArray(size -> new String[size])).build();
}

1
chatto/src/main/java/org/ros/chatto/service/UserService.java

@ -15,4 +15,5 @@ public interface UserService {
public List<String> getAllRegularUsers();
public ChatUser findByUserName(String userName);
public List<ActiveUserDTO> getOtherActiveUsers(String userName);
public List<UserRole> getUserWithRole(String userName);
}

30
chatto/src/main/java/org/ros/chatto/service/UserServiceImpl.java

@ -31,12 +31,11 @@ public class UserServiceImpl implements UserService {
private UserRoleRepository userRoleRepository;
@Autowired
private PasswordEncoder passwordEncoder;
private PasswordEncoder passwordEncoder;
@Autowired
private RoleService roleService;
@Autowired
private UserSessionRepository userSessionRepository;
@ -50,8 +49,8 @@ public class UserServiceImpl implements UserService {
Role role = roleService.getRole("USER");
userRole.setRole(role);
userRole.setUser(changedUser);
// System.out.println(role.getRoleID());
// System.out.println(changedUser.getUserID());
// System.out.println(role.getRoleID());
// System.out.println(changedUser.getUserID());
userRoleRepository.save(userRole);
return userRole;
}
@ -71,27 +70,26 @@ public class UserServiceImpl implements UserService {
@Transactional(readOnly = true)
public List<ActiveUserDTO> getOtherActiveUsers(String userName) {
List<String> userList = findAllOtherUsers(userName);
List<UserSession> userSessionsList = userSessionRepository.findAllUserSessions();
Map<String, UserSession> lastActiveMap = convertToMap(userSessionsList);
List<ActiveUserDTO> activeUserDTOs = new ArrayList<ActiveUserDTO>();
userList.forEach(u -> {
ActiveUserDTO activeUserDTO = new ActiveUserDTO();
UserSession us = lastActiveMap.get(u);
UserSession us = lastActiveMap.get(u);
activeUserDTO.setUserName(u);
activeUserDTO.setOnline(false);
activeUserDTO.setLastActive(null);
if(us != null)
{
if (us != null) {
activeUserDTO.setOnline(us.isOnline());
activeUserDTO.setLastActive(toLastActiveString(us.getTimeStamp()));
}
activeUserDTOs.add(activeUserDTO);
});
return activeUserDTOs;
}
@ -145,4 +143,10 @@ public class UserServiceImpl implements UserService {
// @formatter:on
}
@Override
@Transactional(readOnly = true)
public List<UserRole> getUserWithRole(String userName) {
return userRoleRepository.findByUser(userName);
}
}
Loading…
Cancel
Save