<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    
    <p id="yui_3_16_0_1_1447861079041_124735" style="margin: 0px;
      padding: 0px; display: block; color: rgb(0, 0, 0); font-family:
      HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida
      Grande', sans-serif; font-size: 13px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: auto; text-align: start;
      text-indent: 0px; text-transform: none; white-space: normal;
      widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span>Hi
        Ataraxus,</span></p>
    <p id="yui_3_16_0_1_1447861079041_124740" style="margin: 0px;
      padding: 0px; display: block; color: rgb(0, 0, 0); font-family:
      HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida
      Grande', sans-serif; font-size: 13px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: auto; text-align: start;
      text-indent: 0px; text-transform: none; white-space: normal;
      widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span><br>
      </span></p>
    <p id="yui_3_16_0_1_1447861079041_124741" dir="ltr" data-setdir="false" style="margin: 0px; padding: 0px; text-align:
      start; display: block; color: rgb(0, 0, 0); font-family:
      HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida
      Grande', sans-serif; font-size: 13px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: auto; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 1;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span id="yui_3_16_0_1_1447861079041_124783">I think the way to solve
        this is 'tapping in' to the Wildfly module system. You need to
        add a module.xml to your provider jar under
        src/main/resources/modules/some/module/name/module.xml and
        include a reference to the java mail api there. That way you can
        tell Wildfly to include that on the classpath when it's loading
        your provider classes.<br>
      </span></p>
    <p dir="ltr" data-setdir="false" style="margin: 0px; padding: 0px;
      text-align: start; display: block; color: rgb(0, 0, 0);
      font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial,
      'Lucida Grande', sans-serif; font-size: 13px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: auto; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 1;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span id="yui_3_16_0_1_1447861079041_124783"><br>
        I'm sorry, but I'm not sure how exactly this works in detail
        with path names and module.xml contents. You can look at the
        keycloak sources for module.xml examples, read the Wildfly
        module system documentation or maybe someone else on the mailing
        list can answer you in more detail. Good luck!<br>
        <br>
      </span></p>
    <br style="color: rgb(0, 0, 0); font-family: HelveticaNeue,
      'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
      font-size: 13px; font-style: normal; font-variant: normal;
      font-weight: normal; letter-spacing: normal; line-height: normal;
      orphans: auto; text-align: start; text-indent: 0px;
      text-transform: none; white-space: normal; widows: 1;
      word-spacing: 0px; -webkit-text-stroke-width: 0px;">
    <blockquote id="yui_3_16_0_1_1447861079041_124682" style="margin:
      5px 1em 1em 5px; display: block; color: rgb(0, 0, 0); font-family:
      HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida
      Grande', sans-serif; font-size: 13px; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: auto; text-align: start;
      text-indent: 0px; text-transform: none; white-space: normal;
      widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;
      border-left-width: 2px; border-left-style: solid;
      border-left-color: rgb(16, 16, 255); padding-left: 5px;">
      <div id="yui_3_16_0_1_1447861079041_124681" style="font-family:
        HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida
        Grande', sans-serif; font-size: 13px;">
        <div id="yui_3_16_0_1_1447861079041_124680" style="font-family:
          HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida
          Grande', sans-serif; font-size: 16px;">
          <div dir="ltr" id="yui_3_16_0_1_1447861079041_124679" style="text-align: start;">
            <hr id="yui_3_16_0_1_1447861079041_124808" size="1"><font id="yui_3_16_0_1_1447861079041_124683" face="Arial" size="2"><b><span style="font-weight: bold;">From:</span></b><span class="Apple-converted-space">&nbsp;</span>Ataraxus
              <a class="moz-txt-link-rfc2396E" href="mailto:atx@binaryninja.de">&lt;atx@binaryninja.de&gt;</a><br>
              <b><span style="font-weight: bold;">To:</span></b><span class="Apple-converted-space">&nbsp;</span><a class="moz-txt-link-rfc2396E" href="mailto:ewjmulder@yahoo.com">&quot;ewjmulder@yahoo.com&quot;</a>
              <a class="moz-txt-link-rfc2396E" href="mailto:ewjmulder@yahoo.com">&lt;ewjmulder@yahoo.com&gt;</a><span class="Apple-converted-space">&nbsp;</span><br>
              <b><span style="font-weight: bold;">Sent:</span></b><span class="Apple-converted-space">&nbsp;</span>Monday, November
              23, 2015 1:57 PM<br>
              <b><span style="font-weight: bold;">Subject:</span></b><span class="Apple-converted-space">&nbsp;</span>Re:
              [keycloak-user] Provider Dependencies<br>
            </font></div>
          <div class="y_msg_container" id="yui_3_16_0_1_1447861079041_124684"><br>
            <div id="yiv9319221611">
              <div id="yui_3_16_0_1_1447861079041_124685">Here is the
                code and the stacktrace just in case, maybe there is a
                better way to send email:<span class="Apple-converted-space">&nbsp;</span><br>
                <br>
                private void send(UserModel user,
                AuthenticationFlowContext context, String subject,
                String textBody, String htmlBody) throws EmailException
                {<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String address = user.getEmail();<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Map&lt;String, String&gt; config =
                context.getRealm().getSmtpConfig();<br>
                <br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Properties props = new Properties();<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.setProperty(&quot;mail.smtp.host&quot;,
                config.get(&quot;host&quot;));<br>
                <br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boolean auth =
                &quot;true&quot;.equals(config.get(&quot;auth&quot;));<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boolean ssl =
                &quot;true&quot;.equals(config.get(&quot;ssl&quot;));<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boolean starttls =
                &quot;true&quot;.equals(config.get(&quot;starttls&quot;));<br>
                <br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (config.containsKey(&quot;port&quot;)) {<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.setProperty(&quot;mail.smtp.port&quot;,
                config.get(&quot;port&quot;));<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
                <br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (auth) {<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.put(&quot;mail.smtp.auth&quot;, &quot;true&quot;);<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
                <br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ssl) {<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                props.put(&quot;mail.smtp.socketFactory.port&quot;,
                config.get(&quot;port&quot;));<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                props.put(&quot;mail.smtp.socketFactory.class&quot;,
                &quot;javax.net.ssl.SSLSocketFactory&quot;);<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
                <br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (starttls) {<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.put(&quot;mail.smtp.starttls.enable&quot;,
                &quot;true&quot;);<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
                <br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String from = config.get(&quot;from&quot;);<br>
                <br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Session session =
                Session.getInstance(props);<br>
                <br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Multipart multipart = new
                MimeMultipart(&quot;alternative&quot;);<br>
                <br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (textBody != null) {<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MimeBodyPart textPart = new
                MimeBodyPart();<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textPart.setText(textBody, &quot;UTF-8&quot;);<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; multipart.addBodyPart(textPart);<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
                <br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (htmlBody != null) {<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MimeBodyPart htmlPart = new
                MimeBodyPart();<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; htmlPart.setContent(htmlBody,
                &quot;text/html; charset=UTF-8&quot;);<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; multipart.addBodyPart(htmlPart);<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
                <br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Message msg = new MimeMessage(session);<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msg.setFrom(new InternetAddress(from));<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msg.setHeader(&quot;To&quot;, address);<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msg.setSubject(subject);<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msg.setContent(multipart);<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msg.saveChanges();<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msg.setSentDate(new Date());<br>
                <br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Transport transport =
                session.getTransport(&quot;smtp&quot;);<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (auth) {<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; transport.connect(config.get(&quot;user&quot;),
                config.get(&quot;password&quot;));<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; transport.connect();<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; transport.sendMessage(msg, new
                InternetAddress[]{new InternetAddress(address)});<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception e) {<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new EmailException(e);<br>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
                &nbsp;&nbsp;&nbsp; }<br>
                <br>
                connect/auth<br>
                <br>
                JBWEB000309: type JBWEB000066: Exception report<br>
                <br>
                JBWEB000068: message request path:
                /auth/realms/MYAPP/protocol/openid-connect/auth<br>
                <br>
                JBWEB000069: description JBWEB000145: The server
                encountered an internal error that prevented it from
                fulfilling this request.<br>
                <br>
                JBWEB000070: exception<br>
                <br>
                java.lang.RuntimeException: request path:
                /auth/realms/MYAPP/protocol/openid-connect/auth<br>
                &nbsp;&nbsp;&nbsp;
org.keycloak.services.filters.KeycloakSessionServletFilter.doFilter(KeycloakSessionServletFilter.java:75)<br>
                JBWEB000071: root cause<br>
                <br>
                org.jboss.resteasy.spi.UnhandledException:
                java.lang.NoClassDefFoundError: javax/mail/Multipart<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:364)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.core.SynchronousDispatcher.handleException(SynchronousDispatcher.java:232)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.core.SynchronousDispatcher.handleInvokerException(SynchronousDispatcher.java:208)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:556)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:523)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:125)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)<br>
                &nbsp;&nbsp;&nbsp;
                javax.servlet.http.HttpServlet.service(HttpServlet.java:847)<br>
                &nbsp;&nbsp;&nbsp;
org.keycloak.services.filters.KeycloakSessionServletFilter.doFilter(KeycloakSessionServletFilter.java:61)<br>
                JBWEB000071: root cause<br>
                <br>
                java.lang.NoClassDefFoundError: javax/mail/Multipart<br>
                &nbsp;&nbsp;&nbsp;
de.MYAPP.auth.authenticator.MYAPPEmailAuthenticatorFactory.create(MYAPPEmailAuthenticatorFactory.java:27)<br>
                &nbsp;&nbsp;&nbsp;
de.MYAPP.auth.authenticator.MYAPPEmailAuthenticatorFactory.create(MYAPPEmailAuthenticatorFactory.java:19)<br>
                &nbsp;&nbsp;&nbsp;
org.keycloak.authentication.DefaultAuthenticationFlow.processFlow(DefaultAuthenticationFlow.java:124)<br>
                &nbsp;&nbsp;&nbsp;
org.keycloak.authentication.DefaultAuthenticationFlow.processFlow(DefaultAuthenticationFlow.java:97)<br>
                &nbsp;&nbsp;&nbsp;
org.keycloak.authentication.AuthenticationProcessor.authenticate(AuthenticationProcessor.java:650)<br>
                &nbsp;&nbsp;&nbsp;
org.keycloak.protocol.oidc.endpoints.AuthorizationEndpoint.browserAuthentication(AuthorizationEndpoint.java:315)<br>
                &nbsp;&nbsp;&nbsp;
org.keycloak.protocol.oidc.endpoints.AuthorizationEndpoint.buildAuthorizationCodeAuthorizationResponse(AuthorizationEndpoint.java:265)<br>
                &nbsp;&nbsp;&nbsp;
org.keycloak.protocol.oidc.endpoints.AuthorizationEndpoint.build(AuthorizationEndpoint.java:123)<br>
                &nbsp;&nbsp;&nbsp; sun.reflect.NativeMethodAccessorImpl.invoke0(Native
                Method)<br>
                &nbsp;&nbsp;&nbsp;
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)<br>
                &nbsp;&nbsp;&nbsp;
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br>
                &nbsp;&nbsp;&nbsp; java.lang.reflect.Method.invoke(Method.java:606)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:168)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269)<br>
                &nbsp;&nbsp;&nbsp;
                org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.core.ResourceLocator.invokeOnTargetObject(ResourceLocator.java:158)<br>
                &nbsp;&nbsp;&nbsp;
                org.jboss.resteasy.core.ResourceLocator.invoke(ResourceLocator.java:106)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.core.ResourceLocator.invokeOnTargetObject(ResourceLocator.java:153)<br>
                &nbsp;&nbsp;&nbsp;
                org.jboss.resteasy.core.ResourceLocator.invoke(ResourceLocator.java:91)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:541)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:523)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:125)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)<br>
                &nbsp;&nbsp;&nbsp;
                javax.servlet.http.HttpServlet.service(HttpServlet.java:847)<br>
                &nbsp;&nbsp;&nbsp;
org.keycloak.services.filters.KeycloakSessionServletFilter.doFilter(KeycloakSessionServletFilter.java:61)<br>
                JBWEB000071: root cause<br>
                <br>
                java.lang.ClassNotFoundException: javax.mail.Multipart<br>
                &nbsp;&nbsp;&nbsp;
                java.net.URLClassLoader$1.run(URLClassLoader.java:366)<br>
                &nbsp;&nbsp;&nbsp;
                java.net.URLClassLoader$1.run(URLClassLoader.java:355)<br>
                &nbsp;&nbsp;&nbsp; java.security.AccessController.doPrivileged(Native
                Method)<br>
                &nbsp;&nbsp;&nbsp;
                java.net.URLClassLoader.findClass(URLClassLoader.java:354)<br>
                &nbsp;&nbsp;&nbsp;
                java.lang.ClassLoader.loadClass(ClassLoader.java:425)<br>
                &nbsp;&nbsp;&nbsp;
                java.lang.ClassLoader.loadClass(ClassLoader.java:358)<br>
                &nbsp;&nbsp;&nbsp;
de.MYAPP.auth.authenticator.MYAPPEmailAuthenticatorFactory.create(MYAPPEmailAuthenticatorFactory.java:27)<br>
                &nbsp;&nbsp;&nbsp;
de.MYAPP.auth.authenticator.MYAPPEmailAuthenticatorFactory.create(MYAPPEmailAuthenticatorFactory.java:19)<br>
                &nbsp;&nbsp;&nbsp;
org.keycloak.authentication.DefaultAuthenticationFlow.processFlow(DefaultAuthenticationFlow.java:124)<br>
                &nbsp;&nbsp;&nbsp;
org.keycloak.authentication.DefaultAuthenticationFlow.processFlow(DefaultAuthenticationFlow.java:97)<br>
                &nbsp;&nbsp;&nbsp;
org.keycloak.authentication.AuthenticationProcessor.authenticate(AuthenticationProcessor.java:650)<br>
                &nbsp;&nbsp;&nbsp;
org.keycloak.protocol.oidc.endpoints.AuthorizationEndpoint.browserAuthentication(AuthorizationEndpoint.java:315)<br>
                &nbsp;&nbsp;&nbsp;
org.keycloak.protocol.oidc.endpoints.AuthorizationEndpoint.buildAuthorizationCodeAuthorizationResponse(AuthorizationEndpoint.java:265)<br>
                &nbsp;&nbsp;&nbsp;
org.keycloak.protocol.oidc.endpoints.AuthorizationEndpoint.build(AuthorizationEndpoint.java:123)<br>
                &nbsp;&nbsp;&nbsp; sun.reflect.NativeMethodAccessorImpl.invoke0(Native
                Method)<br>
                &nbsp;&nbsp;&nbsp;
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)<br>
                &nbsp;&nbsp;&nbsp;
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br>
                &nbsp;&nbsp;&nbsp; java.lang.reflect.Method.invoke(Method.java:606)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:168)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269)<br>
                &nbsp;&nbsp;&nbsp;
                org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.core.ResourceLocator.invokeOnTargetObject(ResourceLocator.java:158)<br>
                &nbsp;&nbsp;&nbsp;
                org.jboss.resteasy.core.ResourceLocator.invoke(ResourceLocator.java:106)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.core.ResourceLocator.invokeOnTargetObject(ResourceLocator.java:153)<br>
                &nbsp;&nbsp;&nbsp;
                org.jboss.resteasy.core.ResourceLocator.invoke(ResourceLocator.java:91)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:541)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:523)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:125)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)<br>
                &nbsp;&nbsp;&nbsp;
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)<br>
                &nbsp;&nbsp;&nbsp;
                javax.servlet.http.HttpServlet.service(HttpServlet.java:847)<br>
                &nbsp;&nbsp;&nbsp;
org.keycloak.services.filters.KeycloakSessionServletFilter.doFilter(KeycloakSessionServletFilter.java:61)<br>
                <br>
                <div class="yiv9319221611moz-cite-prefix" id="yui_3_16_0_1_1447861079041_124744">Am 23.11.15 um
                  13:32 schrieb Ataraxus:<br>
                </div>
                <blockquote type="cite" id="yui_3_16_0_1_1447861079041_124688" style="margin:
                  1em; display: block;">
                  <pre id="yui_3_16_0_1_1447861079041_124687" style="font-family: 'Courier New'; margin: 1em 0px; display: block; white-space: pre-wrap;">Hey,

I'm writing my custum login provider which works great so far, but i 
stumbled upon a dependency issue:
I wan't to use mail in my authenticator, but when the authenticator gets 
actually loaded I get an class not found exception.
Somehow is java.mail.* not available in the classpath of providers which 
are dropped in the configuration/providers path.
How can i use these dependencies? I could include them into my jar, but 
i guess thats not the &quot;right&quot; way.

Thanks
_______________________________________________
keycloak-user mailing list
<a rel="nofollow" class="yiv9319221611moz-txt-link-abbreviated" ymailto="mailto:keycloak-user@lists.jboss.org" target="_blank" href="mailto:keycloak-user@lists.jboss.org" style="margin: 0px; padding: 0px; text-decoration: underline !important; color: blue; outline: none; cursor: text !important; background: transparent;">keycloak-user@lists.jboss.org</a>
<a rel="nofollow" class="yiv9319221611moz-txt-link-freetext" target="_blank" href="https://lists.jboss.org/mailman/listinfo/keycloak-user" style="margin: 0px; padding: 0px; text-decoration: underline !important; color: blue; outline: none; cursor: text !important; background: transparent;">https://lists.jboss.org/mailman/listinfo/keycloak-user</a>
</pre>
                </blockquote>
                <br>
              </div>
            </div>
            <br>
          </div>
        </div>
      </div>
    </blockquote>
  </body>
</html>