use of org.usermanagement.dao.entity.UserEntity in project open-kilda by telstra.
the class BaseController method isUserLoggedIn.
/**
* Returns true if user is logged in, false otherwise.
*
* @return true, if is user logged in
*/
protected boolean isUserLoggedIn() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (null != authentication) {
boolean isValid = (authentication.isAuthenticated() && !(authentication instanceof AnonymousAuthenticationToken));
if (isValid) {
UserEntity userEntity = null;
if (authentication.getCredentials() instanceof SAMLCredential) {
NameID nameId = (NameID) authentication.getPrincipal();
userEntity = userRepository.findByUsernameIgnoreCase(nameId.getValue());
} else {
userEntity = (UserEntity) authentication.getPrincipal();
userEntity = userRepository.findByUserId(userEntity.getUserId());
}
if (userEntity != null && userEntity.getStatusEntity().getStatusCode().equalsIgnoreCase(Status.ACTIVE.getCode())) {
isValid = true;
} else {
isValid = false;
}
}
return isValid;
} else {
return false;
}
}
use of org.usermanagement.dao.entity.UserEntity in project open-kilda by telstra.
the class LoginController method authenticate.
/**
* Authenticate.
*
* @param username the username
* @param password the password
* @param request the request
* @return the model and view
*/
@RequestMapping(value = "/authenticate", method = RequestMethod.POST)
public ModelAndView authenticate(@RequestParam("username") String username, @RequestParam("password") final String password, final HttpServletRequest request, RedirectAttributes redir) {
ModelAndView modelAndView = new ModelAndView(IConstants.View.LOGIN);
String error = null;
username = username != null ? username.toLowerCase() : null;
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, password);
CustomWebAuthenticationDetails customWebAuthenticationDetails = new CustomWebAuthenticationDetails(request);
token.setDetails(customWebAuthenticationDetails);
try {
HttpSession sessionOld = request.getSession(false);
if (sessionOld != null && !sessionOld.isNew()) {
sessionOld.invalidate();
}
Authentication authenticate = authenticationManager.authenticate(token);
if (authenticate.isAuthenticated()) {
modelAndView.setViewName(IConstants.View.REDIRECT_HOME);
UserInfo userInfo = getLoggedInUser(request);
userService.populateUserInfo(userInfo, username);
request.getSession(true).setAttribute(IConstants.SESSION_OBJECT, userInfo);
SecurityContextHolder.getContext().setAuthentication(authenticate);
userService.updateLoginDetail(username);
} else {
error = "Login failed; Invalid email or password.";
LOGGER.warn("Authentication failure for user: '" + username + "'");
modelAndView.setViewName(IConstants.View.REDIRECT_LOGIN);
}
} catch (TwoFaKeyNotSetException e) {
LOGGER.warn("2 FA Key not set for user: '" + username + "'");
modelAndView.addObject("username", username);
modelAndView.addObject("password", password);
String secretKey = TwoFactorUtility.getBase32EncryptedKey();
modelAndView.addObject("key", secretKey);
userService.updateUser2FaKey(username, secretKey);
modelAndView.addObject("applicationName", applicationName);
modelAndView.setViewName(IConstants.View.TWO_FA_GENERATOR);
} catch (OtpRequiredException e) {
LOGGER.warn("OTP required for user: '" + username + "'");
modelAndView.addObject("username", username);
modelAndView.addObject("password", password);
modelAndView.addObject("applicationName", applicationName);
modelAndView.setViewName(IConstants.View.OTP);
} catch (InvalidOtpException e) {
LOGGER.warn("Authentication code is invalid for user: '" + username + "'");
error = "Authentication code is invalid";
modelAndView.addObject("username", username);
modelAndView.addObject("password", password);
modelAndView.addObject("applicationName", applicationName);
if (customWebAuthenticationDetails.isConfigure2Fa()) {
UserEntity userInfo = userService.getUserByUsername(username);
modelAndView.addObject("key", userInfo.getTwoFaKey());
modelAndView.setViewName(IConstants.View.TWO_FA_GENERATOR);
} else {
modelAndView.setViewName(IConstants.View.OTP);
}
} catch (BadCredentialsException e) {
LOGGER.warn("Authentication failure", e);
error = e.getMessage();
modelAndView.setViewName(IConstants.View.REDIRECT_LOGIN);
} catch (LockedException e) {
error = e.getMessage();
modelAndView.setViewName(IConstants.View.REDIRECT_LOGIN);
} catch (Exception e) {
LOGGER.warn("Authentication failure", e);
error = "Login Failed. Error: " + e.getMessage() + ".";
modelAndView.setViewName(IConstants.View.REDIRECT_LOGIN);
}
if (error != null) {
redir.addFlashAttribute("error", error);
}
return modelAndView;
}
use of org.usermanagement.dao.entity.UserEntity in project open-kilda by telstra.
the class RequestInterceptor method availablePermissions.
private Set<String> availablePermissions(final UserInfo userInfo) {
Set<String> availablePermissions = new HashSet<>();
UserEntity userEntity = userRepository.findByUserId(userInfo.getUserId());
if (userInfo.getUserId() != 1 && userEntity != null && Status.ACTIVE.getStatusEntity().equals(userEntity.getStatusEntity())) {
Set<String> roles = userInfo.getRoles();
if (roles != null && roles.size() > 0) {
List<Role> roleList = roleService.getRoleByName(roles);
for (Role role : roleList) {
if (Status.ACTIVE.getStatusEntity().getStatus().equalsIgnoreCase(role.getStatus()) && role.getPermissions() != null) {
for (Permission permission : role.getPermissions()) {
if (Status.ACTIVE.getStatusEntity().getStatus().equalsIgnoreCase(permission.getStatus())) {
availablePermissions.add(permission.getName());
}
}
}
}
}
} else {
List<Permission> permissions = permissionService.getAllPermission(userInfo.getUserId());
for (Permission permission : permissions) {
availablePermissions.add(permission.getName());
}
}
userInfo.setPermissions(availablePermissions);
return availablePermissions;
}
use of org.usermanagement.dao.entity.UserEntity in project open-kilda by telstra.
the class UserActivityLogService method getActivityLog.
/**
* Gets the activity log.
*
* @param users the users
* @param activities the activities
* @param start the start
* @param end the end
* @return the activity log
*/
public List<LogInfo> getActivityLog(final List<Long> users, final List<String> activities, final String start, final String end) {
List<LogInfo> logs = userActivityService.getLogs(users, activities, start, end);
List<LogInfo> appAdminlogs = new ArrayList<LogInfo>();
if (!ValidatorUtil.isNull(logs)) {
Set<Long> userIds = new HashSet<Long>();
for (LogInfo log : logs) {
if (serverContext.getRequestContext().getUserId() != 1 && log.getUserId() == 1) {
appAdminlogs.add(log);
}
userIds.add(log.getUserId());
}
logs.removeAll(appAdminlogs);
List<UserEntity> usersList = userRepository.findByUserIdIn(userIds);
for (int i = 0; i < logs.size(); i++) {
UserEntity userEntity = getUser(logs.get(i).getUserId(), usersList);
if (userEntity != null) {
logs.get(i).setUsername(userEntity.getUsername());
} else {
logs.get(i).setUsername(String.valueOf(logs.get(i).getUserId()));
}
}
}
return logs;
}
use of org.usermanagement.dao.entity.UserEntity in project open-kilda by telstra.
the class UserService method loadUserByUsername.
/*
* (non-Javadoc)
*
* @see org.springframework.security.core.userdetails.UserDetailsService#
* loadUserByUsername(java. lang.String)
*/
@Override
public UserDetails loadUserByUsername(final String username) throws UsernameNotFoundException {
UserEntity user = userRepository.findByUsernameIgnoreCase(username);
Set<GrantedAuthority> authorities = new HashSet<GrantedAuthority>(0);
if (user == null) {
LOGGER.warn("User with username '" + username + "' not found.");
throw new UsernameNotFoundException(username);
}
return new org.springframework.security.core.userdetails.User(username, user.getPassword(), authorities);
}
Aggregations