This commit is contained in:
Peter Hormanns 2013-06-28 16:05:00 +02:00
parent 46bde679fe
commit 1988b1a30c
5 changed files with 45 additions and 12 deletions

View File

@ -1,8 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="hsadmin" transaction-type="RESOURCE_LOCAL"> <persistence-unit name="hsadmin">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> <jta-data-source>java:/comp/env/jdbc/HSAdminDB</jta-data-source>
<non-jta-data-source>java:/comp/env/jdbc/HSAdminDB</non-jta-data-source>
<class>de.hsadmin.core.qserv.QueueTask</class> <class>de.hsadmin.core.qserv.QueueTask</class>
<class>de.hsadmin.mods.cust.Customer</class> <class>de.hsadmin.mods.cust.Customer</class>
<class>de.hsadmin.mods.cust.Contact</class> <class>de.hsadmin.mods.cust.Contact</class>

View File

@ -2,9 +2,11 @@ package de.hsadmin.core.model;
import java.util.Set; import java.util.Set;
import javax.ejb.Stateless; import javax.ejb.LocalBean;
import javax.ejb.Stateful;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext; import javax.persistence.PersistenceContext;
import javax.persistence.PersistenceContextType;
import javax.persistence.Query; import javax.persistence.Query;
import de.hsadmin.core.util.Config; 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.pac.Pac;
import de.hsadmin.mods.user.UnixUser; import de.hsadmin.mods.user.UnixUser;
@Stateless @Stateful(name="LoginSession")
@LocalBean
public class LoginSession implements LoginSessionLocal { public class LoginSession implements LoginSessionLocal {
@PersistenceContext(name="hsadmin") @PersistenceContext(unitName="hsadmin",type=PersistenceContextType.TRANSACTION)
private EntityManager entityManager; private EntityManager entityManager;
private String loginName; private String loginName;
@Override
public UnixUser getLoginUser() { public UnixUser getLoginUser() {
String loginName = getLoginName(); String loginName = getLoginName();
if (loginName != null && loginName.length() == 2) { if (loginName != null && loginName.length() == 2) {
@ -34,6 +38,7 @@ public class LoginSession implements LoginSessionLocal {
return unixUser; return unixUser;
} }
@Override
public String getLoginName() { public String getLoginName() {
if (loginName != null) { if (loginName != null) {
return loginName; return loginName;
@ -41,6 +46,7 @@ public class LoginSession implements LoginSessionLocal {
throw new TechnicalException("no login"); throw new TechnicalException("no login");
} }
@Override
public boolean login(String user, String ticket) throws AuthenticationException { public boolean login(String user, String ticket) throws AuthenticationException {
String ticketUser = TicketValidator.getInstance().validateTicket(ticket); String ticketUser = TicketValidator.getInstance().validateTicket(ticket);
if (user != null && user.equals(ticketUser)) { if (user != null && user.equals(ticketUser)) {

View File

@ -5,12 +5,14 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.ejb.LocalBean;
import javax.ejb.Stateless; import javax.ejb.Stateless;
import de.hsadmin.core.qserv.QueueTask; import de.hsadmin.core.qserv.QueueTask;
@Stateless @Stateless
public class QueueManager { @LocalBean
public class QueueManager implements QueueManagerLocal {
private final Map<String, QueueTaskStore> taskStores; private final Map<String, QueueTaskStore> taskStores;
@ -18,6 +20,10 @@ public class QueueManager {
taskStores = new HashMap<String, QueueManager.QueueTaskStore>(); taskStores = new HashMap<String, QueueManager.QueueTaskStore>();
} }
/* (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) { public void enqueue(String hiveName, QueueTask task) {
QueueTaskStore taskStore = taskStores.get(hiveName); QueueTaskStore taskStore = taskStores.get(hiveName);
if (taskStore == null) { if (taskStore == null) {

View File

@ -8,6 +8,8 @@ import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.net.URLConnection; import java.net.URLConnection;
import de.hsadmin.core.util.Config;
public class TicketValidator { public class TicketValidator {
@ -24,12 +26,15 @@ public class TicketValidator {
public static TicketValidator getInstance() { public static TicketValidator getInstance() {
if (instance == null) { if (instance == null) {
instance = new TicketValidator(); instance = new TicketValidator();
Config config = Config.getInstance();
String validateUrl = config.getProperty("proxyValidateUrl");
String serviceUrl = config.getProperty("proxyServiceUrl");
instance.initialize(validateUrl, serviceUrl);
} }
return instance; return instance;
} }
// FIXME wird nicht aufgerufen private void initialize(String validateURL, String serviceURL) {
public void initialize(String validateURL, String serviceURL) {
proxyServiceURL = serviceURL; proxyServiceURL = serviceURL;
proxyValidateURL = validateURL; proxyValidateURL = validateURL;
} }

View File

@ -7,27 +7,44 @@ import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Properties;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import javax.ejb.EJB; 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.AbstractEntity;
import de.hsadmin.core.model.AuthenticationException; import de.hsadmin.core.model.AuthenticationException;
import de.hsadmin.core.model.AuthorisationException; import de.hsadmin.core.model.AuthorisationException;
import de.hsadmin.core.model.HSAdminException; 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.EMailAlias;
import de.hsadmin.mods.email.EMailAliasModuleImpl; import de.hsadmin.mods.email.EMailAliasModuleImpl;
import de.hsadmin.mods.user.UnixUser; import de.hsadmin.mods.user.UnixUser;
public class EMailAliasRemote { public class EMailAliasRemote {
@EJB @EJB
private LoginSession session; private LoginSessionLocal session;
@EJB @EJB
private EMailAliasModuleImpl module; 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<Map<String, Object>> search(String runAsUser, String ticket, public List<Map<String, Object>> search(String runAsUser, String ticket,
Map<String, String> whereParams) throws HSAdminException { Map<String, String> whereParams) throws HSAdminException {
String user = runAsUser; String user = runAsUser;