[WMS] Refactoring per autenticatione OAuth

This commit is contained in:
2024-05-07 18:55:12 +02:00
parent 91994256d7
commit d1726b65ff
22 changed files with 172 additions and 137 deletions

View File

@@ -1,7 +1,6 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Tomcat" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local" APPLICATION_SERVER_NAME="Tomcat" ALTERNATIVE_JRE_ENABLED="false" ALTERNATIVE_JRE_PATH="1.8" nameIsGenerated="true">
<option name="COMMON_VM_ARGUMENTS" value="-Xms512m -Xmx2048m" />
<option name="UPDATING_POLICY" value="restart-server" />
<deployment>
<artifact name="ems-engine:war exploded">
<settings>

View File

@@ -3,18 +3,16 @@ package it.integry.ems._context;
import it.integry.annotations.PostContextConstruct;
import it.integry.common.var.EmsDBConst;
import it.integry.ems.datasource.DataSource;
import it.integry.ems.dynamic_cache.DynamicCacheService;
import it.integry.ems.expansion.RunnableArgs;
import it.integry.ems.settings.Model.AvailableConnectionsModel;
import it.integry.ems.settings.Model.SettingsModel;
import it.integry.ems.settings.SettingsController;
import it.integry.ems.sync.MultiDBTransaction.AdvancedDataSource;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.user.UserCacheService;
import it.integry.ems.user.service.UserCacheService;
import it.integry.ems_model.entity.Azienda;
import it.integry.ems_model.service.SetupGest;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityHashMap;
import it.integry.ems_model.utility.UtilityString;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -22,9 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@Component
public class EmsCoreDBLoader {

View File

@@ -2,7 +2,8 @@ package it.integry.ems.model;
public enum IntegryApplicationEnum {
GESTIONALE_BASE("5858a2a0-1188-4edd-8f71-d7da5bfb350d"),
PVM("845da2d9-f2f9-4f8d-ad5b-34b65a91eb6d");
PVM("845da2d9-f2f9-4f8d-ad5b-34b65a91eb6d"),
WMS("fa3a21af-606b-4129-a22b-aedc2a52c7b6");
private String text;

View File

@@ -1,11 +1,11 @@
package it.integry.ems.system.user.controller;
package it.integry.ems.user.controller;
import it.integry.common.var.CommonConstants;
import it.integry.ems.response.ServiceRestResponse;
import it.integry.ems.response.StatusResponse;
import it.integry.ems.status.ServiceChecker;
import it.integry.ems.system.dto.ChangePasswordDTO;
import it.integry.ems.system.user.service.UserService;
import it.integry.ems.user.dto.ChangePasswordDTO;
import it.integry.ems.user.service.UserService;
import it.integry.ems_model.entity.StbUser;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -54,4 +54,10 @@ public class UserController {
return ServiceRestResponse.createPositiveResponse(userService.changePassword(passwordDTO));
}
@RequestMapping(value = "availableProfiles", method = RequestMethod.GET)
public ServiceRestResponse changePassword(@RequestParam String username) throws Exception {
return ServiceRestResponse.createPositiveResponse(userService.retrieveAvailableProfiles(username));
}
}

View File

@@ -1,9 +1,9 @@
package it.integry.ems.system.user.controller;
package it.integry.ems.user.controller;
import it.integry.common.var.CommonConstants;
import it.integry.ems.response.ServiceRestResponse;
import it.integry.ems.system.user.dto.UserRegistrationDTO;
import it.integry.ems.system.user.service.UserRegistrationService;
import it.integry.ems.user.dto.UserRegistrationDTO;
import it.integry.ems.user.service.UserRegistrationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.web.bind.annotation.*;

View File

@@ -1,4 +1,4 @@
package it.integry.ems.system.dto;
package it.integry.ems.user.dto;
public class ChangePasswordDTO {
private String password;

View File

@@ -1,4 +1,4 @@
package it.integry.ems.system.user.dto;
package it.integry.ems.user.dto;
public class UserRegistrationDTO {
private String name;

View File

@@ -1,4 +1,4 @@
package it.integry.ems.user;
package it.integry.ems.user.service;
import com.annimon.stream.Optional;
import com.annimon.stream.Stream;
@@ -20,7 +20,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.sql.Connection;
import java.util.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class UserCacheService {
@@ -144,4 +147,9 @@ public class UserCacheService {
cachedUsers.putIfAbsent(profileDB, new ArrayList<>());
}
public void invalidateCache() {
this.cachedUsers.clear();
this.internalCheck();
}
}

View File

@@ -1,8 +1,8 @@
package it.integry.ems.system.user.service;
package it.integry.ems.user.service;
import it.integry.ems.service.EntityProcessor;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.system.user.dto.UserRegistrationDTO;
import it.integry.ems.user.dto.UserRegistrationDTO;
import it.integry.ems_model.config.EmsRestConstants;
import it.integry.ems_model.entity.StbUser;
import it.integry.ems_model.types.OperationType;

View File

@@ -1,11 +1,12 @@
package it.integry.ems.system.user.service;
package it.integry.ems.user.service;
import it.integry.ems.exception.PrimaryDatabaseNotPresentException;
import it.integry.ems.javabeans.RequestDataDTO;
import it.integry.ems.service.EntityProcessor;
import it.integry.ems.settings.Model.SettingsModel;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.system.dto.ChangePasswordDTO;
import it.integry.ems.user.UtilityUser;
import it.integry.ems.user.dto.ChangePasswordDTO;
import it.integry.ems.utility.UtilityDebug;
import it.integry.ems.utility.UtilityEntity;
import it.integry.ems_model.config.EmsRestConstants;
@@ -22,6 +23,7 @@ import org.springframework.stereotype.Service;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;
@Service
@Scope("request")
@@ -35,12 +37,18 @@ public class UserService {
@Autowired
private MultiDBTransactionManager multiDBTransactionManager;
public StbUser save (StbUser stbUser) throws Exception {
@Autowired
private UserCacheService userCacheService;
@Autowired
private SettingsModel settingsModel;
public StbUser save(StbUser stbUser) throws Exception {
String sql =
Query.format(
"SELECT dbo.sys_dcd_pss(password)\n" +
"FROM stb_user\n" +
"WHERE user_name = %s ", stbUser.getUserName());
"SELECT dbo.sys_dcd_pss(password)\n" +
"FROM stb_user\n" +
"WHERE user_name = %s ", stbUser.getUserName());
String oldPassword = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
@@ -53,7 +61,7 @@ public class UserService {
return stbUser;
}
public StbUser changePassword (ChangePasswordDTO passwordDTO) throws Exception {
public StbUser changePassword(ChangePasswordDTO passwordDTO) throws Exception {
StbUser stbUser =
new StbUser()
.setUserName(requestDataDTO.getUsername());
@@ -62,14 +70,14 @@ public class UserService {
Date expiringDate = EmsRestConstants.DATE_NULL;
if (stbUser.getFlagPasswordExpiring().equalsIgnoreCase("S") &&
stbUser.getPasswordExpiresDays() != 0) {
stbUser.getPasswordExpiresDays() != 0) {
expiringDate = UtilityDate.dateAdd(new Date(), stbUser.getPasswordExpiresDays());
}
stbUser
.setPassword(passwordDTO.getPassword())
.setCryptPassword(true)
.setPasswordEndtime(expiringDate);
.setPassword(passwordDTO.getPassword())
.setCryptPassword(true)
.setPasswordEndtime(expiringDate);
stbUser.setOperation(OperationType.UPDATE);
entityProcessor.processEntity(stbUser, multiDBTransactionManager);
@@ -79,7 +87,6 @@ public class UserService {
}
public String retrieveCodJflav(String username) throws SQLException, IOException, PrimaryDatabaseNotPresentException {
String sql = Query.format("SELECT TOP 1 cod_jflav " +
" FROM jrl_flav_users " +
@@ -88,4 +95,45 @@ public class UserService {
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
}
public List<String> retrieveAvailableProfiles(String username) {
List<String> profiles;
profiles = userCacheService.retrieveProfilesOfUserByUsername(username);
if (profiles.isEmpty()) {
// SELEZIONE CICLICA IN TUTTI I DB SPECIFICATI
userCacheService.invalidateCache();
profiles = userCacheService.retrieveProfilesOfUserByUsername(username);
}
return profiles;
//
// for (String profile : profiles) {
// multiDBTransactionManager.closeAll();
// multiDBTransactionManager.setPrimaryDs(profile);
//
// try {
// StbUser tmpUserData = this.getUser(username, password, multiDBTransactionManager);
//
// if (tmpUserData != null) {
// UserDTO userDTO = new UserDTO()
// .setUsername(tmpUserData.getUsername())
// .setEmail(tmpUserData.geteMail())
// .setFullname(tmpUserData.getFullName())
// .setType("web")
// .setAttivo("S".equalsIgnoreCase(tmpUserData.getFlagAttivo()));
//
// userCacheService.cache(profile, userDTO);
//
// userData.setUser(tmpUserData);
//
// profilesWhereUserFound.add(profile);
// }
// } finally {
// multiDBTransactionManager.closeAll();
// }
// }
}
}

View File

@@ -3,25 +3,19 @@ package it.integry.security.cache;
import com.annimon.stream.Stream;
import io.jsonwebtoken.io.Decoders;
import io.jsonwebtoken.security.Keys;
import it.integry.annotations.PostContextAutowired;
import it.integry.annotations.PostContextConstruct;
import it.integry.ems.datasource.DataSource;
import it.integry.ems.looper.service.LooperService;
import it.integry.ems.settings.Model.AvailableConnectionsModel;
import it.integry.ems.settings.Model.SettingsModel;
import it.integry.ems.sync.MultiDBTransaction.AdvancedDataSource;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.user.UserCacheService;
import it.integry.ems.utility.UtilityDebug;
import it.integry.ems_model.entity.Azienda;
import net.jodah.expiringmap.ExpiringMap;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.crypto.SecretKey;
import java.io.IOException;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;

View File

@@ -5,6 +5,7 @@ import it.integry.ems.exception.AuthorizationExpriredException;
import it.integry.ems.response.ServiceRestResponse;
import it.integry.ems_model.entity.StbAuthToken;
import it.integry.ems_model.utility.UtilityLocalDate;
import it.integry.ems_model.utility.UtilityString;
import it.integry.security.cache.JwtTokenCacheComponent;
import it.integry.security.dto.LoginRequestDTO;
import it.integry.security.dto.LogoutRequestDTO;
@@ -44,7 +45,8 @@ public class AuthController {
@RequestParam(value = CommonConstants.PROFILE_DB, required = false) String profileDb,
@RequestBody LoginRequestDTO loginRequestDTO) {
try {
loginRequestDTO.setProfileDb(profileDb);
if(UtilityString.isNullOrEmpty(loginRequestDTO.getProfileDb()))
loginRequestDTO.setProfileDb(profileDb);
return ServiceRestResponse.createPositiveResponse(authService.login(loginRequestDTO));
} catch (AuthorizationExpriredException ex) {

View File

@@ -1,7 +1,10 @@
package it.integry.security.dto;
public class AuthTokenProfileDetails {
public final AuthTokenDepoDetails defaultDepo;
public AuthTokenDepoDetails defaultDepo;
public AuthTokenProfileDetails() {
}
public AuthTokenProfileDetails(AuthTokenDepoDetails defaultDepo) {
this.defaultDepo = defaultDepo;
@@ -10,4 +13,9 @@ public class AuthTokenProfileDetails {
public AuthTokenDepoDetails getDefaultDepo() {
return defaultDepo;
}
public AuthTokenProfileDetails setDefaultDepo(AuthTokenDepoDetails defaultDepo) {
this.defaultDepo = defaultDepo;
return this;
}
}

View File

@@ -1,9 +1,8 @@
package it.integry.security.dto;
public class RefreshRequestDTO {
String refreshToken;
String profileDb;
String deviceId;
private String refreshToken;
private String profileDb;
public String getRefreshToken() {
return refreshToken;
@@ -22,13 +21,4 @@ public class RefreshRequestDTO {
this.profileDb = profileDb;
return this;
}
public String getDeviceId() {
return deviceId;
}
public RefreshRequestDTO setDeviceId(String deviceId) {
this.deviceId = deviceId;
return this;
}
}

View File

@@ -90,8 +90,8 @@ public class AccessTokenProvider implements InitializingBean {
HashMap<?, ?> detailsHashMap = (HashMap<?, ?>) claims.get("details");
AuthTokenDetails authTokenDetails = null;
if(detailsHashMap != null && !detailsHashMap.isEmpty()) {
authTokenDetails = jsonObjectMapper.convertValue(detailsHashMap, AuthTokenDetails.class);
if (detailsHashMap != null && !detailsHashMap.isEmpty()) {
authTokenDetails = jsonObjectMapper.convertValue(detailsHashMap, AuthTokenDetails.class);
}
@@ -102,20 +102,14 @@ public class AccessTokenProvider implements InitializingBean {
}
public boolean validateToken(String profileDb, String token) {
try {
String dbName = settingsModel.getDbNameFromProfileDb(profileDb);
final Jws<Claims> claimsJws = Jwts
.parserBuilder()
.setSigningKey(this.secretKeyCacheComponent.getKey(dbName))
.build()
.parseClaimsJws(token);
String dbName = settingsModel.getDbNameFromProfileDb(profileDb);
final Jws<Claims> claimsJws = Jwts
.parserBuilder()
.setSigningKey(this.secretKeyCacheComponent.getKey(dbName))
.build()
.parseClaimsJws(token);
return true;
} catch (Exception e) {
logger.error("Token non valido.", e);
}
return false;
return true;
}
public Date getTokenExpiryFromJWT(String profileDb, String token) {

View File

@@ -1,16 +1,17 @@
package it.integry.security.jwt;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.jsonwebtoken.ExpiredJwtException;
import it.integry.common.var.CommonConstants;
import it.integry.ems.response.ServiceRestResponse;
import it.integry.ems.settings.Model.SettingsModel;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.system.GlobalExceptionHandler;
import it.integry.ems_model.entity.StbAuthToken;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityString;
import it.integry.security.cache.JwtTokenCacheComponent;
import it.integry.security.dto.AuthTokenDetails;
import it.integry.security.exception.InvalidTokenException;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.util.StringUtils;
@@ -22,7 +23,9 @@ import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class JWTFilter extends GenericFilterBean {
public static final String AUTHORIZATION_HEADER = "Authorization";
@@ -35,12 +38,21 @@ public class JWTFilter extends GenericFilterBean {
public JWTFilter(AccessTokenProvider accessTokenProvider, JwtTokenCacheComponent tokenCache) {
this.accessTokenProvider = accessTokenProvider;
this.tokenCache = tokenCache;
}
@Override
protected void initFilterBean() throws ServletException {
super.initFilterBean();
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
HttpServletResponse httpServletResponse = (HttpServletResponse) servletResponse;
String token = resolveToken(httpServletRequest);
String profileDb = resolveProfileDb(httpServletRequest);
@@ -49,7 +61,7 @@ public class JWTFilter extends GenericFilterBean {
if (accessTokenProvider.validateToken(profileDb, token)) {
StbAuthToken stbAuthToken = tokenCache.getTokenByAccessToken(profileDb, token);
if(stbAuthToken == null)
if (stbAuthToken == null)
throw new InvalidTokenException(token);
@@ -58,8 +70,9 @@ public class JWTFilter extends GenericFilterBean {
logger.debug("Set Authentication to security context for '{}'.", authenticationToken.getName());
}
} catch (Exception e) {
logger.error("Ricevuta richiesta jwt non valida", e);
} catch (Exception ex) {
handleException(ex, httpServletRequest, httpServletResponse);
return;
}
}
@@ -67,6 +80,35 @@ public class JWTFilter extends GenericFilterBean {
}
private void handleException(Exception ex, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException {
logger.error("JWT Token non valido", ex);
ServiceRestResponse errorObject = null;
GlobalExceptionHandler globalExceptionHandler = ContextLoader.getCurrentWebApplicationContext().getBean(GlobalExceptionHandler.class);
if (ex instanceof ExpiredJwtException) {
ExpiredJwtException expiredJwtException = (ExpiredJwtException) ex;
errorObject = globalExceptionHandler.handleException(
httpServletRequest,
httpServletResponse,
new AccessDeniedException("Session expired", expiredJwtException.getCause()));
} else {
errorObject = globalExceptionHandler.handleException(
httpServletRequest,
httpServletResponse,
ex);
}
httpServletResponse.setContentType("application/json");
//pass down the actual obj that exception handler normally send
ObjectMapper mapper = new ObjectMapper();
PrintWriter out = httpServletResponse.getWriter();
out.print(mapper.writeValueAsString(errorObject));
out.flush();
}
private String resolveToken(HttpServletRequest request) {
String bearerToken = request.getHeader(AUTHORIZATION_HEADER);

View File

@@ -1,14 +1,12 @@
package it.integry.security.service;
import com.annimon.stream.Stream;
import it.integry.ems.exception.AuthorizationExpriredException;
import it.integry.ems.javabeans.RequestDataDTO;
import it.integry.ems.service.EntityProcessor;
import it.integry.ems.settings.Model.AvailableConnectionsModel;
import it.integry.ems.settings.Model.SettingsModel;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.user.UserCacheService;
import it.integry.ems.user.dto.UserDTO;
import it.integry.ems.user.service.UserCacheService;
import it.integry.ems.user.service.UserService;
import it.integry.ems_model.entity.StbAuthToken;
import it.integry.ems_model.entity.StbDevices;
import it.integry.ems_model.entity.StbUser;
@@ -29,7 +27,6 @@ import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -39,6 +36,8 @@ public class AuthService {
@Autowired
private UserCacheService userCacheService;
@Autowired
private UserService userService;
@Autowired
private SettingsModel settingsModel;
@Autowired
private MultiDBTransactionManager multiDBTransactionManager;
@@ -81,55 +80,8 @@ public class AuthService {
userData.setUser(this.getUser(username, password, multiDBTransactionManager));
} else {
List<String> profiles;
profiles = userCacheService.retrieveProfilesOfUserByUsername(username);
if (profiles.isEmpty()) {
// SELEZIONE CICLICA IN TUTTI I DB SPECIFICATI
profiles = Stream.of(settingsModel.getAvailableConnections())
.filter(x -> x.getInternalDb() && x.getProfileName().equalsIgnoreCase(x.getDbName()))
.map(AvailableConnectionsModel::getProfileName)
.toList();
}
if (profiles.isEmpty()) {
profiles = Stream.of(settingsModel.getAvailableConnections())
.filter(AvailableConnectionsModel::getInternalDb)
.distinctBy(AvailableConnectionsModel::getDbName)
.map(AvailableConnectionsModel::getProfileName)
.toList();
}
List<String> profilesWhereUserFound = new ArrayList<>();
for (String profile : profiles) {
multiDBTransactionManager.closeAll();
multiDBTransactionManager.setPrimaryDs(profile);
try {
StbUser tmpUserData = this.getUser(username, password, multiDBTransactionManager);
if (tmpUserData != null) {
UserDTO userDTO = new UserDTO()
.setUsername(tmpUserData.getUsername())
.setEmail(tmpUserData.geteMail())
.setFullname(tmpUserData.getFullName())
.setType("web")
.setAttivo("S".equalsIgnoreCase(tmpUserData.getFlagAttivo()));
userCacheService.cache(profile, userDTO);
userData.setUser(tmpUserData);
profilesWhereUserFound.add(profile);
}
} finally {
multiDBTransactionManager.closeAll();
}
}
userData.setAvailableProfiles(profilesWhereUserFound);
List<String> profiles = userService.retrieveAvailableProfiles(username);
userData.setAvailableProfiles(profiles);
}
if (userData.getUser() == null) {

View File

@@ -8,7 +8,7 @@ import it.integry.ems.javabeans.RequestDataDTO;
import it.integry.ems.service.EntityProcessor;
import it.integry.ems.service.MailService;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.system.user.service.UserService;
import it.integry.ems.user.service.UserService;
import it.integry.ems.utility.UtilityEntity;
import it.integry.ems_model.entity.JtbGiustifica;
import it.integry.ems_model.entity.JtbRLavt;

View File

@@ -9,8 +9,8 @@ import it.integry.ems.exception.PrimaryDatabaseNotPresentException;
import it.integry.ems.service.EntityProcessor;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.system.service.SystemService;
import it.integry.ems.system.user.service.UserService;
import it.integry.ems.user.dto.UserDTO;
import it.integry.ems.user.service.UserService;
import it.integry.ems.utility.service.UtilityService;
import it.integry.ems_model.entity.JtbRLavr;
import it.integry.ems_model.entity.JtbRLavt;

View File

@@ -27,7 +27,7 @@ public class MenuService {
public StbMenu retrieveMenuConfig(String rootCodOpz) throws Exception {
if (!requestDataDTO.isValidUsername() || !requestDataDTO.isValidPassword()) {
if (!requestDataDTO.isValidUsername()) {
throw new UsernameNotFoundException("Utente " + requestDataDTO.getUsername() + " non riconoscuto!");
}

View File

@@ -8,9 +8,7 @@ import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import it.integry.common.var.CommonConstants;
import it.integry.ems.contabil.fatture.exceptions.InvoiceProcessException;
import it.integry.ems.datasource.DataSource;
import it.integry.ems.export.enums.EntityExportType;
import it.integry.ems.javabeans.RequestDataDTO;
import it.integry.ems.license.LicenseStatusDTO;
import it.integry.ems.media.MediaImageService;
@@ -34,9 +32,9 @@ import it.integry.ems.system.dto.GestioniPvmDTO;
import it.integry.ems.system.dto.TreeDTO;
import it.integry.ems.system.request.SystemChangePasswordRequest;
import it.integry.ems.system.request.SystemLoginRequest;
import it.integry.ems.user.UserCacheService;
import it.integry.ems.user.dto.UserDTO;
import it.integry.ems.user.dto.UserWPasswordDTO;
import it.integry.ems.user.service.UserCacheService;
import it.integry.ems.utility.UtilityDebug;
import it.integry.ems.utility.UtilityEntity;
import it.integry.ems.utility.UtilityFile;
@@ -55,11 +53,8 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.docx4j.Docx4J;
import org.docx4j.openpackaging.exceptions.Docx4JException;
import org.docx4j.openpackaging.packages.Filetype;
import org.docx4j.openpackaging.packages.OpcPackage;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart;
import org.docx4j.wml.P;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

View File

@@ -91,7 +91,7 @@
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"/>
<PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss} [%c{1}] %msg%n"/>
</Console>
</Appenders>