You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by co...@apache.org on 2016/01/08 12:31:34 UTC
svn commit: r1723701 -
/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/KerberosServiceSecurityTokenImpl.java
Author: coheigea
Date: Fri Jan 8 11:31:34 2016
New Revision: 1723701
URL: http://svn.apache.org/viewvc?rev=1723701&view=rev
Log:
Fixing Kerberos issue
Modified:
webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/KerberosServiceSecurityTokenImpl.java
Modified: webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/KerberosServiceSecurityTokenImpl.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/KerberosServiceSecurityTokenImpl.java?rev=1723701&r1=1723700&r2=1723701&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/KerberosServiceSecurityTokenImpl.java (original)
+++ webservices/wss4j/trunk/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/KerberosServiceSecurityTokenImpl.java Fri Jan 8 11:31:34 2016
@@ -55,6 +55,7 @@ public class KerberosServiceSecurityToke
private KerberosTokenDecoder kerberosTokenDecoder;
private Subject subject;
private Principal principal;
+ private byte[] sessionKey;
public KerberosServiceSecurityTokenImpl(WSInboundSecurityContext wsInboundSecurityContext, CallbackHandler callbackHandler,
byte[] binaryContent, String kerberosTokenValueType, String id,
@@ -76,6 +77,9 @@ public class KerberosServiceSecurityToke
}
protected byte[] getTGTSessionKey() throws WSSecurityException {
+ if (sessionKey != null) {
+ return sessionKey;
+ }
try {
KerberosContextAndServiceNameCallback contextAndServiceNameCallback = new KerberosContextAndServiceNameCallback();
callbackHandler.handle(new Callback[]{contextAndServiceNameCallback});
@@ -129,17 +133,15 @@ public class KerberosServiceSecurityToke
Key key = krbServiceCtx.getSessionKey();
if (key != null) {
- return key.getEncoded();
- }
-
- if (kerberosTokenDecoder != null) {
+ sessionKey = key.getEncoded();
+ } else if (kerberosTokenDecoder != null) {
kerberosTokenDecoder.clear();
kerberosTokenDecoder.setToken(binaryContent);
kerberosTokenDecoder.setSubject(subject);
- return kerberosTokenDecoder.getSessionKey();
+ sessionKey = kerberosTokenDecoder.getSessionKey();
}
- return null;
+ return sessionKey;
} catch (LoginException | UnsupportedCallbackException | IOException e) {
throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE, e);
} catch (KerberosTokenDecoderException e) {