From 1988b1a30c4f05924f78e78c1cc8caaeb27ff281 Mon Sep 17 00:00:00 2001 From: Peter Hormanns Date: Fri, 28 Jun 2013 16:05:00 +0200 Subject: [PATCH] merged --- hsarback/conf/META-INF/persistence.xml | 5 ++-- .../de/hsadmin/core/model/LoginSession.java | 12 +++++++--- .../de/hsadmin/core/model/QueueManager.java | 8 ++++++- .../hsadmin/core/model/TicketValidator.java | 9 ++++++-- .../de/hsadmin/remote/EMailAliasRemote.java | 23 ++++++++++++++++--- 5 files changed, 45 insertions(+), 12 deletions(-) diff --git a/hsarback/conf/META-INF/persistence.xml b/hsarback/conf/META-INF/persistence.xml index 5e0734c..3174504 100644 --- a/hsarback/conf/META-INF/persistence.xml +++ b/hsarback/conf/META-INF/persistence.xml @@ -1,8 +1,7 @@ - - org.apache.openjpa.persistence.PersistenceProviderImpl - java:/comp/env/jdbc/HSAdminDB + + java:/comp/env/jdbc/HSAdminDB de.hsadmin.core.qserv.QueueTask de.hsadmin.mods.cust.Customer de.hsadmin.mods.cust.Contact diff --git a/hsarback/src/de/hsadmin/core/model/LoginSession.java b/hsarback/src/de/hsadmin/core/model/LoginSession.java index 696b3fb..8285d18 100644 --- a/hsarback/src/de/hsadmin/core/model/LoginSession.java +++ b/hsarback/src/de/hsadmin/core/model/LoginSession.java @@ -2,9 +2,11 @@ package de.hsadmin.core.model; import java.util.Set; -import javax.ejb.Stateless; +import javax.ejb.LocalBean; +import javax.ejb.Stateful; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; +import javax.persistence.PersistenceContextType; import javax.persistence.Query; import de.hsadmin.core.util.Config; @@ -12,14 +14,16 @@ import de.hsadmin.mods.cust.Customer; import de.hsadmin.mods.pac.Pac; import de.hsadmin.mods.user.UnixUser; -@Stateless +@Stateful(name="LoginSession") +@LocalBean public class LoginSession implements LoginSessionLocal { - @PersistenceContext(name="hsadmin") + @PersistenceContext(unitName="hsadmin",type=PersistenceContextType.TRANSACTION) private EntityManager entityManager; private String loginName; + @Override public UnixUser getLoginUser() { String loginName = getLoginName(); if (loginName != null && loginName.length() == 2) { @@ -34,6 +38,7 @@ public class LoginSession implements LoginSessionLocal { return unixUser; } + @Override public String getLoginName() { if (loginName != null) { return loginName; @@ -41,6 +46,7 @@ public class LoginSession implements LoginSessionLocal { throw new TechnicalException("no login"); } + @Override public boolean login(String user, String ticket) throws AuthenticationException { String ticketUser = TicketValidator.getInstance().validateTicket(ticket); if (user != null && user.equals(ticketUser)) { diff --git a/hsarback/src/de/hsadmin/core/model/QueueManager.java b/hsarback/src/de/hsadmin/core/model/QueueManager.java index 6f6b726..e140eaa 100644 --- a/hsarback/src/de/hsadmin/core/model/QueueManager.java +++ b/hsarback/src/de/hsadmin/core/model/QueueManager.java @@ -5,12 +5,14 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.ejb.LocalBean; import javax.ejb.Stateless; import de.hsadmin.core.qserv.QueueTask; @Stateless -public class QueueManager { +@LocalBean +public class QueueManager implements QueueManagerLocal { private final Map taskStores; @@ -18,6 +20,10 @@ public class QueueManager { taskStores = new HashMap(); } + /* (non-Javadoc) + * @see de.hsadmin.core.model.QueueManagerLocal#enqueue(java.lang.String, de.hsadmin.core.qserv.QueueTask) + */ + @Override public void enqueue(String hiveName, QueueTask task) { QueueTaskStore taskStore = taskStores.get(hiveName); if (taskStore == null) { diff --git a/hsarback/src/de/hsadmin/core/model/TicketValidator.java b/hsarback/src/de/hsadmin/core/model/TicketValidator.java index b394579..a090ed7 100644 --- a/hsarback/src/de/hsadmin/core/model/TicketValidator.java +++ b/hsarback/src/de/hsadmin/core/model/TicketValidator.java @@ -8,6 +8,8 @@ import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; +import de.hsadmin.core.util.Config; + public class TicketValidator { @@ -24,12 +26,15 @@ public class TicketValidator { public static TicketValidator getInstance() { if (instance == null) { instance = new TicketValidator(); + Config config = Config.getInstance(); + String validateUrl = config.getProperty("proxyValidateUrl"); + String serviceUrl = config.getProperty("proxyServiceUrl"); + instance.initialize(validateUrl, serviceUrl); } return instance; } - // FIXME wird nicht aufgerufen - public void initialize(String validateURL, String serviceURL) { + private void initialize(String validateURL, String serviceURL) { proxyServiceURL = serviceURL; proxyValidateURL = validateURL; } diff --git a/hsarback/src/de/hsadmin/remote/EMailAliasRemote.java b/hsarback/src/de/hsadmin/remote/EMailAliasRemote.java index 34f9788..698f848 100644 --- a/hsarback/src/de/hsadmin/remote/EMailAliasRemote.java +++ b/hsarback/src/de/hsadmin/remote/EMailAliasRemote.java @@ -7,27 +7,44 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Properties; import java.util.StringTokenizer; import javax.ejb.EJB; +import javax.naming.Context; +import javax.naming.InitialContext; +import javax.naming.NamingException; import de.hsadmin.core.model.AbstractEntity; import de.hsadmin.core.model.AuthenticationException; import de.hsadmin.core.model.AuthorisationException; import de.hsadmin.core.model.HSAdminException; -import de.hsadmin.core.model.LoginSession; +import de.hsadmin.core.model.LoginSessionLocal; import de.hsadmin.mods.email.EMailAlias; import de.hsadmin.mods.email.EMailAliasModuleImpl; import de.hsadmin.mods.user.UnixUser; public class EMailAliasRemote { - @EJB - private LoginSession session; + @EJB + private LoginSessionLocal session; @EJB private EMailAliasModuleImpl module; + public EMailAliasRemote() { + Properties props = new Properties(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.core.LocalInitialContextFactory"); + Context ctx = null; + try { + ctx = new InitialContext(props); + session = (LoginSessionLocal) ctx.lookup("LoginSessionLocal"); + module = (EMailAliasModuleImpl) ctx.lookup("EMailAliasModuleLocal"); + } catch (NamingException e) { + e.printStackTrace(); + } + } + public List> search(String runAsUser, String ticket, Map whereParams) throws HSAdminException { String user = runAsUser;