You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by sm...@apache.org on 2006/12/13 06:33:29 UTC
svn commit: r486503 -
/harmony/enhanced/classlib/trunk/modules/auth/src/main/java/common/org/apache/harmony/auth/module/Krb5LoginModule.java
Author: smishura
Date: Tue Dec 12 21:33:28 2006
New Revision: 486503
URL: http://svn.apache.org/viewvc?view=rev&rev=486503
Log:
Krb5LoginModule: implement abort(), commit() and logout() methods
Modified:
harmony/enhanced/classlib/trunk/modules/auth/src/main/java/common/org/apache/harmony/auth/module/Krb5LoginModule.java
Modified: harmony/enhanced/classlib/trunk/modules/auth/src/main/java/common/org/apache/harmony/auth/module/Krb5LoginModule.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/auth/src/main/java/common/org/apache/harmony/auth/module/Krb5LoginModule.java?view=diff&rev=486503&r1=486502&r2=486503
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/auth/src/main/java/common/org/apache/harmony/auth/module/Krb5LoginModule.java (original)
+++ harmony/enhanced/classlib/trunk/modules/auth/src/main/java/common/org/apache/harmony/auth/module/Krb5LoginModule.java Tue Dec 12 21:33:28 2006
@@ -20,6 +20,7 @@
import java.net.InetAddress;
import java.util.Map;
+import javax.security.auth.DestroyFailedException;
import javax.security.auth.Subject;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
@@ -51,14 +52,28 @@
private CallbackHandler callbackHandler;
+ private KerberosPrincipal client;
+
+ private KerberosTicket krbTicket;
+
public boolean abort() throws LoginException {
- // TODO
- return false;
+
+ try {
+ krbTicket.destroy();
+ } catch (DestroyFailedException e) {
+ throw new LoginException();
+ }
+
+ client = null;
+ krbTicket = null;
+
+ return true;
}
public boolean commit() throws LoginException {
- // TODO
- return false;
+ subject.getPrincipals().add(client);
+ subject.getPrivateCredentials().add(krbTicket);
+ return true;
}
public void initialize(Subject subject, CallbackHandler callbackHandler,
@@ -124,9 +139,8 @@
buf.append('@');
buf.append(reply.getCrealm());
- KerberosPrincipal client = new KerberosPrincipal(buf.toString(),
+ client = new KerberosPrincipal(buf.toString(),
reply.getCname().getType());
- subject.getPrincipals().add(client);
// add ticket to private credentials
byte[] ticket = reply.getTicket().getEncoded();
@@ -149,15 +163,13 @@
boolean[] flags = reply.getFlags().toBooleanArray();
- KerberosTicket krbTicket = new KerberosTicket(ticket, client,
+ krbTicket = new KerberosTicket(ticket, client,
server, sessionKey, keyType, flags, reply.getAuthtime(),
reply.getStarttime(), reply.getEndtime(), reply
.getRenewtill(),
//TODO InetAddress[] clientAddresses
null);
- subject.getPrivateCredentials().add(krbTicket);
-
return true; //FIXME
} catch (Exception e) {
LoginException ex = new LoginException();
@@ -167,7 +179,19 @@
}
public boolean logout() throws LoginException {
- // TODO
- return false;
+
+ subject.getPrincipals().remove(client);
+ subject.getPrivateCredentials().remove(krbTicket);
+
+ try {
+ krbTicket.destroy();
+ } catch (DestroyFailedException e) {
+ throw new LoginException();
+ }
+
+ client = null;
+ krbTicket = null;
+
+ return true;
}
}