Untitled
unknown
plain_text
2 years ago
6.8 kB
3
Indexable
package com.ais.pms.controllers; import com.ais.pms.dtos.BaseResponse; import com.ais.pms.dtos.users.PermissionFinalDto; import com.ais.pms.dtos.users.PositionTypeDto; import com.ais.pms.dtos.users.ServicePermissionFinalDto; import com.ais.pms.exceptions.PermissionException; import com.ais.pms.models.ErrorMessage; import com.ais.pms.models.ServiceType; import com.ais.pms.utils.JwtUtils; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; import java.util.List; public class BaseWebService { public static final String HEADER_X_API_KEY = "X-api-key"; public static final String HEADER_AUTHORIZATION = "Authorization"; public static final String JWT_PERMISSIONS_NAME = "permissions"; public static final String JWT_ROLES_NAME = "roles"; public static final String JWT_COMPANY_ID_NAME = "companyId"; public static final String PARAM_ID = "id"; public static final String PARAM_NAME = "name"; protected String sub; protected Integer companyId; public <T> ResponseEntity<T> generateOK(T data) { return ResponseEntity.ok().body(data); } public ResponseEntity<BaseResponse<Integer>> generateOK() { return ResponseEntity.status(HttpStatus.OK).body(new BaseResponse<>(ErrorMessage.ErrorCode.OK)); } public ResponseEntity<BaseResponse<ErrorMessage>> generateNOK(int httpCode, ErrorMessage errorCode) { return ResponseEntity.status(httpCode).body(new BaseResponse<ErrorMessage>(errorCode)); } public <T> ResponseEntity<T> generateNOK(int httpCode, T data) { return ResponseEntity.status(httpCode).body(data); } protected String getUsername() { RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest(); String authorizationHeader = request.getHeader(BaseWebService.HEADER_AUTHORIZATION); if (authorizationHeader != null && !authorizationHeader.trim().isEmpty()) { authorizationHeader = authorizationHeader.trim(); String jwtToken; if (authorizationHeader.startsWith("Bearer ")) jwtToken = authorizationHeader.substring(7); else jwtToken = authorizationHeader; sub = JwtUtils.getUsernameFromToken(jwtToken, null); return sub; } else throw new PermissionException(ErrorMessage.PERMISSION_DENIED); } protected List<PermissionFinalDto> getPermissions() { RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest(); String authorizationHeader = request.getHeader(BaseWebService.HEADER_AUTHORIZATION); if (authorizationHeader != null && !authorizationHeader.trim().isEmpty()) { authorizationHeader = authorizationHeader.trim(); String jwtToken; if (authorizationHeader.startsWith("Bearer ")) jwtToken = authorizationHeader.substring(7); else jwtToken = authorizationHeader; List<ServicePermissionFinalDto> servicePermissions = JwtUtils.getClaimValueListByKey(jwtToken, JWT_PERMISSIONS_NAME, ServicePermissionFinalDto.class); if (servicePermissions != null) { for (ServicePermissionFinalDto servicePermission : servicePermissions) { if (servicePermission.getService() != null && servicePermission.getService().getId() != null && servicePermission.getService().getId().equals(ServiceType.PROJECT_MANAGEMENT_SERVICE.getId())) return servicePermission.getPermissions(); } } return null; } else throw new PermissionException(ErrorMessage.INVALID_TOKEN); } protected List<PositionTypeDto> getPositionTypes(){ RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest(); String authorizationHeader = request.getHeader(BaseWebService.HEADER_AUTHORIZATION); if (authorizationHeader != null && !authorizationHeader.trim().isEmpty()) { authorizationHeader = authorizationHeader.trim(); String jwtToken; if (authorizationHeader.startsWith("Bearer ")) jwtToken = authorizationHeader.substring(7); else jwtToken = authorizationHeader; return JwtUtils.getClaimValueListByKey(jwtToken, JWT_ROLES_NAME, PositionTypeDto.class); } else throw new PermissionException(ErrorMessage.INVALID_TOKEN); } protected String getServiceName() { RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest(); String authorizationHeader = request.getHeader(BaseWebService.HEADER_X_API_KEY); if (authorizationHeader != null && !authorizationHeader.trim().isEmpty()) { authorizationHeader = authorizationHeader.trim(); sub = JwtUtils.getUsernameFromToken(authorizationHeader, null); return sub; } else throw new PermissionException(ErrorMessage.PERMISSION_DENIED); } protected Integer getCompanyId() { RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest(); String authorizationHeader = request.getHeader(BaseWebService.HEADER_AUTHORIZATION); if (authorizationHeader != null && !authorizationHeader.trim().isEmpty()) { authorizationHeader = authorizationHeader.trim(); String jwtToken; if (authorizationHeader.startsWith("Bearer ")) jwtToken = authorizationHeader.substring(7); else jwtToken = authorizationHeader; companyId = JwtUtils.getClaimValueByKey(jwtToken, JWT_COMPANY_ID_NAME, Integer.class); return companyId; } else throw new PermissionException(ErrorMessage.PERMISSION_DENIED); } }
Editor is loading...