在 Java SE 中,使用这样的代码很容易支持身份验证部分:
Session session = session.getInstance(props,new MyAuthenticator());
但在 Java EE 中, session 实例不是由应用程序创建的,而是由应用程序中的应用程序服务器通过 JNDI 注入(inject)提供的。
@Resource(name = "mail/JMsession")
private Session session
这里如何处理身份验证部分? @Resource 注释中的authenticationType 参数怎么样
@Resource(name = "mail/JMsession", authenticationType = AuthenticationType.APPLICATION)
最佳答案
在 Java EE 中,您可以使用 @MailSessionDefinition注释(或 XML 中的等效项)来定义邮件 Session您稍后注入(inject)。
其user
和password
属性是程序化Authenticator 的声明式版本。的PasswordAuthentication .
@MailSessionDefinition
可在 Java EE 7 服务器上使用,例如 GlassFish 4,并且也已在 WildFly 8(以前的 JBoss AS 8)中使用。
关于java - 如何在带有 JavaMail 的 Java EE 应用程序中使用 Authenticator 子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18835450/