Search in sources :

Example 81 with ServletServerHttpRequest

use of org.springframework.http.server.ServletServerHttpRequest in project CzechIdMng by bcvsolutions.

the class ModuleController method patch.

/**
 * Supports enable / disable only
 *
 * @param moduleId
 * @param nativeRequest
 * @return
 */
@ResponseBody
@RequestMapping(value = "/{moduleId}", method = RequestMethod.PATCH)
@PreAuthorize("hasAuthority('" + CoreGroupPermission.MODULE_UPDATE + "')")
@ApiOperation(value = "Update module properties", nickname = "patchModule", tags = { ModuleController.TAG }, authorizations = { @Authorization(value = SwaggerConfig.AUTHENTICATION_BASIC, scopes = { @AuthorizationScope(scope = CoreGroupPermission.MODULE_UPDATE, description = "") }), @Authorization(value = SwaggerConfig.AUTHENTICATION_CIDMST, scopes = { @AuthorizationScope(scope = CoreGroupPermission.MODULE_UPDATE, description = "") }) }, notes = "Supports enable / disable only")
public ModuleDescriptorDto patch(@ApiParam(value = "Module's identifier.", required = true) @PathVariable @NotNull String moduleId, HttpServletRequest nativeRequest) {
    ModuleDescriptor updatedModuleDescriptor = moduleService.getModule(moduleId);
    if (updatedModuleDescriptor == null) {
        throw new ResultCodeException(CoreResultCode.NOT_FOUND, ImmutableMap.of("entity", moduleId));
    }
    // 
    ServletServerHttpRequest request = new ServletServerHttpRequest(nativeRequest);
    try {
        ModuleDescriptorDto dto = objectMapper.readValue(request.getBody(), ModuleDescriptorDto.class);
        moduleService.setEnabled(moduleId, !dto.isDisabled());
    } catch (IOException ex) {
        throw new ResultCodeException(CoreResultCode.BAD_REQUEST, ex);
    }
    // 
    return get(moduleId);
}
Also used : ModuleDescriptor(eu.bcvsolutions.idm.core.api.domain.ModuleDescriptor) ServletServerHttpRequest(org.springframework.http.server.ServletServerHttpRequest) ResultCodeException(eu.bcvsolutions.idm.core.api.exception.ResultCodeException) ModuleDescriptorDto(eu.bcvsolutions.idm.core.api.dto.ModuleDescriptorDto) IOException(java.io.IOException) ApiOperation(io.swagger.annotations.ApiOperation) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize) ResponseBody(org.springframework.web.bind.annotation.ResponseBody) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 82 with ServletServerHttpRequest

use of org.springframework.http.server.ServletServerHttpRequest in project powerauth-restful-integration by lime-company.

the class EncryptionResponseBodyAdvice method beforeBodyWrite.

/**
 * Encrypt response before writing body.
 *
 * @param response Response object.
 * @param methodParameter Method parameter.
 * @param mediaType Selected HTTP response media type.
 * @param converterClass Selected HTTP message converter class.
 * @param serverHttpRequest HTTP request.
 * @param serverHttpResponse HTTP response.
 * @return ECIES cryptogram.
 */
@Override
public Object beforeBodyWrite(Object response, @NonNull MethodParameter methodParameter, @NonNull MediaType mediaType, @NonNull Class<? extends HttpMessageConverter<?>> converterClass, @NonNull ServerHttpRequest serverHttpRequest, @NonNull ServerHttpResponse serverHttpResponse) {
    if (response == null) {
        return null;
    }
    // Extract ECIES encryption object from HTTP request
    final HttpServletRequest httpServletRequest = ((ServletServerHttpRequest) serverHttpRequest).getServletRequest();
    final PowerAuthEciesEncryption eciesEncryption = (PowerAuthEciesEncryption) httpServletRequest.getAttribute(PowerAuthRequestObjects.ENCRYPTION_OBJECT);
    if (eciesEncryption == null) {
        return null;
    }
    // Convert response to JSON
    try {
        byte[] responseBytes = serializeResponseObject(response);
        // Encrypt response using decryptor and return ECIES cryptogram
        final EciesDecryptor eciesDecryptor = eciesEncryption.getEciesDecryptor();
        final EciesCryptogram cryptogram = eciesDecryptor.encryptResponse(responseBytes);
        final String encryptedDataBase64 = BaseEncoding.base64().encode(cryptogram.getEncryptedData());
        final String macBase64 = BaseEncoding.base64().encode(cryptogram.getMac());
        // Return encrypted response with type given by converter class
        final EciesEncryptedResponse encryptedResponse = new EciesEncryptedResponse(encryptedDataBase64, macBase64);
        if (converterClass.isAssignableFrom(MappingJackson2HttpMessageConverter.class)) {
            // Object conversion is done automatically using MappingJackson2HttpMessageConverter
            return encryptedResponse;
        } else if (converterClass.isAssignableFrom(StringHttpMessageConverter.class)) {
            // Conversion to byte[] is done using first applicable configured HTTP message converter, corresponding String is returned
            return new String(convertEncryptedResponse(encryptedResponse, mediaType), StandardCharsets.UTF_8);
        } else {
            // Conversion to byte[] is done using first applicable configured HTTP message converter
            return convertEncryptedResponse(encryptedResponse, mediaType);
        }
    } catch (Exception ex) {
        logger.warn("Encryption failed, error: {}", ex.getMessage());
        logger.debug("Error details", ex);
        return null;
    }
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) EciesCryptogram(io.getlime.security.powerauth.crypto.lib.encryptor.ecies.model.EciesCryptogram) ServletServerHttpRequest(org.springframework.http.server.ServletServerHttpRequest) PowerAuthEciesEncryption(io.getlime.security.powerauth.rest.api.spring.encryption.PowerAuthEciesEncryption) EciesEncryptedResponse(io.getlime.security.powerauth.rest.api.model.response.v3.EciesEncryptedResponse) EciesDecryptor(io.getlime.security.powerauth.crypto.lib.encryptor.ecies.EciesDecryptor) StringHttpMessageConverter(org.springframework.http.converter.StringHttpMessageConverter) IOException(java.io.IOException)

Example 83 with ServletServerHttpRequest

use of org.springframework.http.server.ServletServerHttpRequest in project pmph by BCSquad.

the class HandshakeInterceptor method beforeHandshake.

// 握手前
@Override
public boolean beforeHandshake(ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse, WebSocketHandler webSocketHandler, Map<String, Object> map) throws Exception {
    if (serverHttpRequest instanceof ServletServerHttpRequest) {
        ServletServerHttpRequest servletRequest = (ServletServerHttpRequest) serverHttpRequest;
        String userType = servletRequest.getServletRequest().getParameter("userType");
        String sessionId = servletRequest.getServletRequest().getParameter("sessionId");
        if (null == userType || "".equals(userType)) {
            return false;
        }
        String userId = null;
        // userType 1=社内用户/2=作家/3=机构用户
        if ("1".equals(userType)) {
            PmphUser pmphUser = SessionUtil.getPmphUserBySessionId(sessionId);
            if (null == pmphUser) {
                return false;
            }
            Long pmphUserId = pmphUser.getId();
            if (null == pmphUserId) {
                return false;
            }
            userId = userType + "_" + pmphUserId;
        } else if ("2".equals(userType)) {
            String fonrtUserId = servletRequest.getServletRequest().getParameter("userId");
            if (null == fonrtUserId || "".equals(fonrtUserId.trim())) {
                return false;
            }
            userId = userType + "_" + fonrtUserId;
            // 验证前台是否登录过了
            if (!MyWebSocketHandler.isLogin(userId)) {
                return false;
            }
        } else if ("3".equals(userType)) {
        } else {
            return false;
        }
        if (null == userId) {
            return false;
        }
        // 为服务器创建WebSocketSession做准备
        map.put("userId", userId);
        return true;
    }
    return false;
}
Also used : ServletServerHttpRequest(org.springframework.http.server.ServletServerHttpRequest) PmphUser(com.bc.pmpheep.back.po.PmphUser)

Example 84 with ServletServerHttpRequest

use of org.springframework.http.server.ServletServerHttpRequest in project flytecnologia-api by jullierme.

the class FlyRefreshTokenPostProcessor method beforeBodyWrite.

@Override
public OAuth2AccessToken beforeBodyWrite(OAuth2AccessToken body, MethodParameter returnType, MediaType selectedContentType, Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {
    HttpServletRequest req = ((ServletServerHttpRequest) request).getServletRequest();
    HttpServletResponse resp = ((ServletServerHttpResponse) response).getServletResponse();
    DefaultOAuth2AccessToken token = (DefaultOAuth2AccessToken) body;
    String refreshToken = body.getRefreshToken().getValue();
    addRefreshTokenInCookie(refreshToken, req, resp);
    deleteRefreshTokenFromBody(token);
    return body;
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) ServletServerHttpRequest(org.springframework.http.server.ServletServerHttpRequest) HttpServletResponse(javax.servlet.http.HttpServletResponse) ServletServerHttpResponse(org.springframework.http.server.ServletServerHttpResponse) DefaultOAuth2AccessToken(org.springframework.security.oauth2.common.DefaultOAuth2AccessToken)

Example 85 with ServletServerHttpRequest

use of org.springframework.http.server.ServletServerHttpRequest in project service-authorization by reportportal.

the class OAuthSuccessHandler method handle.

@Override
protected void handle(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
    OAuth2Authentication oauth = (OAuth2Authentication) authentication;
    OAuth2AccessToken accessToken = tokenServicesFacade.get().createToken(ReportPortalClient.ui, oauth.getName(), oauth.getUserAuthentication(), oauth.getOAuth2Request().getExtensions());
    MultiValueMap<String, String> query = new LinkedMultiValueMap<>();
    query.add("token", accessToken.getValue());
    query.add("token_type", accessToken.getTokenType());
    URI rqUrl = UriComponentsBuilder.fromHttpRequest(new ServletServerHttpRequest(request)).replacePath("/ui/authSuccess.html").replaceQueryParams(query).build().toUri();
    eventPublisher.publishEvent(new UiUserSignedInEvent(authentication));
    getRedirectStrategy().sendRedirect(request, response, rqUrl.toString());
}
Also used : ServletServerHttpRequest(org.springframework.http.server.ServletServerHttpRequest) UiUserSignedInEvent(com.epam.reportportal.auth.event.UiUserSignedInEvent) LinkedMultiValueMap(org.springframework.util.LinkedMultiValueMap) OAuth2AccessToken(org.springframework.security.oauth2.common.OAuth2AccessToken) OAuth2Authentication(org.springframework.security.oauth2.provider.OAuth2Authentication) URI(java.net.URI)

Aggregations

ServletServerHttpRequest (org.springframework.http.server.ServletServerHttpRequest)111 Test (org.junit.jupiter.api.Test)39 MockHttpServletRequest (org.springframework.web.testfixture.servlet.MockHttpServletRequest)39 HttpRequest (org.springframework.http.HttpRequest)31 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)28 ServletServerHttpResponse (org.springframework.http.server.ServletServerHttpResponse)22 MockHttpServletRequest (org.springframework.mock.web.MockHttpServletRequest)17 HttpServletRequest (javax.servlet.http.HttpServletRequest)14 ServerHttpRequest (org.springframework.http.server.ServerHttpRequest)13 HttpServletRequest (jakarta.servlet.http.HttpServletRequest)10 IOException (java.io.IOException)8 ServerHttpResponse (org.springframework.http.server.ServerHttpResponse)8 BeforeEach (org.junit.jupiter.api.BeforeEach)7 HttpHeaders (org.springframework.http.HttpHeaders)7 MediaType (org.springframework.http.MediaType)7 MockHttpServletResponse (org.springframework.mock.web.MockHttpServletResponse)7 HttpInputMessage (org.springframework.http.HttpInputMessage)6 HttpServletResponse (javax.servlet.http.HttpServletResponse)5 URI (java.net.URI)4 ResponseEntity (org.springframework.http.ResponseEntity)4