public class SpnegoHttpClient {
public static void main(String[] args) throws MalformedURLException {
- String principal = System.getProperty("javax.security.auth.login.name");
- if (args.length == 0 || principal == null) {
+// String principal = System.getProperty("javax.security.auth.login.name");
+ if (args.length == 0 ) {
System.err.println("usage: java -Djavax.security.auth.login.name=<principal@REALM> "
+ SpnegoHttpClient.class.getName() + " <url>");
System.exit(1);
String url = args[0];
URL u = new URL(url);
String server = u.getHost();
-
- URL jaasUrl = SpnegoAuthScheme.class.getResource("jaas.cfg");
+
+ URL jaasUrl = SpnegoHttpClient.class.getResource("jaas.cfg");
System.setProperty("java.security.auth.login.config", jaasUrl.toExternalForm());
try {
LoginContext lc = new LoginContext("SINGLE_USER");
}
private static HttpClient openHttpClient(Subject subject) {
- // disable https check
- // jdk.internal.httpclient.disableHostnameVerification=true
- HttpClient client = HttpClient.newBuilder().sslContext(insecureContext())
-// .authenticator(new Authenticator() {
-// public PasswordAuthentication getPasswordAuthentication() {
-// return null;
-// }
-//
-// })
- .version(HttpClient.Version.HTTP_1_1).build();
+ HttpClient client = HttpClient.newBuilder() //
+// .sslContext(insecureContext()) //
+ .version(HttpClient.Version.HTTP_1_1) //
+ .build();
return client;
-
- // return client;
-// AuthPolicy.registerAuthScheme(SpnegoAuthScheme.NAME, SpnegoAuthScheme.class);
-// HttpParams params = DefaultHttpParams.getDefaultParams();
-// ArrayList<String> schemes = new ArrayList<>();
-// schemes.add(SpnegoAuthScheme.NAME);
-// params.setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY, schemes);
-// params.setParameter(CredentialsProvider.PROVIDER, new HttpCredentialProvider());
-// HttpClient httpClient = new HttpClient();
-// httpClient.executeMethod(new GetMethod(("https://" + server + "/ipa/session/json")));
-// return httpClient;
-
}
- private static SSLContext insecureContext() {
+ static SSLContext insecureContext() {
TrustManager[] noopTrustManager = new TrustManager[] { new X509TrustManager() {
public void checkClientTrusted(X509Certificate[] xcs, String string) {
}