[jboss-jira] [JBoss JIRA] (WFLY-9973) WildFly 12 IIOP always requires SSL

Ivan Straka (JIRA) issues at jboss.org
Wed Mar 7 09:28:00 EST 2018


Ivan Straka created WFLY-9973:
---------------------------------

             Summary: WildFly 12 IIOP always requires SSL
                 Key: WFLY-9973
                 URL: https://issues.jboss.org/browse/WFLY-9973
             Project: WildFly
          Issue Type: Bug
          Components: IIOP
    Affects Versions: 12.0.0.Final, 11.0.0.Final
            Reporter: Ivan Straka
            Assignee: Tomasz Adamski


When app deployed to WF 10.1 calls an EJB deployed to WF 12.0 via IIOP, the call will fail because WF 12.0 responds (Location Forward message - GIOP protocol) that It requires SSL even if It does not (to the best of my knowledge).

WF 12.0 standard IIOP subystem configuration:
{code:xml}
        <subsystem xmlns="urn:jboss:domain:iiop-openjdk:2.0">
            <orb socket-binding="iiop"/>
            <initializers security="identity" transactions="spec"/>
            <security server-requires-ssl="false" client-requires-ssl="false"/>
        </subsystem>
{code}

It is observable [here|https://github.com/wildfly/wildfly/blob/10.1.0.Final/iiop-openjdk/src/main/java/org/wildfly/iiop/openjdk/csiv2/CSIV2IORToSocketInfo.java#L142] (client side debugging). ssl.target_requires is true and ssl.target_supports is false.

This does not happen when 
* server side is WF 10.1 - ssl.target_requires is false and ssl.target_supports is true.
* client side is WF 12.0 - it works due to better condition at client side [here|https://github.com/wildfly/wildfly/blob/12.0.0.Final/iiop-openjdk/src/main/java/org/wildfly/iiop/openjdk/csiv2/CSIV2IORToSocketInfo.java#L138] which results to not using SSL

If IIOP subsystem is configured to use iiop ssl socket, It will work - EAP just does not responds correctly if ssl is not configured.

It is possible that I have malconfigured server side EAP and I am missing something.

Deployments used as reproducers are simple.

client-side: simple servlet that calls an EJB
{code:java}
@WebServlet(urlPatterns = "/")
public class ClientServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        try {

            Context ctx = new InitialContext(new Properties());
            Object iiopObj = ctx.lookup("corbaname:iiop:127.0.0.1:3628#Bean");
            BeanHome home = (BeanHome) PortableRemoteObject.narrow(iiopObj, BeanHome.class);
            BeanRemote beanRemote = home.create();
            String string = beanRemote.invoke();
            System.out.println("Bean obtained by IIOP returned: " + string);
            resp.getWriter().append("Bean obtained by IIOP returned: ").append(string).append("\n");
        } catch (Exception e) {
            resp.getWriter().append("Calling bean failed: ");
            e.printStackTrace(resp.getWriter());
            throw new RuntimeException(e);
        }
    }
}
{code}

server-side: simple EJB
{code:java}
public class Bean {
    public String invoke() {
        return "server side invocation: success";
    }
}
{code}





--
This message was sent by Atlassian JIRA
(v7.5.0#75005)


More information about the jboss-jira mailing list