當前位置: 首頁>>代碼示例>>Java>>正文


Java ContainerRequestContext.getHeaderString方法代碼示例

本文整理匯總了Java中javax.ws.rs.container.ContainerRequestContext.getHeaderString方法的典型用法代碼示例。如果您正苦於以下問題:Java ContainerRequestContext.getHeaderString方法的具體用法?Java ContainerRequestContext.getHeaderString怎麽用?Java ContainerRequestContext.getHeaderString使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在javax.ws.rs.container.ContainerRequestContext的用法示例。


在下文中一共展示了ContainerRequestContext.getHeaderString方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: filter

import javax.ws.rs.container.ContainerRequestContext; //導入方法依賴的package包/類
@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
        throws IOException {
    String origin = requestContext.getHeaderString(ORIGIN);
    if (origin == null || requestContext.getMethod().equalsIgnoreCase("OPTIONS")
            || requestContext.getProperty("cors.failure") != null) {
        // don't do anything if origin is null, its an OPTIONS request, or cors.failure is set
        return;
    }
    responseContext.getHeaders().putSingle(ACCESS_CONTROL_ALLOW_ORIGIN, origin);
    if (allowCredentials)
        responseContext.getHeaders().putSingle(ACCESS_CONTROL_ALLOW_CREDENTIALS, "true");

    if (exposedHeaders != null) {
        responseContext.getHeaders().putSingle(ACCESS_CONTROL_EXPOSE_HEADERS, exposedHeaders);
    }
}
 
開發者ID:fabric8-launcher,項目名稱:launcher-backend,代碼行數:18,代碼來源:CorsFilter.java

示例2: filter

import javax.ws.rs.container.ContainerRequestContext; //導入方法依賴的package包/類
public void filter(ContainerRequestContext requestContext) throws IOException {
    HttpServletRequest request = ResteasyProviderFactory.getContextData(HttpServletRequest.class);
    RpcContext.getContext().setRequest(request);

    // this only works for servlet containers
    if (request != null && RpcContext.getContext().getRemoteAddress() == null) {
        RpcContext.getContext().setRemoteAddress(request.getRemoteAddr(), request.getRemotePort());
    }

    RpcContext.getContext().setResponse(ResteasyProviderFactory.getContextData(HttpServletResponse.class));

    String headers = requestContext.getHeaderString(DUBBO_ATTACHMENT_HEADER);
    if (headers != null) {
        for (String header : headers.split(",")) {
            int index = header.indexOf("=");
            if (index > 0) {
                String key = header.substring(0, index);
                String value = header.substring(index + 1);
                if (!StringUtils.isEmpty(key)) {
                    RpcContext.getContext().setAttachment(key.trim(), value.trim());
                }
            }
        }
    }
}
 
開發者ID:yunhaibin,項目名稱:dubbox-hystrix,代碼行數:26,代碼來源:RpcContextFilter.java

示例3: filter

import javax.ws.rs.container.ContainerRequestContext; //導入方法依賴的package包/類
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {

    String authorizationHeader = requestContext.getHeaderString(HttpHeaders.AUTHORIZATION);
    log.info("authorizationHeader : " + authorizationHeader);

    // Check if the HTTP Authorization header is present and formatted correctly
    if (authorizationHeader == null || !authorizationHeader.startsWith("token ")) {
        log.error("invalid authorizationHeader : " + authorizationHeader);
        throw new NotAuthorizedException("Authorization header must be provided");
    }

    // Extract the token from the HTTP Authorization header
    String token = authorizationHeader.substring("Bearer".length()).trim();

    try {
        // Validate the token
        Key key = keyGenerator.generateKey();
        Jwts.parser().setSigningKey(key).parseClaimsJws(token);
        log.info("valid token : " + token);
    } catch (Exception ex) {
        log.error("invalid token : " + token);
        log.error("Exception occurred while validate the token : " + ex);
        requestContext.abortWith(Response.status(Response.Status.UNAUTHORIZED).build());
    }
}
 
開發者ID:sundarcse1216,項目名稱:rest-api,代碼行數:27,代碼來源:JWTTokenNeededFilter.java

示例4: filter

import javax.ws.rs.container.ContainerRequestContext; //導入方法依賴的package包/類
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
    String usertokenId = requestContext.getHeaderString(Constants.USERTOKENID_HEADER);

    if (Strings.isNullOrEmpty(usertokenId)) {
        return;
    }

    UserToken userToken;
    try {
        userToken = tokenServiceClient.getUserTokenById(usertokenId);
    } catch (TokenServiceClientException e) {
        throw new NotAuthorizedException("UsertokenId: '" + usertokenId + "' not valid", e);
    }

    UibBrukerPrincipal brukerPrincipal = UibBrukerPrincipal.ofUserToken(userToken);
    ImmutableSet<String> tilganger = extractRolesAllowed(userToken, brukerPrincipal.uibBruker);

    requestContext.setSecurityContext(new AutentiseringsContext(brukerPrincipal, tilganger));

    if (authenticatedHandler != null) {
        authenticatedHandler.handle(requestContext);
    }
}
 
開發者ID:code-obos,項目名稱:servicebuilder,代碼行數:25,代碼來源:UserTokenFilter.java

示例5: allowCors

import javax.ws.rs.container.ContainerRequestContext; //導入方法依賴的package包/類
/**
 * Adds the HTTP head "Access-Control-Allow-Origin: *" to enable
 * all cross domain requests.
 */
private static void allowCors(final ContainerRequestContext request, final ContainerResponseContext response)  {
    final String origin = request.getHeaderString("Origin");
    if (origin == null) {
        return;
    }

    response.getHeaders().add("Access-Control-Allow-Origin", "*");
    response.getHeaders().add("Access-Control-Allow-Credentials", "true");
    response.getHeaders().add("Access-Control-Allow-Methods", "GET, HEAD, OPTIONS, PATCH, POST, PUT, DELETE");

    final String headers = request.getHeaderString("Access-Control-Request-Headers");
    if (headers != null) {
        response.getHeaders().add("Access-Control-Allow-Headers", UrlUtils.urlDecode(headers));
    }
}
 
開發者ID:minijax,項目名稱:minijax,代碼行數:20,代碼來源:MinijaxCorsFilter.java

示例6: checkPermissions

import javax.ws.rs.container.ContainerRequestContext; //導入方法依賴的package包/類
private void checkPermissions(ContainerRequestContext requestContext, List<Role> allowedRoles) throws Exception {
    // Check if the user contains one of the allowed roles
    // Throw an Exception if the user has not permission to execute the method
    if(allowedRoles.isEmpty())
        return;
    String authorizationHeader
            = requestContext.getHeaderString(HttpHeaders.AUTHORIZATION);
    String token = authorizationHeader
            .substring(AUTHENTICATION_SCHEME.length()).trim();
    List<String> roles = new ArrayList();
    if (!JWT.decode(token).getClaim("gty").isNull() && JWT.decode(token).getClaim("gty").asString().equals("client-credentials")) {
        roles.add("service");
    } else {
        roles = JWT.decode(token).getClaim("roles").asList(String.class);
    }
    for(String role: roles) {
        if(allowedRoles.contains(Role.valueOf(role)))
            return;
    }
    throw new WebApplicationException(
                Response.status(Response.Status.FORBIDDEN).build());
}
 
開發者ID:ISIS2503,項目名稱:ThermalComfortBack,代碼行數:23,代碼來源:AuthorizationFilter.java

示例7: filter

import javax.ws.rs.container.ContainerRequestContext; //導入方法依賴的package包/類
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
    if (alwaysAccept(requestContext)) {
        return;
    }

    String apptokenid = requestContext.getHeaderString(APPTOKENID_HEADER);
    if (apptokenid == null || apptokenid.trim().isEmpty()) {
        handleErrorNoAppToken(requestContext);
    } else {
        ApplicationToken token = tokenServiceClient.getApptokenById(apptokenid);
        TokenCheckResult result = applicationTokenAccessValidator.checkApplicationToken(token);
        if (result != TokenCheckResult.AUTHORIZED) {
            handleErrorUnauthorized(requestContext, apptokenid, result);
        } else if (! isAllowedToCallEndpoint(token)) {
            handleErrorUnauthorizedForEndpoint(requestContext, apptokenid, result);
        }
    }
}
 
開發者ID:code-obos,項目名稱:servicebuilder,代碼行數:20,代碼來源:ApplicationTokenFilter.java

示例8: preflight

import javax.ws.rs.container.ContainerRequestContext; //導入方法依賴的package包/類
protected void preflight(String origin, ContainerRequestContext requestContext) throws IOException {
    checkOrigin(requestContext, origin);

    Response.ResponseBuilder builder = Response.ok();
    builder.header(ACCESS_CONTROL_ALLOW_ORIGIN, origin);
    if (allowCredentials)
        builder.header(ACCESS_CONTROL_ALLOW_CREDENTIALS, "true");
    String requestMethods = requestContext.getHeaderString(ACCESS_CONTROL_REQUEST_METHOD);
    if (requestMethods != null) {
        if (allowedMethods != null) {
            requestMethods = this.allowedMethods;
        }
        builder.header(ACCESS_CONTROL_ALLOW_METHODS, requestMethods);
    }
    String allowHeaders = requestContext.getHeaderString(ACCESS_CONTROL_REQUEST_HEADERS);
    if (allowHeaders != null) {
        if (allowedHeaders != null) {
            allowHeaders = this.allowedHeaders;
        }
        builder.header(ACCESS_CONTROL_ALLOW_HEADERS, allowHeaders);
    }
    if (corsMaxAge > -1) {
        builder.header(ACCESS_CONTROL_MAX_AGE, corsMaxAge);
    }
    requestContext.abortWith(builder.build());

}
 
開發者ID:fabric8-launcher,項目名稱:launcher-backend,代碼行數:28,代碼來源:CorsFilter.java

示例9: filter

import javax.ws.rs.container.ContainerRequestContext; //導入方法依賴的package包/類
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {

  if (requestContext.getUriInfo().getRequestUri().getPath().endsWith("swagger.json")) {
    return;
  }

  String auth = requestContext.getHeaderString(HttpHeaders.AUTHORIZATION);

  if (auth == null || auth.isEmpty() || !auth.startsWith("Basic")) {
    throw notAuthorizedException;
  }

  auth = auth.replace(AUTHORIZATION_TYPE, "");

  String[] decodedUsernameAndPassword = decode(auth);

  if (decodedUsernameAndPassword.length < 2) {
    throw notAuthorizedException;
  }

  String username = decodedUsernameAndPassword[0];
  String password = decodedUsernameAndPassword[1];

  if (!checkUsernameAndPassword(username, password)) {
    throw notAuthorizedException;
  }
}
 
開發者ID:durimkryeziu,項目名稱:jersey-2.x-webapp-for-servlet-container,代碼行數:29,代碼來源:AuthFilter.java

示例10: filter

import javax.ws.rs.container.ContainerRequestContext; //導入方法依賴的package包/類
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
  String correlationId = requestContext.getHeaderString(headerName);
  if (correlationId == null) {
    correlationId = UUID.randomUUID().toString();
  }
  requestContext.setProperty(mdcName, correlationId);
  MDC.put(mdcName, correlationId);
}
 
開發者ID:cerner,項目名稱:beadledom,代碼行數:10,代碼來源:CorrelationIdFilter.java

示例11: filter

import javax.ws.rs.container.ContainerRequestContext; //導入方法依賴的package包/類
@Override
public void filter(ContainerRequestContext request, ContainerResponseContext containerResponseContext)
		throws IOException {
	String origin = request.getHeaderString(ORIGIN_HEADER_FIELD);

	if (origin != null) {
		if (originFilter.isOriginAllowed(origin)) {
			containerResponseContext.getHeaders().add(ACCESS_CONTROL_ALLOW_ORIGIN_HEADER_FIELD, origin);
		}
	}
}
 
開發者ID:Mercateo,項目名稱:rest-jersey-utils,代碼行數:12,代碼來源:AccessControlAllowOriginResponseFilter.java

示例12: filter

import javax.ws.rs.container.ContainerRequestContext; //導入方法依賴的package包/類
@Override
public void filter(ContainerRequestContext request) throws IOException {
	String origin = request.getHeaderString(ORIGIN_HEADER_FIELD);

	if (origin != null) {
		if (!originFilter.isOriginAllowed(origin)) {
			throw new BadRequestException("The origin ist not set accordingly");
		}
	}

}
 
開發者ID:Mercateo,項目名稱:rest-jersey-utils,代碼行數:12,代碼來源:AccessControlAllowOriginRequestFilter.java

示例13: authenticate

import javax.ws.rs.container.ContainerRequestContext; //導入方法依賴的package包/類
/**
 * Checks if the request contains the username password combination from the given map of username and password.
 *
 */
public void authenticate(ContainerRequestContext request, Map<String, String> usernamePasswordMap) {

    String authHeader = request.getHeaderString("Authorization");
    WebApplicationException wae = new WebApplicationException(Response.status(Response.Status.UNAUTHORIZED)
            .header("WWW-Authenticate", "Basic").entity("not authorized").build());

    String requestUri = request.getUriInfo()!=null?request.getUriInfo().getBaseUri().toString():"";
    if (authHeader == null) {
        log.warn("Authentication of " + requestUri + " failed as auth header was null");
        throw wae;
    } else {
        String[] tokens = authHeader.trim().split("\\s+");

        if (tokens.length != 2 || !tokens[0].equalsIgnoreCase("BASIC")) {
            log.warn("Authentication of " + requestUri + " failed as auth header does not have the right tokens");
            throw wae;
        }

        // valid auth header format, now need to authenticate the right user
        byte[] decodedBytes = Base64.getDecoder().decode(tokens[1]);
        String credString = new String(decodedBytes);

        String[] credentials = credString.split(":");

        if (credentials.length != 2) {
            log.warn("Authentication of " + this.logging.removeCRLF(requestUri) + " failed - invalid credentials format");
            throw wae;
        }

        String loginName = credentials[0];
        String password = credentials[1];

        if (!validateUserAndPassword(loginName, password, usernamePasswordMap)) {
            log.warn("Authentication of " + this.logging.removeCRLF(requestUri) + " failed - user password mismatch");
            throw wae;
        }
    }
}
 
開發者ID:opensecuritycontroller,項目名稱:osc-core,代碼行數:43,代碼來源:AuthUtil.java

示例14: filter

import javax.ws.rs.container.ContainerRequestContext; //導入方法依賴的package包/類
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
    if (allwaysAccept(requestContext)) {
        return;
    }
    String appNameHeader = requestContext.getHeaderString(Constants.CLIENT_APPNAME_HEADER);
    if (Strings.isNullOrEmpty(appNameHeader)) {
        throw new BadRequestException("Header specifying client name required: " + Constants.CLIENT_APPNAME_HEADER);
    }
}
 
開發者ID:code-obos,項目名稱:servicebuilder,代碼行數:11,代碼來源:AppNameFilter.java

示例15: filter

import javax.ws.rs.container.ContainerRequestContext; //導入方法依賴的package包/類
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
	String userIdStr = requestContext.getHeaderString("userId");
	String securityToken = requestContext.getHeaderString("securityToken");
	if (userIdStr == null || securityToken == null || userIdStr.isEmpty() || securityToken.isEmpty()) {
		throw new NotAuthorizedException("Authorization header must be provided");
	}
	Long userId = Long.valueOf(userIdStr);
	try {
		validateToken(userId, securityToken);
	} catch (Exception e) {
		requestContext.abortWith(Response.status(Response.Status.UNAUTHORIZED).build());
	}
}
 
開發者ID:SoapboxRaceWorld,項目名稱:soapbox-race-core,代碼行數:15,代碼來源:AuthenticationFilter.java


注:本文中的javax.ws.rs.container.ContainerRequestContext.getHeaderString方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。