org.springframework.http.HttpHeaders#setBasicAuth ( )源码实例Demo

下面列出了org.springframework.http.HttpHeaders#setBasicAuth ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

@Override
public ClientHttpResponse intercept(
		HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException {

	HttpHeaders headers = request.getHeaders();
	if (!headers.containsKey(HttpHeaders.AUTHORIZATION)) {
		headers.setBasicAuth(this.username, this.password, this.charset);
	}
	return execution.execute(request, body);
}
 
源代码2 项目: syhthems-platform   文件: WebApiUserController.java
@PostMapping(value = "/oauth/token")
public String tokenEndpoint(HttpServletRequest request) {
    MultiValueMap<String, String> body = new LinkedMultiValueMap<>();
    Map<String, String[]> requestMap = request.getParameterMap();
    requestMap.forEach((s, strings) -> {
        body.add(s, strings[0]);
    });
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
    headers.setBasicAuth(this.oAuthProperties.getClientId(), this.oAuthProperties.getClientSecret(), Charset.forName("UTF-8"));
    HttpEntity<MultiValueMap> httpEntity = new HttpEntity<>(body, headers);
    return this.restTemplate.postForObject(this.syhthemsProperties.getSecurity().getSsoServer() + "/oauth/token",
            httpEntity,
            String.class);
}
 
@Override
public ClientHttpResponse intercept(
		HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException {

	HttpHeaders headers = request.getHeaders();
	if (!headers.containsKey(HttpHeaders.AUTHORIZATION)) {
		headers.setBasicAuth(this.username, this.password, this.charset);
	}
	return execution.execute(request, body);
}
 
源代码4 项目: spring-cloud-dataflow   文件: AwsEcrAuthorizer.java
@Override
public HttpHeaders getAuthorizationHeaders(ContainerImage containerImage,
		RegistryConfiguration registryConfiguration) {

	Assert.isTrue(registryConfiguration.getAuthorizationType() == this.getType(),
			"Incorrect type: " + registryConfiguration.getAuthorizationType());

	AmazonECRClientBuilder ecrBuilder = AmazonECRClientBuilder.standard();
	if (registryConfiguration.getExtra().containsKey(AWS_REGION)) {
		ecrBuilder.withRegion(registryConfiguration.getExtra().get(AWS_REGION));
	}
	if (StringUtils.hasText(registryConfiguration.getUser()) && StringUtils.hasText(registryConfiguration.getSecret())) {
		// Expects that the 'user' == 'Access Key ID' and 'secret' == 'Secret Access Key'
		ecrBuilder.withCredentials(new AWSStaticCredentialsProvider(
				new BasicAWSCredentials(registryConfiguration.getUser(), registryConfiguration.getSecret())));
	}

	AmazonECR client = ecrBuilder.build();

	GetAuthorizationTokenRequest request = new GetAuthorizationTokenRequest();
	if (registryConfiguration.getExtra().containsKey(REGISTRY_IDS)) {
		request.withRegistryIds(registryConfiguration.getExtra().get(REGISTRY_IDS).split(","));
	}
	GetAuthorizationTokenResult response = client.getAuthorizationToken(request);
	String token = response.getAuthorizationData().iterator().next().getAuthorizationToken();
	final HttpHeaders headers = new HttpHeaders();
	headers.setBasicAuth(token);
	return headers;
}
 
@Override
public HttpHeaders getAuthorizationHeaders(ContainerImage containerImage,
		RegistryConfiguration registryConfiguration) {

	Assert.isTrue(registryConfiguration.getAuthorizationType() == this.getType(),
			"Incorrect type: " + registryConfiguration.getAuthorizationType());

	final HttpHeaders headers = new HttpHeaders();
	headers.setBasicAuth(registryConfiguration.getUser(), registryConfiguration.getSecret());
	return headers;
}
 
@Override
public HttpHeaders getAuthorizationHeaders(ContainerImage containerImage, RegistryConfiguration registryConfiguration) {

	Assert.isTrue(registryConfiguration.getAuthorizationType() == this.getType(),
			"Incorrect authorization type: " + registryConfiguration.getAuthorizationType());

	Assert.notNull(containerImage, "Valid containerImageName is required!");
	String imageRepository = containerImage.getRepository();
	Assert.hasText(imageRepository, "Valid repository name (e.g. namespace/repository-name without the tag)" +
			" is required for the authorization");

	final HttpHeaders requestHttpHeaders = new HttpHeaders();
	if (StringUtils.hasText(registryConfiguration.getUser()) && StringUtils.hasText(registryConfiguration.getSecret())) {
		// Use basic authentication to obtain the authorization token.
		// Usually the public docker hub authorization service doesn't require authentication for image pull requests.
		requestHttpHeaders.setBasicAuth(registryConfiguration.getUser(), registryConfiguration.getSecret());
	}

	String registryAuthUri = registryConfiguration.getExtra().containsKey(DOCKER_REGISTRY_AUTH_URI_KEY) ?
			registryConfiguration.getExtra().get(DOCKER_REGISTRY_AUTH_URI_KEY) : DEFAULT_DOCKER_REGISTRY_AUTH_URI;
	UriComponents uriComponents = UriComponentsBuilder.newInstance()
			.fromHttpUrl(registryAuthUri).build().expand(imageRepository);

	ResponseEntity<Map> authorization = this.getRestTemplate(registryConfiguration)
			.exchange(uriComponents.toUri(), HttpMethod.GET, new HttpEntity<>(requestHttpHeaders), Map.class);

	Map<String, String> authorizationBody = (Map<String, String>) authorization.getBody();

	final HttpHeaders responseHttpHeaders = new HttpHeaders();
	responseHttpHeaders.setBearerAuth(authorizationBody.get(TOKEN_KEY));
	return responseHttpHeaders;
}
 
/**
 * @param registryHost
 * @param username
 * @param password
 * @return Returns Token Endpoint Url if dockeroauth2 authorization-type or null for basic auth.
 */
public String getDockerTokenServiceUri(String registryHost, String username, String password) {

	final HttpHeaders httpHeaders = new HttpHeaders();
	if (StringUtils.hasText(username) && StringUtils.hasText(password)) {
		httpHeaders.setBasicAuth(username, password);
	}

	try {
		this.restTemplate.exchange(
				UriComponentsBuilder.newInstance().scheme("https").host(registryHost).path("v2/_catalog").build().toUri(),
				HttpMethod.GET, new HttpEntity<>(httpHeaders), Map.class);
		return null;
	}
	catch (HttpClientErrorException httpError) {

		if (httpError.getRawStatusCode() != 401) {
			return null;
		}
		if (!httpError.getResponseHeaders().containsKey("Www-Authenticate")) {
			return null; // Not Docker OAuth2
		}

		List<String> wwwAuthenticate = httpError.getResponseHeaders().get("Www-Authenticate");
		logger.info("" + wwwAuthenticate);

		Map<String, String> wwwAuthenticateAttributes = Stream.of(wwwAuthenticate.get(0).split(","))
				.map(s -> s.split("="))
				.collect(Collectors.toMap(b -> b[0], b -> b[1]));

		String tokenServiceUri = String.format("%s?service=%s&scope=repository:{repository}:pull",
				wwwAuthenticateAttributes.get("Bearer realm"), wwwAuthenticateAttributes.get("service"));

		// clear redundant quotes.
		tokenServiceUri = tokenServiceUri.replaceAll("\"", "");

		logger.info("tokenServiceUri: " + tokenServiceUri);

		return tokenServiceUri;
	}
	catch (Exception e) {
		return null;
	}
}