Skip to content

Commit a4db9e1

Browse files
committed
Initial
0 parents  commit a4db9e1

File tree

12 files changed

+215
-0
lines changed

12 files changed

+215
-0
lines changed

.idea/codeStyles/Project.xml

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/codeStyles/codeStyleConfig.xml

+5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/description.html

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/encodings.xml

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

+9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/project-template.xml

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/workspace.xml

+96
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
3.69 KB
Binary file not shown.

spnegoClient.iml

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module type="JAVA_MODULE" version="4">
3+
<component name="NewModuleRootManager" inherit-compiler-output="true">
4+
<exclude-output />
5+
<content url="file://$MODULE_DIR$">
6+
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
7+
</content>
8+
<orderEntry type="inheritedJdk" />
9+
<orderEntry type="sourceFolder" forTests="false" />
10+
</component>
11+
</module>
12+

src/codes/rb/Main.java

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package codes.rb;
2+
3+
import org.ietf.jgss.*;
4+
5+
import java.io.IOException;
6+
import java.net.HttpURLConnection;
7+
import java.net.URL;
8+
import java.util.Arrays;
9+
import java.util.Base64;
10+
//import java.util.Base64;
11+
12+
public class Main {
13+
14+
public static void main(String[] args) {
15+
try {
16+
System.setProperty("javax.security.auth.useSubjectCredsOnly", "false");
17+
Oid krb5MechOid = new Oid("1.2.840.113554.1.2.2");
18+
Oid spnegoMechOid = new Oid("1.3.6.1.5.5.2");
19+
20+
GSSManager manager = GSSManager.getInstance();
21+
GSSName gssUserName = manager.createName("[email protected]", GSSName.NT_USER_NAME, krb5MechOid);
22+
org.ietf.jgss.GSSCredential clientGssCreds = manager.createCredential(gssUserName.canonicalize(krb5MechOid),
23+
GSSCredential.INDEFINITE_LIFETIME,
24+
krb5MechOid,
25+
GSSCredential.INITIATE_ONLY);
26+
clientGssCreds.add(gssUserName,
27+
GSSCredential.INDEFINITE_LIFETIME,
28+
GSSCredential.INDEFINITE_LIFETIME,
29+
spnegoMechOid,
30+
GSSCredential.INITIATE_ONLY);
31+
System.out.println(clientGssCreds.toString());
32+
33+
34+
GSSName gssServerName = manager.createName("http/[email protected]", GSSName.NT_USER_NAME);
35+
GSSContext clientContext = manager.createContext(gssServerName.canonicalize(spnegoMechOid),
36+
spnegoMechOid,
37+
clientGssCreds,
38+
GSSContext.DEFAULT_LIFETIME);
39+
// optional enable GSS credential delegation
40+
clientContext.requestCredDeleg(true);
41+
byte[] spnegoToken = new byte[0];
42+
// create a SPNEGO token for the target server
43+
spnegoToken = clientContext.initSecContext(spnegoToken, 0, spnegoToken.length);
44+
URL url = new URL("http://localhost:8080/");
45+
HttpURLConnection con = (HttpURLConnection) url.openConnection();
46+
try {
47+
// insert SPNEGO token in the HTTP header
48+
byte[] tkn = Base64.getEncoder().encode(spnegoToken);
49+
System.out.printf(new String(tkn));
50+
con.setRequestProperty("Authorization", "Negotiate " + new String(tkn));
51+
con.getResponseCode();
52+
} catch (IOException e) {
53+
System.out.printf(e.getMessage());
54+
} catch (Exception ex) {
55+
System.out.printf(ex.getMessage());
56+
}
57+
58+
} catch (Exception e) {
59+
System.out.printf(e.getMessage());
60+
}
61+
}
62+
}

0 commit comments

Comments
 (0)