package connector; import org.glassfish.security.common.PrincipalImpl; import javax.resource.spi.work.SecurityContext; import javax.security.auth.callback.CallbackHandler; import javax.security.auth.callback.Callback; import javax.security.auth.Subject; import javax.security.auth.message.callback.CallerPrincipalCallback; import java.util.List; import java.util.ArrayList; /** * To check Unauthenticated SIC with a null principal or null name */ public class UnauthenticatedSecurityContext_NullPrincipalOrName extends SecurityContext { private String principalName; private boolean translationRequired; private boolean nullPrincipal; public UnauthenticatedSecurityContext_NullPrincipalOrName(boolean translationRequired, String principalName, boolean nullPrincipal) { this.translationRequired = translationRequired; this.principalName = principalName; this.nullPrincipal = nullPrincipal; } public void setupSecurityContext(CallbackHandler callbackHandler, Subject subject, Subject subject1) { try { List<Callback> callbacks = new ArrayList<Callback>(); CallerPrincipalCallback cpc; if (nullPrincipal) { PrincipalImpl p = null; cpc = new CallerPrincipalCallback(new Subject(), p); } else { String name = null; cpc = new CallerPrincipalCallback(new Subject(), name); } callbacks.add(cpc); Callback callbackArray[] = new Callback[callbacks.size()]; callbackHandler.handle(callbacks.toArray(callbackArray)); } catch (Exception e) { debug(e.toString()); } } public void debug(String message) { System.out.println("JSR-322 [RA] [UnauthenticatedSecurityContext_NullPrincipalOrName]: " + message); } }