Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

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

Closed
cachescrubber opened this issue May 17, 2023 · 1 comment
Closed
Assignees
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants