Author: glandais Date: 2008-02-04 13:54:31 +0000 (Mon, 04 Feb 2008) New Revision: 617 Modified: trunk/simexplorer-is-service/pom.xml trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationServiceImpl.java Log: Send mails in service Modified: trunk/simexplorer-is-service/pom.xml =================================================================== --- trunk/simexplorer-is-service/pom.xml 2008-02-04 13:53:37 UTC (rev 616) +++ trunk/simexplorer-is-service/pom.xml 2008-02-04 13:54:31 UTC (rev 617) @@ -55,5 +55,11 @@ <artifactId>commons-lang</artifactId> <version>2.3</version> </dependency> + <dependency> + <groupId>javax.mail</groupId> + <artifactId>mail</artifactId> + <version>1.4</version> + </dependency> + </dependencies> </project> Modified: trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationServiceImpl.java =================================================================== --- trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationServiceImpl.java 2008-02-04 13:53:37 UTC (rev 616) +++ trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationServiceImpl.java 2008-02-04 13:54:31 UTC (rev 617) @@ -17,6 +17,8 @@ * ##% */ package fr.cemagref.simexplorer.is.service; +import static org.codelutin.i18n.I18n._; + import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; @@ -32,6 +34,12 @@ import javax.ejb.Stateless; import javax.ejb.TransactionAttribute; import javax.ejb.TransactionAttributeType; +import javax.mail.MessagingException; +import javax.mail.Transport; +import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeMessage; +import javax.naming.InitialContext; +import javax.naming.NamingException; import org.jboss.annotation.ejb.RemoteBinding; @@ -55,19 +63,37 @@ private static boolean superAdminCheck = false; - private void sendMail(String login, String mail, String password) { - /* - javax.mail.Session mailSession = (javax.mail.Session) new InitialContext().lookup("java:/Mail"); - javax.mail.Message msg = new MimeMessage(mailSession); - msg.setRecipients(javax.mail.Message.RecipientType.TO, InternetAddress.parse(mail, false)); - msg.setSubject(""); - msg.setContent("", "text/text"); - msg.setHeader("X-Mailer", "JavaMailer"); - msg.setSentDate(new java.util.Date()); - Transport.send(msg); - */ + private String getMailContentWithPassword(String login, String password) { + StringBuffer sb = new StringBuffer(""); + sb.append(_("simexplorer.service.mail.header")).append("\n"); + sb.append(_("simexplorer.service.mail.login")).append(" : ").append( + login).append("\n"); + sb.append(_("simexplorer.service.mail.password")).append(" : ").append( + password).append("\n"); + sb.append(_("simexplorer.service.mail.footer")).append("\n"); + return sb.toString(); } + private void sendMail(String mail, String subject, String content) + throws SimExplorerServiceException { + try { + javax.mail.Session mailSession = (javax.mail.Session) new InitialContext() + .lookup("java:/Mail"); + javax.mail.Message msg = new MimeMessage(mailSession); + msg.setRecipients(javax.mail.Message.RecipientType.TO, + InternetAddress.parse(mail, false)); + msg.setSubject(subject); + msg.setContent(content, "text/plain"); + msg.setHeader("X-Mailer", "JavaMailer"); + msg.setSentDate(new java.util.Date()); + Transport.send(msg); + } catch (MessagingException e) { + throw new SimExplorerServiceException(e); + } catch (NamingException e) { + throw new SimExplorerServiceException(e); + } + } + private String computeHash(String clearString) throws SimExplorerServiceException { MessageDigest messageDigest = null; @@ -152,7 +178,8 @@ if (canAdminGroup(token, id)) { dao.deleteGroup(id); } - throw new SimExplorerServiceException("simexplorer.security.norights"); + throw new SimExplorerServiceException( + _("simexplorer.service.security.norights")); } public void deleteUser(String token, Integer id) @@ -160,7 +187,8 @@ if (canAdminUser(token, id)) { dao.deleteUser(id); } - throw new SimExplorerServiceException("simexplorer.security.norights"); + throw new SimExplorerServiceException( + _("simexplorer.service.security.norights")); } public Group getGroup(String token, Integer id) @@ -168,7 +196,8 @@ if (canAdminGroup(token, id)) { return dao.getGroup(id); } - throw new SimExplorerServiceException("simexplorer.security.norights"); + throw new SimExplorerServiceException( + _("simexplorer.service.security.norights")); } public Group getGroup(String token, String name) @@ -177,7 +206,8 @@ if (canAdminGroup(token, group.getId())) { return group; } - throw new SimExplorerServiceException("simexplorer.security.norights"); + throw new SimExplorerServiceException( + _("simexplorer.service.security.norights")); } public User getUser(String token, Integer id) @@ -185,7 +215,8 @@ if (canAdminUser(token, id)) { return dao.getUser(id); } - throw new SimExplorerServiceException("simexplorer.security.norights"); + throw new SimExplorerServiceException( + _("simexplorer.service.security.norights")); } public User getUser(String token, String login) @@ -194,7 +225,8 @@ if (canAdminUser(token, user.getId())) { return user; } - throw new SimExplorerServiceException("simexplorer.security.norights"); + throw new SimExplorerServiceException( + _("simexplorer.service.security.norights")); } public Group saveGroup(String token, String name) @@ -208,7 +240,8 @@ group = getGroup(token, group.getId()); return group; } - throw new SimExplorerServiceException("simexplorer.security.norights"); + throw new SimExplorerServiceException( + _("simexplorer.service.security.norights")); } public User saveUser(String token, String login, String mail) @@ -219,7 +252,8 @@ user.setLogin(login); user.setMail(mail); String password = generatePassword(); - sendMail(login, mail, password); + sendMail(mail, _("simexplorer.service.mail.subject"), + getMailContentWithPassword(login, password)); String passwordHash = computeHash(password); user.setPasswordHash(passwordHash); user.setAdmin(false); @@ -228,7 +262,8 @@ user = getUser(token, user.getId()); return user; } - throw new SimExplorerServiceException("simexplorer.security.norights"); + throw new SimExplorerServiceException( + _("simexplorer.service.security.norights")); } public Group updateGroup(String token, Group group) @@ -236,7 +271,8 @@ if (canAdminGroup(token, group.getId())) { return dao.updateGroup(group); } - throw new SimExplorerServiceException("simexplorer.security.norights"); + throw new SimExplorerServiceException( + _("simexplorer.service.security.norights")); } public User updateUser(String token, User user) @@ -244,7 +280,8 @@ if (canAdminUser(token, user.getId())) { return dao.updateUser(user); } - throw new SimExplorerServiceException("simexplorer.security.norights"); + throw new SimExplorerServiceException( + _("simexplorer.service.security.norights")); } public User getLoggedUser(String token) throws SimExplorerServiceException { @@ -256,7 +293,8 @@ if (loggedUser != null) { return loggedUser; } - throw new SimExplorerServiceException("simexplorer.security.loggedoff"); + throw new SimExplorerServiceException( + _("simexplorer.service.security.norights")); } private void checkSuperAdmin() throws SimExplorerServiceException { @@ -327,8 +365,10 @@ String passwordHash = computeHash(password); user.setPasswordHash(passwordHash); dao.updateUser(user); + } else { + throw new SimExplorerServiceException( + _("simexplorer.service.security.norights")); } - throw new SimExplorerServiceException("simexplorer.security.norights"); } public Group[] getGroups(String token) {