package eu.eudat.services; import eu.eudat.dao.entities.UserInfoDao; import eu.eudat.dao.entities.security.UserTokenDao; import eu.eudat.entities.UserInfo; import eu.eudat.entities.UserToken; import eu.eudat.models.security.Principal; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.xml.ws.ServiceMode; import java.util.Date; import java.util.List; import java.util.UUID; /** * Created by ikalyvas on 12/15/2017. */ @Service("authenticationService ") public class AuthenticationService { @Autowired UserTokenDao userTokenDao; @Autowired UserInfoDao userInfoDao; public Principal Touch(UUID token) { UserToken tokenEntry = userTokenDao.read(token); if (tokenEntry == null || tokenEntry.getExpiresAt().before(new Date())) return null; Principal principal = this.Touch(tokenEntry); return principal; } public void Logout(UUID token) { UserToken tokenEntry = userTokenDao.read(token); userTokenDao.delete(tokenEntry); } private Principal Touch(UserToken token) { if (token == null || token.getExpiresAt().before(new Date())) return null; UserInfo user = this.userInfoDao.find(token.getUser().getId()); if (user == null /*|| user.Status != ActivityStatus.Active*/) return null; //List appRoles = this._unitOfWork.UserRoles.GetAll().Where(x => x.UserId == token.UserId /*&& x.Status == ActivityStatus.Active*/).ToList(); Principal principal = new Principal(); principal.setId(user.getId()); principal.setToken(token.getToken()); principal.setExpiresAt(token.getExpiresAt()); principal.setName(user.getName()); /*foreach (UserRole item in appRoles) { if (principal.AppRoles == null) principal.AppRoles = new HashSet(); principal.AppRoles.Add(item.Role); } if (this._config.Refresh) token.ExpiresAt = DateTime.UtcNow.AddMinutes(this._config.Lifetime); */ return principal; } }