hsarback/conf/META-INF/dev-context.xml | ●●●●● patch | view | raw | blame | history | |
hsarback/conf/WEB-INF/dev-web.xml | ●●●●● patch | view | raw | blame | history | |
hsarback/conf/jndi.properties | ●●●●● patch | view | raw | blame | history | |
hsarback/src/de/hsadmin/core/model/Transaction.java | ●●●●● patch | view | raw | blame | history | |
hsarback/src/de/hsadmin/core/model/onetier/TicketValidator.java | ●●●●● patch | view | raw | blame | history | |
hsarback/src/de/hsadmin/mods/dom/Domain.java | ●●●●● patch | view | raw | blame | history | |
hsarback/src/de/hsadmin/mods/dom/DomainModuleImpl.java | ●●●●● patch | view | raw | blame | history | |
hsarback/src/de/hsadmin/mods/dom/DomainOption.java | ●●●●● patch | view | raw | blame | history | |
hsarback/src/de/hsadmin/remote/DomainRemote.java | ●●●●● patch | view | raw | blame | history | |
hsarback/test/de/hsadmin/remote/DomainTest.java | ●●●●● patch | view | raw | blame | history | |
hsarback/test/de/hsadmin/remote/RemoteCASHelper.java | ●●●●● patch | view | raw | blame | history |
hsarback/conf/META-INF/dev-context.xml
New file @@ -0,0 +1,33 @@ <Context path="/hsar" reloadable="true" crossContext="true"> <ResourceLink name="jdbc/HSAdminDB" global="jdbc/HSAdminDB" type="javax.sql.DataSource"/> <ResourceLink name="jms/QueueCF" global="jms/QueueCF" type="javax.jms.QueueConnectionFactory"/> <ResourceLink name="jms/hsadminSystem-h99" global="jms/hsadminSystem-h99" type="javax.jms.Queue"/> <ResourceLink name="jms/hsadminSystem-testmail" global="jms/hsadminSystem-testmail" type="javax.jms.Queue"/> <ResourceLink name="jms/hsadminSystem-testdns" global="jms/hsadminSystem-testdns" type="javax.jms.Queue"/> <ResourceLink name="jms/hsadminStatus" global="jms/hsadminStatus" type="javax.jms.Queue"/> </Context> hsarback/conf/WEB-INF/dev-web.xml
New file @@ -0,0 +1,185 @@ <?xml version="1.0"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <listener> <listener-class>de.hsadmin.core.model.onetier.PersistenceManagerContextListener</listener-class> </listener> <servlet> <servlet-name>Queue Status Servlet</servlet-name> <servlet-class>de.hsadmin.core.qserv.QueueStatusReceiverServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>CLI Client Connector</servlet-name> <servlet-class>de.hsadmin.cliClientConnector.CLIClientConnectorServlet</servlet-class> <init-param> <param-name>proxyValidateUrl</param-name> <param-value>TestUmgebung</param-value> </init-param> <init-param> <param-name>proxyServiceUrl</param-name> <param-value>TestUmgebung</param-value> </init-param> <init-param> <param-name>Components</param-name> <param-value>member,pac,user,domain,emailaddress,emailalias,mysqluser,mysqldb,postgresqluser,postgresqldb,q</param-value> </init-param> <init-param> <param-name>ComponentClass_member</param-name> <param-value>de.hsadmin.mods.cust.Customer</param-value> </init-param> <init-param> <param-name>ComponentDescription_member</param-name> <param-value>Mitglieder</param-value> </init-param> <init-param> <param-name>ComponentClass_pac</param-name> <param-value>de.hsadmin.mods.pac.Pac</param-value> </init-param> <init-param> <param-name>ComponentDescription_pac</param-name> <param-value>Pakete</param-value> </init-param> <init-param> <param-name>ComponentClass_user</param-name> <param-value>de.hsadmin.mods.user.UnixUser</param-value> </init-param> <init-param> <param-name>ComponentDescription_user</param-name> <param-value>Benutzer und Postfaecher anlegen</param-value> </init-param> <init-param> <param-name>ComponentClass_domain</param-name> <param-value>de.hsadmin.mods.dom.Domain</param-value> </init-param> <init-param> <param-name>ComponentDescription_domain</param-name> <param-value>Domains aufschalten</param-value> </init-param> <init-param> <param-name>ComponentClass_emailaddress</param-name> <param-value>de.hsadmin.mods.email.EMailAddress</param-value> </init-param> <init-param> <param-name>ComponentDescription_emailaddress</param-name> <param-value>E-Mail Adressen</param-value> </init-param> <init-param> <param-name>ComponentClass_emailalias</param-name> <param-value>de.hsadmin.mods.email.EMailAlias</param-value> </init-param> <init-param> <param-name>ComponentDescription_emailalias</param-name> <param-value>E-Mail Aliases</param-value> </init-param> <init-param> <param-name>ComponentClass_postgresqluser</param-name> <param-value>de.hsadmin.mods.db.PgSqlUser</param-value> </init-param> <init-param> <param-name>ComponentDescription_postgresqluser</param-name> <param-value>PostgreSQL DB-Administrator</param-value> </init-param> <init-param> <param-name>ComponentClass_postgresqldb</param-name> <param-value>de.hsadmin.mods.db.PgSqlDatabase</param-value> </init-param> <init-param> <param-name>ComponentDescription_postgresqldb</param-name> <param-value>PostgreSQL Datenbank</param-value> </init-param> <init-param> <param-name>ComponentClass_mysqluser</param-name> <param-value>de.hsadmin.mods.db.MySqlUser</param-value> </init-param> <init-param> <param-name>ComponentDescription_mysqluser</param-name> <param-value>MySQL DB-Administrator</param-value> </init-param> <init-param> <param-name>ComponentClass_mysqldb</param-name> <param-value>de.hsadmin.mods.db.MySqlDatabase</param-value> </init-param> <init-param> <param-name>ComponentDescription_mysqldb</param-name> <param-value>MySQL Datenbank</param-value> </init-param> <init-param> <param-name>ComponentClass_q</param-name> <param-value>de.hsadmin.core.qserv.QueueTask</param-value> </init-param> <init-param> <param-name>ComponentDescription_q</param-name> <param-value>Offene Aktionen</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>XmlRpcServlet</servlet-name> <servlet-class>org.apache.xmlrpc.webserver.XmlRpcServlet</servlet-class> <init-param> <param-name>enabledForExtensions</param-name> <param-value>true</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>Queue Status Servlet</servlet-name> <url-pattern>/queueStatus</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>CLI Client Connector</servlet-name> <url-pattern>/hsadmin/cli-interface/</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>XmlRpcServlet</servlet-name> <url-pattern>/xmlrpc/*</url-pattern> </servlet-mapping> <resource-ref> <res-ref-name>jdbc/HSAdminDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> <resource-ref> <res-ref-name>jms/QueueCF</res-ref-name> <res-type>javax.jms.QueueConnectionFactory</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref> <resource-ref> <res-ref-name>jms/hsadminSystem-h99</res-ref-name> <res-type>javax.jms.Queue</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref> <resource-ref> <res-ref-name>jms/hsadminSystem-testdns</res-ref-name> <res-type>javax.jms.Queue</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref> <resource-ref> <res-ref-name>jms/hsadminSystem-testmail</res-ref-name> <res-type>javax.jms.Queue</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref> <resource-ref> <res-ref-name>jms/hsadminStatus</res-ref-name> <res-type>javax.jms.Queue</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref> </web-app> hsarback/conf/jndi.properties
@@ -1,5 +1,5 @@ java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory java.naming.provider.url=ssl://agnes.ostwall195.de:61617 java.naming.provider.url=ssl://config-test.ostwall195.de:61617 connectionFactoryNames=QueueCF queue.hsadminSystem-h81=queue.hsadminSystem-h81 queue.hsadminStatus=queue.hsadminStatus hsarback/src/de/hsadmin/core/model/Transaction.java
@@ -160,9 +160,6 @@ * old and new attribute values. */ public void detach(AbstractEntity entity) { // TODO: replace hibernate specific implmentation // org.hibernate.Session hSession = (Session) entityManager.getDelegate(); // hSession.evict(entity); if (entityManager instanceof OpenJPAEntityManager) { OpenJPAEntityManager openjpaEM = (OpenJPAEntityManager) entityManager; openjpaEM.detach(entity); hsarback/src/de/hsadmin/core/model/onetier/TicketValidator.java
@@ -40,7 +40,16 @@ } public String validateTicket(String ticket) throws AuthenticationException { if (proxyServiceURL == null || proxyServiceURL == null) { // for testing purpose only if ("TestUmgebung".equals(proxyServiceURL) && "TestUmgebung".equals(proxyValidateURL)) { if (ticket.startsWith("user:")) { return ticket.substring(5); } else { throw new AuthenticationException("Invalid Ticket: " + ticket); } } // real implementation if (proxyServiceURL == null || proxyValidateURL == null) { log.fatal("TicketValidator is not initialized."); throw new RuntimeException("TicketValidator is not initialized."); } hsarback/src/de/hsadmin/mods/dom/Domain.java
@@ -14,6 +14,7 @@ import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import javax.persistence.SequenceGenerator; @@ -68,7 +69,10 @@ @Column(name = "domain_dns_master", columnDefinition = "character varying(64)") private String dnsMaster; @ManyToMany(cascade = CascadeType.ALL, fetch=FetchType.EAGER, mappedBy="domains") @ManyToMany(cascade={CascadeType.ALL}, fetch=FetchType.EAGER) @JoinTable(name="domain__domain_option", joinColumns={@JoinColumn(name="domain_id", referencedColumnName="domain_id")}, inverseJoinColumns={@JoinColumn(name="domain_option_id", referencedColumnName="domain_option_id")}) private Set<DomainOption> domainOptions; public Domain() { hsarback/src/de/hsadmin/mods/dom/DomainModuleImpl.java
@@ -162,6 +162,8 @@ List<?> list = q.getResultList(); if (list.size() != 1) { throw new HSAdminException("invalid domain option: " + opt.getName()); } else { opt.setId(((DomainOption) list.get(0)).getId()); } } needsWriteAccessOn(existingEntity, "update"); hsarback/src/de/hsadmin/mods/dom/DomainOption.java
@@ -2,17 +2,14 @@ import static javax.persistence.GenerationType.SEQUENCE; import java.util.Set; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EntityManager; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.SequenceGenerator; import javax.persistence.Table; @@ -35,12 +32,9 @@ @Column(name = "domain_option_name", columnDefinition = "character varying(256)", nullable = false) private String name; @ManyToMany(cascade = CascadeType.ALL, fetch=FetchType.LAZY) @JoinTable(name="domain__domain_option", joinColumns={@JoinColumn(name="domain_option_id", referencedColumnName="domain_option_id")}, inverseJoinColumns={@JoinColumn(name="domain_id", referencedColumnName="domain_id")}) private Set<Domain> domains; @ManyToMany(mappedBy="domainOptions", fetch=FetchType.LAZY) private List<Domain> domains; @Override public long id() { return getId(); @@ -78,11 +72,30 @@ this.name = name; } public Set<Domain> getDomains() { @Override public boolean equals(Object obj) { if (obj instanceof DomainOption) { DomainOption opt = (DomainOption) obj; return getName().equals(opt.getName()); } return false; } @Override public int hashCode() { return getName().hashCode(); } @Override public String toString() { return getName(); } public List<Domain> getDomains() { return domains; } public void setDomains(Set<Domain> domains) { public void setDomains(List<Domain> domains) { this.domains = domains; } hsarback/src/de/hsadmin/remote/DomainRemote.java
@@ -4,10 +4,10 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeSet; import de.hsadmin.core.model.AbstractEntity; import de.hsadmin.mods.dom.Domain; @@ -61,7 +61,7 @@ u.setName(user); dom.setUser(u); } Set<DomainOption> domainOptionsSet = new TreeSet<DomainOption>(); Set<DomainOption> domainOptionsSet = new HashSet<DomainOption>(); Object domOptsObj = setParams.get("domainoptions"); if (domOptsObj != null && domOptsObj instanceof Object[]) { Object[] domOptions = (Object[]) domOptsObj; hsarback/test/de/hsadmin/remote/DomainTest.java
@@ -51,7 +51,6 @@ for (Object o : result) { if (o instanceof Map<?, ?>) { Map<?, ?> row = (Map<?, ?>) o; // assertEquals("aaa00", row.get("user")); assertTrue("aaa00".equals(row.get("user")) || "aaa00-admin".equals(row.get("user"))); } else { fail("map expected"); @@ -78,7 +77,6 @@ assertNotNull(execute); fail("exception expected"); } catch (XmlRpcException e) { // System.out.println(e.getMessage()); } } @@ -199,7 +197,6 @@ String grantingTicketURL = cas.getGrantingTicketURL(user); Map<String, Object> setParams = new HashMap<String, Object>(); Map<String, String> whereParams = new HashMap<String, String>(); setParams.put("user", "aaa00"); List<String> optionslist = new ArrayList<String>(); setParams.put("domainoptions", optionslist); whereParams.put("name", "example01.org"); @@ -245,16 +242,16 @@ try { Object execute = client.execute(MODULE + ".search", params); Object[] result = (Object[]) execute; assertEquals(1, result.length); assertEquals(result.length, 1); assertTrue(result[0] instanceof Map<?, ?>); Map<String, ?> domainMap = (Map<String, ?>) result[0]; assertNotNull(domainMap); Object[] optsList = (Object[])domainMap.get("domainoptions"); // if (optsList == null) { // count = 0; // } else { if (optsList == null) { count = 0; } else { count = optsList.length; // } } } catch (XmlRpcException e) { fail(e.getMessage()); } hsarback/test/de/hsadmin/remote/RemoteCASHelper.java
@@ -35,6 +35,9 @@ } public String getGrantingTicketURL(String user) { if ("TestUmgebung".equals(loginURL)) { return "granting:" + user; } String pw = Config.getInstance().getProperty(user + ".passWord", "-"); try { String encodedParams = URLEncoder.encode("username", "UTF-8") @@ -49,6 +52,9 @@ } public String getServiceTicket(String location, String service) { if (location.startsWith("granting:")) { return "user:" + location.substring(9); } try { String encodedParams = URLEncoder.encode("service", "UTF-8") + "=" + URLEncoder.encode(service, "UTF-8");