[jboss-jira] [JBoss JIRA] (WFLY-13459) Remote Naming bind / rebind / unbind / rename / createSubcontext / destroySubcontext does not throw exception back to client
Cheng Fang (Jira)
issues at jboss.org
Tue May 12 16:09:26 EDT 2020
[ https://issues.redhat.com/browse/WFLY-13459?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14094257#comment-14094257 ]
Cheng Fang commented on WFLY-13459:
-----------------------------------
This requirement is in EE Platform spec: EE.5.3.4 Java EE Product Provider’s Responsibilities
{quote}
The container must ensure that the application component instances have only read access to their naming context. The container must throw the javax.naming.OperationNotSupportedException from all the methods of the javax.naming.Context interface that modify the environment naming context and its subcontexts.
{quote}
> Remote Naming bind / rebind / unbind / rename / createSubcontext / destroySubcontext does not throw exception back to client
> ----------------------------------------------------------------------------------------------------------------------------
>
> Key: WFLY-13459
> URL: https://issues.redhat.com/browse/WFLY-13459
> Project: WildFly
> Issue Type: Bug
> Components: Naming
> Affects Versions: 19.1.0.Final
> Reporter: Brad Maxwell
> Assignee: Sudeshna Sur
> Priority: Minor
> Attachments: Client.java, server.log.gz
>
>
> The Remote Naming (JNDI) is Read-Only, remote clients cannot bind or rebind objects into it. Only applications running in the same JVM can bind values into JNDI.
> It looks like the server side logs the warning, but the client does not get an exception thrown back, bind and rebind should throw some javax.naming.NamingException since the bind/rebind operations are failing.
> {code}
> public static void main(String[] args) throws Exception {
> Context ctx = getInitialContext("localhost", 8080, "admin", "redhat1!");
> ctx.bind("java:/reproducer", "reproducer");
> ctx.rebind("java:/reproducer", "reproducer");
> }
> public static Context getInitialContext(String host, Integer port, String username, String password) throws NamingException {
> Properties props = new Properties();
> props.put(Context.INITIAL_CONTEXT_FACTORY, "org.wildfly.naming.client.WildFlyInitialContextFactory");
> props.put(Context.PROVIDER_URL, String.format("%s://%s:%d", "remote+http", host, port));
> if(username != null && password != null) {
> props.put(Context.SECURITY_PRINCIPAL, username);
> props.put(Context.SECURITY_CREDENTIALS, password);
> }
> return new InitialContext(props);
> }
> {code}
> {code}
> 13:20:22,804 WARN [org.wildfly.naming] (default task-2) WFNAM00036: Unexpected internal error: java.lang.UnsupportedOperationException: WFLYNAM0043: Naming context is read-only
> at org.jboss.as.naming.WritableServiceBasedNamingStore.requireOwner(WritableServiceBasedNamingStore.java:160)
> at org.jboss.as.naming.WritableServiceBasedNamingStore.bind(WritableServiceBasedNamingStore.java:66)
> at org.jboss.as.naming.NamingContext.bind(NamingContext.java:262)
> at org.jboss.as.naming.NamingContext.bind(NamingContext.java:289)
> at org.wildfly.naming.client.remote.RemoteServerTransport.handleBind(RemoteServerTransport.java:238)
> at org.wildfly.naming.client.remote.RemoteServerTransport$1.handleMessage(RemoteServerTransport.java:126)
> at org.jboss.remoting3.remote.RemoteConnectionChannel.lambda$handleMessageData$3(RemoteConnectionChannel.java:430)
> at org.jboss.remoting3.EndpointImpl$TrackingExecutor.lambda$execute$0(EndpointImpl.java:991)
> at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
> at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
> at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
> at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
> at java.lang.Thread.run(Thread.java:748)
> 13:20:22,813 WARN [org.wildfly.naming] (default task-2) WFNAM00036: Unexpected internal error: java.lang.UnsupportedOperationException: WFLYNAM0043: Naming context is read-only
> at org.jboss.as.naming.WritableServiceBasedNamingStore.requireOwner(WritableServiceBasedNamingStore.java:160)
> at org.jboss.as.naming.WritableServiceBasedNamingStore.rebind(WritableServiceBasedNamingStore.java:108)
> at org.jboss.as.naming.NamingContext.rebind(NamingContext.java:301)
> at org.jboss.as.naming.NamingContext.rebind(NamingContext.java:309)
> at org.wildfly.naming.client.remote.RemoteServerTransport.handleBind(RemoteServerTransport.java:236)
> at org.wildfly.naming.client.remote.RemoteServerTransport$1.handleMessage(RemoteServerTransport.java:129)
> at org.jboss.remoting3.remote.RemoteConnectionChannel.lambda$handleMessageData$3(RemoteConnectionChannel.java:430)
> at org.jboss.remoting3.EndpointImpl$TrackingExecutor.lambda$execute$0(EndpointImpl.java:991)
> at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
> at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
> at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
> at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
> at java.lang.Thread.run(Thread.java:748)
> {code}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
More information about the jboss-jira
mailing list