package org.jacorb.test.bugs.bug1011; import org.jacorb.orb.ORB; import org.omg.CORBA.*; import org.omg.IOP.Codec; import org.omg.IOP.ServiceContext; import org.omg.PortableInterceptor.ForwardRequest; import org.omg.PortableInterceptor.ServerRequestInfo; import org.omg.PortableInterceptor.ServerRequestInterceptor; final public class ServerRequestInterceptorImpl extends LocalObject implements ServerRequestInterceptor { private String name; private ORB orb; private Codec codec; public ServerRequestInterceptorImpl(String string, ORB orb, Codec codec) { this.name = string; this.orb = orb; this.codec = codec; } @Override public void receive_request(ServerRequestInfo ri) throws ForwardRequest { byte[] encodedCredential = null; ServiceContext requestServiceContext = ri.get_request_service_context(CredentialContextId.value); encodedCredential = requestServiceContext.context_data; Any any; try { any = codec.decode_value(encodedCredential, CredentialHelper.type()); } catch (Exception e) { String message = "Unexpected error decoding credential"; throw new INTERNAL(message); } Credential credential = CredentialHelper.extract(any); if (!CORRECT_SECRET.value.equals(credential.secret)) { throw new NO_PERMISSION(0, CompletionStatus.COMPLETED_NO); } } @Override public void receive_request_service_contexts(ServerRequestInfo ri) throws ForwardRequest { } @Override public void send_exception(ServerRequestInfo ri) throws ForwardRequest { } @Override public void send_other(ServerRequestInfo ri) throws ForwardRequest { } @Override public void send_reply(ServerRequestInfo ri) { } @Override public void destroy() { } @Override public String name() { return this.name; } }