1 17 package org.apache.servicemix.soap.handlers.security; 18 19 import java.io.IOException ; 20 21 import javax.security.auth.callback.Callback ; 22 import javax.security.auth.callback.CallbackHandler ; 23 import javax.security.auth.callback.UnsupportedCallbackException ; 24 25 import org.apache.ws.security.WSPasswordCallback; 26 27 32 public class BaseSecurityCallbackHandler implements CallbackHandler { 33 34 public void handle(Callback [] callbacks) throws IOException , UnsupportedCallbackException { 35 if (callbacks == null || callbacks.length == 0) { 36 throw new IllegalStateException ("callbacks is null or empty"); 37 } 38 for (int i = 0; i < callbacks.length; i++) { 39 if (callbacks[i] instanceof WSPasswordCallback == false) { 40 throw new UnsupportedCallbackException (callbacks[i]); 41 } 42 processCallback((WSPasswordCallback) callbacks[i]); 43 } 44 } 45 46 protected void processCallback(WSPasswordCallback callback) throws IOException , UnsupportedCallbackException { 47 switch (callback.getUsage()) { 48 case WSPasswordCallback.DECRYPT: 49 processDecrypt(callback); 50 break; 51 case WSPasswordCallback.USERNAME_TOKEN: 52 processUsernameToken(callback); 53 break; 54 case WSPasswordCallback.SIGNATURE: 55 processSignature(callback); 56 break; 57 case WSPasswordCallback.KEY_NAME: 58 processKeyName(callback); 59 break; 60 case WSPasswordCallback.USERNAME_TOKEN_UNKNOWN: 61 processUsernameTokenUnkown(callback); 62 break; 63 default: 64 throw new UnsupportedCallbackException (callback); 65 } 66 } 67 68 75 protected void processDecrypt(WSPasswordCallback callback) throws IOException , UnsupportedCallbackException { 76 throw new UnsupportedCallbackException (callback); 77 } 78 79 83 protected void processUsernameToken(WSPasswordCallback callback) throws IOException , UnsupportedCallbackException { 84 throw new UnsupportedCallbackException (callback); 85 } 86 87 93 protected void processSignature(WSPasswordCallback callback) throws IOException , UnsupportedCallbackException { 94 throw new UnsupportedCallbackException (callback); 95 } 96 97 104 protected void processKeyName(WSPasswordCallback callback) throws IOException , UnsupportedCallbackException { 105 throw new UnsupportedCallbackException (callback); 106 } 107 108 116 protected void processUsernameTokenUnkown(WSPasswordCallback callback) throws IOException , UnsupportedCallbackException { 117 throw new UnsupportedCallbackException (callback); 118 } 119 120 } 121 | Popular Tags |