Skip to content

spring-ws-security has a transitive dependency to pre jakarta javamail #1360

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Closed
cachescrubber opened this issue May 17, 2023 · 1 comment
Closed
Assignees
Labels
type: task A general task
Milestone

Comments

@cachescrubber
Copy link
Contributor

cachescrubber commented May 17, 2023

Using spring-ws-security and spring-boot-starter-mail >= 3.0 causes a java.lang.NoClassDefFoundError: javax/activation/DataContentHandler at runtime.

I could mitigate it by excluding org.apache.geronimo.javamail:geronimo-javamail_1.4_mail:.

    <dependency>
      <groupId>org.springframework.ws</groupId>
      <artifactId>spring-ws-security</artifactId>
      <exclusions>
        <exclusion>
          <groupId>org.apache.geronimo.javamail</groupId>
          <artifactId>geronimo-javamail_1.4_mail</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

fixed with #1358.

[INFO] +- org.springframework.ws:spring-ws-security:jar:4.0.3:compile
[INFO] |  +- org.springframework.security:spring-security-core:jar:6.0.3:compile
[INFO] |  |  \- org.springframework.security:spring-security-crypto:jar:6.0.3:compile
[INFO] |  +- org.apache.wss4j:wss4j-ws-security-dom:jar:2.4.1:compile
[INFO] |  |  +- org.apache.wss4j:wss4j-ws-security-common:jar:2.4.1:compile
[INFO] |  |  |  +- org.opensaml:opensaml-saml-impl:jar:3.4.6:compile
[INFO] |  |  |  |  +- org.opensaml:opensaml-profile-api:jar:3.4.6:compile
[INFO] |  |  |  |  |  \- org.opensaml:opensaml-core:jar:3.4.6:compile
[INFO] |  |  |  |  |     \- io.dropwizard.metrics:metrics-core:jar:4.2.18:compile
[INFO] |  |  |  |  +- org.opensaml:opensaml-saml-api:jar:3.4.6:compile
[INFO] |  |  |  |  |  +- org.opensaml:opensaml-xmlsec-api:jar:3.4.6:compile
[INFO] |  |  |  |  |  \- org.opensaml:opensaml-soap-api:jar:3.4.6:compile
[INFO] |  |  |  |  +- org.opensaml:opensaml-security-impl:jar:3.4.6:compile
[INFO] |  |  |  |  |  \- org.opensaml:opensaml-security-api:jar:3.4.6:compile
[INFO] |  |  |  |  |     \- org.bouncycastle:bcprov-jdk15on:jar:1.59:compile
[INFO] |  |  |  |  +- org.opensaml:opensaml-xmlsec-impl:jar:3.4.6:compile
[INFO] |  |  |  |  \- net.shibboleth.utilities:java-support:jar:7.5.2:compile
[INFO] |  |  |  +- joda-time:joda-time:jar:2.10.10:compile
[INFO] |  |  |  +- com.google.guava:guava:jar:30.1-jre:compile
[INFO] |  |  |  |  \- com.google.guava:failureaccess:jar:1.0.1:compile
[INFO] |  |  |  +- org.opensaml:opensaml-xacml-impl:jar:3.4.6:compile
[INFO] |  |  |  |  \- org.opensaml:opensaml-xacml-api:jar:3.4.6:compile
[INFO] |  |  |  +- org.opensaml:opensaml-xacml-saml-impl:jar:3.4.6:compile
[INFO] |  |  |  |  \- org.opensaml:opensaml-xacml-saml-api:jar:3.4.6:compile
[INFO] |  |  |  +- org.jasypt:jasypt:jar:1.9.3:compile
[INFO] |  |  |  \- org.apache.geronimo.javamail:geronimo-javamail_1.4_mail:jar:1.8.4:compile
@cachescrubber
Copy link
Contributor Author

I forgot the stack trace

java.lang.NoClassDefFoundError: javax/activation/DataContentHandler

	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012)
	at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
	at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
	at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012)
	at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
	at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
	at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
	at jakarta.activation.MailcapCommandMap.getDataContentHandler(MailcapCommandMap.java:613)
	at jakarta.activation.MailcapCommandMap.createDataContentHandler(MailcapCommandMap.java:573)
	at jakarta.activation.DataHandler.getDataContentHandler(DataHandler.java:591)
	at jakarta.activation.DataHandler.writeTo(DataHandler.java:290)
	at jakarta.mail.internet.MimeUtility.getEncoding(MimeUtility.java:316)
	at jakarta.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1580)
	at jakarta.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2265)
	at jakarta.mail.internet.MimeMessage.saveChanges(MimeMessage.java:2225)
	at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:459)
	at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:323)
	at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:312)
	at de.x.y.customer.vc.oss.service.EmailForwardingService.forward(EmailForwardingService.java:67)
...

@gregturn gregturn self-assigned this May 18, 2023
@gregturn gregturn added this to the 4.0.5 milestone May 19, 2023
kmccarp pushed a commit to kmccarp/spring-projects__spring-ws that referenced this issue Jun 5, 2023
To properly support Jakarta EE, we need to exclude any old JavaMail dependencies.

Resolves spring-projects#1360.
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
type: task A general task
Projects
None yet
Development

No branches or pull requests

2 participants