|
@@ -43,10 +43,8 @@ import org.junit.Before;
|
|
import org.junit.BeforeClass;
|
|
import org.junit.BeforeClass;
|
|
import org.junit.Test;
|
|
import org.junit.Test;
|
|
|
|
|
|
-import javax.security.auth.Subject;
|
|
|
|
import javax.security.auth.kerberos.KerberosPrincipal;
|
|
import javax.security.auth.kerberos.KerberosPrincipal;
|
|
import javax.security.auth.login.AppConfigurationEntry;
|
|
import javax.security.auth.login.AppConfigurationEntry;
|
|
-import javax.security.auth.login.LoginContext;
|
|
|
|
|
|
|
|
import java.io.File;
|
|
import java.io.File;
|
|
import java.io.FileWriter;
|
|
import java.io.FileWriter;
|
|
@@ -60,16 +58,13 @@ import java.net.ServerSocket;
|
|
import java.net.SocketTimeoutException;
|
|
import java.net.SocketTimeoutException;
|
|
import java.net.URI;
|
|
import java.net.URI;
|
|
import java.net.URL;
|
|
import java.net.URL;
|
|
-import java.security.Principal;
|
|
|
|
import java.security.PrivilegedExceptionAction;
|
|
import java.security.PrivilegedExceptionAction;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
-import java.util.HashSet;
|
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
import java.util.Properties;
|
|
import java.util.Properties;
|
|
-import java.util.Set;
|
|
|
|
import java.util.UUID;
|
|
import java.util.UUID;
|
|
import java.util.concurrent.Callable;
|
|
import java.util.concurrent.Callable;
|
|
|
|
|
|
@@ -245,22 +240,12 @@ public class TestKMS {
|
|
|
|
|
|
private <T> T doAs(String user, final PrivilegedExceptionAction<T> action)
|
|
private <T> T doAs(String user, final PrivilegedExceptionAction<T> action)
|
|
throws Exception {
|
|
throws Exception {
|
|
- Set<Principal> principals = new HashSet<Principal>();
|
|
|
|
- principals.add(new KerberosPrincipal(user));
|
|
|
|
-
|
|
|
|
- //client login
|
|
|
|
- Subject subject = new Subject(false, principals,
|
|
|
|
- new HashSet<Object>(), new HashSet<Object>());
|
|
|
|
- LoginContext loginContext = new LoginContext("", subject, null,
|
|
|
|
- KerberosConfiguration.createClientConfig(user, keytab));
|
|
|
|
|
|
+ UserGroupInformation.loginUserFromKeytab(user, keytab.getAbsolutePath());
|
|
|
|
+ UserGroupInformation ugi = UserGroupInformation.getLoginUser();
|
|
try {
|
|
try {
|
|
- loginContext.login();
|
|
|
|
- subject = loginContext.getSubject();
|
|
|
|
- UserGroupInformation ugi =
|
|
|
|
- UserGroupInformation.getUGIFromSubject(subject);
|
|
|
|
return ugi.doAs(action);
|
|
return ugi.doAs(action);
|
|
} finally {
|
|
} finally {
|
|
- loginContext.logout();
|
|
|
|
|
|
+ ugi.logoutUserFromKeytab();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|