/* * Copyright (c) 2016 Dell EMC Software * All Rights Reserved */ package com.iwave.ext.windows.winrm; import java.util.Locale; import org.apache.http.Header; import org.apache.http.HttpRequest; import org.apache.http.auth.AuthenticationException; import org.apache.http.auth.Credentials; import org.apache.http.client.config.AuthSchemes; import org.apache.http.impl.auth.NTLMScheme; import org.apache.http.message.BasicHeader; public class CustomSPNegoScheme extends NTLMScheme { @Override public String getSchemeName() { return AuthSchemes.SPNEGO; } @Override public Header authenticate(Credentials credentials, HttpRequest request) throws AuthenticationException { Header header = super.authenticate(credentials, request); // org.apache.http.impl.auth.NTLMScheme.authenticate(Credentials, HttpRequest) doesn't use // com.watch4net.apg.NtlmSPNEGOScheme.getSchemeName(), so we have to do it ourselves... return new BasicHeader(header.getName(), header.getValue().replace(AuthSchemes.NTLM, getSchemeName().toUpperCase(Locale.ENGLISH))); } }