Revision: 2519
Author: seba.wagner
Date: Mon Oct 26 08:09:44 2009
Log: New table and dao for storing a secure hash key for each direct link  
for a room
http://code.google.com/p/openmeetings/source/detail?r=2519

Added:
  /trunk/singlewebapp/src/app/hibernate.cfg.xml
  /trunk/singlewebapp/src/app/org/openmeetings/app/data/basic/dao
   
/trunk/singlewebapp/src/app/org/openmeetings/app/data/basic/dao/SOAPLoginDAO.java
   
/trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/basic/SOAPLogin.hbm.xml
   
/trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/basic/SOAPLogin.java
Modified:
  /trunk/singlewebapp/WebContent/conf/any_hibernate.cfg.xml
  /trunk/singlewebapp/WebContent/conf/mysql_hibernate.cfg.xml
  /trunk/singlewebapp/WebContent/conf/postgres_hibernate.cfg.xml
   
/trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/recording/RoomClient.hbm.xml
   
/trunk/singlewebapp/src/userservice/org/openmeetings/axis/services/UserService.java

=======================================
--- /dev/null
+++ /trunk/singlewebapp/src/app/hibernate.cfg.xml       Mon Oct 26 08:09:44 2009
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate  
Configuration DTD  
3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd";>
+
+<hibernate-configuration>
+  <session-factory>
+    <property  
name="hibernate.connection.driver_class">org.postgresql.Driver</property>
+    <property  
name="hibernate.connection.url">jdbc:postgresql://localhost/xmlcrm</property>
+    <property name="hibernate.connection.username">postgres</property>
+    <property name="hibernate.connection.password">*****</property>
+    <property  
name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
+    <property name="hibernate.show_sql">true</property>
+    <property name="hibernate.hbm2ddl.auto">update</property>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/adresses/Adresses.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/adresses/States.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/Configuration.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/ErrorType.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/ErrorValues.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/Naviglobal.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/Navimain.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/Navisub.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/SOAPLogin.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/Sessiondata.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/calendar/Appointment.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/calendar/AppointmentCategory.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/calendar/AppointmentReminderTyps.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/calendar/MeetingMember.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/domain/Organisation.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/domain/Organisation_Users.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/invitation/Invitations.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/lang/FieldLanguage.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/lang/Fieldlanguagesvalues.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/lang/Fieldvalues.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/logs/ConferenceLog.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/logs/ConferenceLogType.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/recording/ChatvaluesEvent.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/recording/Recording.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/recording/RecordingClient.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/recording/RecordingConversionJob.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/recording/RoomClient.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/recording/RoomRecording.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/recording/RoomStream.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/recording/WhiteBoardEvent.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/rooms/RoomTypes.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/rooms/Rooms.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/rooms/Rooms_Organisation.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/user/Salutations.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/user/Userdata.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/user/Usergroups.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/user/Userlevel.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/user/Users.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/user/Users_Usergroups.hbm.xml"/>
+  </session-factory>
+</hibernate-configuration>
=======================================
--- /dev/null
+++  
/trunk/singlewebapp/src/app/org/openmeetings/app/data/basic/dao/SOAPLoginDAO.java
        
Mon Oct 26 08:09:44 2009
@@ -0,0 +1,103 @@
+package org.openmeetings.app.data.basic.dao;
+
+import java.util.Date;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.hibernate.HibernateException;
+import org.hibernate.Query;
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+import org.openmeetings.app.data.basic.FieldLanguageDaoImpl;
+import org.openmeetings.app.hibernate.beans.basic.SOAPLogin;
+import org.openmeetings.app.hibernate.beans.lang.FieldLanguage;
+import org.openmeetings.app.hibernate.utils.HibernateUtil;
+import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
+import org.openmeetings.utils.crypt.ManageCryptStyle;
+import org.slf4j.LoggerFactory;
+
+public class SOAPLoginDAO {
+
+       private static final Logger log = Logger.getLogger(SOAPLoginDAO.class);
+
+       private SOAPLoginDAO() {
+       }
+
+       private static SOAPLoginDAO instance = null;
+
+       public static synchronized SOAPLoginDAO getInstance() {
+               if (instance == null) {
+                       instance = new SOAPLoginDAO();
+               }
+               return instance;
+       }
+
+       public String addSOAPLogin(String sessionHash, Long room_id) {
+               try {
+
+                       String thistime = "TIME_"+(new Date().getTime());
+
+                       String hash =  
ManageCryptStyle.getInstance().getInstanceOfCrypt().createPassPhrase(thistime);
+
+                       Object idf = HibernateUtil.createSession();
+                       Session session = HibernateUtil.getSession();
+                       Transaction tx = session.beginTransaction();
+
+                       SOAPLogin soapLogin = new SOAPLogin();
+                       soapLogin.setCreated(new Date());
+                       soapLogin.setUsed(false);
+                       soapLogin.setRoom_id(room_id);
+                       soapLogin.setHash(hash);
+                       soapLogin.setSessionHash(sessionHash);
+
+                       Long soapLoginId = (Long) session.save(soapLogin);
+
+                       tx.commit();
+                       HibernateUtil.closeSession(idf);
+
+                       if (soapLoginId > 0) {
+                               return hash;
+                       } else {
+                               throw new Exception("Could not store 
SOAPLogin");
+                       }
+
+               } catch (HibernateException ex) {
+                       log.error("[addSOAPLogin]: ",ex);
+               } catch (Exception ex2) {
+                       log.error("[addSOAPLogin]: ",ex2);
+               }
+               return null;
+       }
+
+       public SOAPLogin getSOAPLoginByHash(String hash) {
+               try {
+                       String hql = "select c from SOAPLogin as sl " +
+                                                       "WHERE c.hash != :hash";
+                       Object idf = HibernateUtil.createSession();
+                       Session session = HibernateUtil.getSession();
+                       Transaction tx = session.beginTransaction();
+                       Query query = session.createQuery(hql);
+                       query.setString("hash", hash);
+                       List<SOAPLogin> sList = query.list();
+                       tx.commit();
+                       HibernateUtil.closeSession(idf);
+
+                       if (sList.size() > 1) {
+                               throw new Exception ("there are more then one 
SOAPLogin with identical  
hash! "+hash);
+                       }
+
+                       if (sList.size() == 1) {
+                               return sList.get(0);
+                       }
+
+
+               } catch (HibernateException ex) {
+                       log.error("[getSOAPLoginByHash]: ",ex);
+               } catch (Exception ex2) {
+                       log.error("[getSOAPLoginByHash]: ",ex2);
+               }
+               return null;
+       }
+
+
+}
=======================================
--- /dev/null
+++  
/trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/basic/SOAPLogin.hbm.xml
         
Mon Oct 26 08:09:44 2009
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD  
3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd";>
+
+<hibernate-mapping>
+  <class table="soaplogin"  
name="org.openmeetings.app.hibernate.beans.basic.SOAPLogin">
+    <id column="soapLoginId" name="soapLoginId">
+      <generator class="increment"/>
+    </id>
+    <property name="hash" type="string" column="hash"/>
+    <property name="room_id" type="long" column="room_id"/>
+    <property name="sessionHash" type="string" column="session_hash"/>
+    <property name="created" type="java.util.Date" column="created"/>
+    <property name="used" type="boolean" column="used"/>
+    <property name="useDate" type="java.util.Date" column="use_date"/>
+  </class>
+</hibernate-mapping>
=======================================
--- /dev/null
+++  
/trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/basic/SOAPLogin.java
    
Mon Oct 26 08:09:44 2009
@@ -0,0 +1,105 @@
+package org.openmeetings.app.hibernate.beans.basic;
+
+import java.util.Date;
+
+/**
+ *
+ * @hibernate.class table="soaplogin"
+ *
+ */
+public class SOAPLogin {
+
+       private long soapLoginId;
+       private String hash;
+       private Long room_id;
+       private String sessionHash;
+       private Date created;
+       private Boolean used;
+       private Date useDate;
+
+       /**
+     *
+     * @hibernate.id
+     *  column="soapLoginId"
+     *  generator-class="increment"
+     */
+       public long getSoapLoginId() {
+               return soapLoginId;
+       }
+       public void setSoapLoginId(long soapLoginId) {
+               this.soapLoginId = soapLoginId;
+       }
+
+       /**
+     * @hibernate.property
+     *  column="hash"
+     *  type="string"
+     */
+       public String getHash() {
+               return hash;
+       }
+       public void setHash(String hash) {
+               this.hash = hash;
+       }
+
+       /**
+     * @hibernate.property
+     *  column="room_id"
+     *  type="long"
+     */
+       public Long getRoom_id() {
+               return room_id;
+       }
+       public void setRoom_id(Long room_id) {
+               this.room_id = room_id;
+       }
+
+       /**
+     * @hibernate.property
+     *  column="session_hash"
+     *  type="string"
+     */
+       public String getSessionHash() {
+               return sessionHash;
+       }
+       public void setSessionHash(String sessionHash) {
+               this.sessionHash = sessionHash;
+       }
+
+       /**
+     * @hibernate.property
+     *  column="created"
+     *  type="java.util.Date"
+     */
+       public Date getCreated() {
+               return created;
+       }
+       public void setCreated(Date created) {
+               this.created = created;
+       }
+
+       /**
+     * @hibernate.property
+     *  column="used"
+     *  type="boolean"
+     */
+       public Boolean getUsed() {
+               return used;
+       }
+       public void setUsed(Boolean used) {
+               this.used = used;
+       }
+
+       /**
+     * @hibernate.property
+     *  column="use_date"
+     *  type="java.util.Date"
+     */
+       public Date getUseDate() {
+               return useDate;
+       }
+       public void setUseDate(Date useDate) {
+               this.useDate = useDate;
+       }
+
+}
=======================================
--- /trunk/singlewebapp/WebContent/conf/any_hibernate.cfg.xml   Mon Oct 12  
03:12:27 2009
+++ /trunk/singlewebapp/WebContent/conf/any_hibernate.cfg.xml   Mon Oct 26  
08:09:44 2009
@@ -51,6 +51,7 @@
      <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/Naviglobal.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/Navimain.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/Navisub.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/SOAPLogin.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/Sessiondata.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/calendar/Appointment.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/calendar/AppointmentCategory.hbm.xml"/>
@@ -58,7 +59,6 @@
      <mapping  
resource="org/openmeetings/app/hibernate/beans/calendar/MeetingMember.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/domain/Organisation.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/domain/Organisation_Users.hbm.xml"/>
-    <mapping  
resource="org/openmeetings/app/hibernate/beans/files/FileExplorerItem.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/invitation/Invitations.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/lang/FieldLanguage.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/lang/Fieldlanguagesvalues.hbm.xml"/>
=======================================
--- /trunk/singlewebapp/WebContent/conf/mysql_hibernate.cfg.xml Mon Oct 12  
03:12:27 2009
+++ /trunk/singlewebapp/WebContent/conf/mysql_hibernate.cfg.xml Mon Oct 26  
08:09:44 2009
@@ -57,6 +57,7 @@
      <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/Naviglobal.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/Navimain.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/Navisub.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/SOAPLogin.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/Sessiondata.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/calendar/Appointment.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/calendar/AppointmentCategory.hbm.xml"/>
@@ -64,7 +65,6 @@
      <mapping  
resource="org/openmeetings/app/hibernate/beans/calendar/MeetingMember.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/domain/Organisation.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/domain/Organisation_Users.hbm.xml"/>
-    <mapping  
resource="org/openmeetings/app/hibernate/beans/files/FileExplorerItem.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/invitation/Invitations.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/lang/FieldLanguage.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/lang/Fieldlanguagesvalues.hbm.xml"/>
=======================================
--- /trunk/singlewebapp/WebContent/conf/postgres_hibernate.cfg.xml      Mon Oct 
 
12 03:12:27 2009
+++ /trunk/singlewebapp/WebContent/conf/postgres_hibernate.cfg.xml      Mon Oct 
 
26 08:09:44 2009
@@ -40,6 +40,7 @@
      <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/Naviglobal.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/Navimain.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/Navisub.hbm.xml"/>
+    <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/SOAPLogin.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/basic/Sessiondata.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/calendar/Appointment.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/calendar/AppointmentCategory.hbm.xml"/>
@@ -47,7 +48,6 @@
      <mapping  
resource="org/openmeetings/app/hibernate/beans/calendar/MeetingMember.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/domain/Organisation.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/domain/Organisation_Users.hbm.xml"/>
-    <mapping  
resource="org/openmeetings/app/hibernate/beans/files/FileExplorerItem.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/invitation/Invitations.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/lang/FieldLanguage.hbm.xml"/>
      <mapping  
resource="org/openmeetings/app/hibernate/beans/lang/Fieldlanguagesvalues.hbm.xml"/>
=======================================
---  
/trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/recording/RoomClient.hbm.xml
    
Mon Oct 12 02:51:43 2009
+++  
/trunk/singlewebapp/src/app/org/openmeetings/app/hibernate/beans/recording/RoomClient.hbm.xml
    
Mon Oct 26 08:09:44 2009
@@ -36,5 +36,6 @@
      <property name="publicSID" type="string" column="public_sid"/>
      <property name="zombieCheckFlag" type="boolean"  
column="zombieCheckFlag"/>
      <property name="canDraw" type="boolean" column="canDraw"/>
+    <property name="isBroadcasting" type="boolean"  
column="isBroadcasting"/>
    </class>
  </hibernate-mapping>
=======================================
---  
/trunk/singlewebapp/src/userservice/org/openmeetings/axis/services/UserService.java
      
Mon Oct 12 02:56:03 2009
+++  
/trunk/singlewebapp/src/userservice/org/openmeetings/axis/services/UserService.java
      
Mon Oct 26 08:09:44 2009
@@ -130,7 +130,7 @@
                                return new Long(-26);
                        }
                } catch (Exception err){
-                       log.error("sendInvitationLink",err);
+                       log.error("setUserObject",err);
                }
                return new Long(-1);
        }
@@ -185,10 +185,51 @@
                                return new Long(-26);
                        }
                } catch (Exception err){
-                       log.error("sendInvitationLink",err);
+                       log.error("setUserObjectWithExternalUser",err);
                }
                return new Long(-1);
        }
+
+       public String setUserObjectAndGenerateRoomHash(String SID, String  
username, String firstname, String lastname,
+                       String profilePictureUrl, String email, Long 
externalUserId, String  
externalUserType,
+                       Long room_id){
+               log.debug("UserService.setUserObject");
+
+               try {
+               Long users_id = 
Sessionmanagement.getInstance().checkSession(SID);
+               Long user_level =  
Usermanagement.getInstance().getUserLevelByID(users_id);
+                       if 
(AuthLevelmanagement.getInstance().checkAdminLevel(user_level)){
+
+                               RemoteSessionObject remoteSessionObject = new  
RemoteSessionObject(username, firstname, lastname,
+                                               profilePictureUrl, email, 
externalUserId, externalUserType);
+
+
+                               log.debug("username "+username);
+                               log.debug("firstname "+firstname);
+                               log.debug("lastname "+lastname);
+                               log.debug("profilePictureUrl 
"+profilePictureUrl);
+                               log.debug("email "+email);
+                               log.debug("externalUserId "+externalUserId);
+                               log.debug("externalUserType " 
+externalUserType);
+
+                               //XStream xStream = new XStream(new 
XppDriver());
+                               XStream xStream = new XStream(new 
DomDriver("UTF-8"));
+                               xStream.setMode(XStream.NO_REFERENCES);
+                               String xmlString = 
xStream.toXML(remoteSessionObject);
+
+                               log.debug("xmlString "+xmlString);
+
+                               
Sessionmanagement.getInstance().updateUserRemoteSession(SID,  
xmlString);
+
+                               return ""+new Long(1);
+                       } else {
+                               return ""+new Long(-26);
+                       }
+               } catch (Exception err){
+                       log.error("setUserObjectWithAndGenerateRoomHash",err);
+               }
+               return ""+new Long(-1);
+       }

        public Long addUserToOrganisation(String SID, Long user_id, Long  
organisation_id,
                        Long insertedby, String comment) {

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"OpenMeetings developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/openmeetings-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to