我已经成功实现了基于表单的身份验证,现在我想获取用户名和密码以从 servlet 初始化 javamail 中的 session 对象。我怎样才能做到这一点?我可以使用 request.getRemoteUser() 方法获取登录用户名,但我不知道如何获取密码。
如果我创建任何 session 对象,例如:
authentication = new PasswordAuthentication(user,password);
Properties props = new Properties();
props.put("mail.host", "localhost");
props.put("mail.debug",true);
props.put("mail.store.protocol", "pop3");
props.put("mail.transport.protocol", "smtp");
Session session = Session.getInstance(props, this);
如果我不将任何密码从 servlet 传递到 PasswordAuthentication 对象,那么如何根据特定的用户名和密码从邮件服务器获取收件箱消息?
最佳答案
Java EE/Servlet API 不允许这样做。您需要从与容器相同的用户密码源中按用户名获取密码,或者将用户密码源外部化,以便容器和您的代码都可以使用它,例如数据库。使用“Realm”关键字检查相关容器的文档。由于您似乎使用 Tomcat(根据您的问题历史记录),here是一个 Tomcat 目标示例,例如查看 JDBCRealm .
关于java - 如何在servlet中获取登录密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2555917/