1 /*2 * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/web/Attic/TKHttpSessionThread.java,v 1.8 2002/01/21 09:59:34 mischa Exp $3 *4 */5 package com.teamkonzept.web;6 7 import com.teamkonzept.lib.*;8 9 /**10 *11 * Die abstrakte Klasse TKHttpSessionThread ist von der abstrakten Klasse 12 * TKHttpThread abgeleitet, welche das Interface Runnable und die run()-Methode 13 * fuer die erzeugung eines Threads implementiert.14 * Da beide Klassen Abstrakt sind, kann keine Instanz von Ihnen erzeugt werden.15 * In der Applikation muss daher eine nichtabstrakte Klasse implementiert werden, 16 * die von TKHttpSessionThread abgeleitet ist (falls eine SessionId in der 17 * Applikation erforderlich ist). TKHttpSessionThread erweitert die Klasse18 * TKHttpThread um die SessionId.19 * @author $Author: mischa $20 * @version $Revision: 1.8 $21 */22 public abstract class TKHttpSessionThread extends TKHttpThread {23 24 // private Object newSession = new Object();25 // private int sessionCount = 0;26 27 /**28 * Konstruktor29 *30 * @param, ein TKHttpIntzerface-Objekt muss uebergeben werden31 */32 public TKHttpSessionThread( TKHttpInterface httpInterface )33 {34 super( httpInterface );35 }36 37 // /**38 // * 1. Die aktuelle SessionId wird geholt, bzw. neu erzeugt39 // * 2. Die SessionId ist ein globaler Parameter und wird in jeder40 // * TKForm benoetigt41 // * 3. Die start()-Methode der Superklasse (TKHttpThread) wird aufgerufen.42 // */ 43 // public void start()44 // {45 // String sessionId = getSessionId();46 // if( checkSessionId( sessionId ) ) {47 // if( sessionId == null ) {48 // sessionId = newSessionId();49 // }50 // params.put( TKForm.PARAM, "SID", sessionId );51 // super.start();52 // }53 // }54 55 // /**56 // * Die SessionId wird aus TKForm gelesen57 // *58 // * @return die SessionId59 // */60 // public String getSessionId()61 // {62 // return params.get( TKForm.PARAM, "SID" );63 // }64 65 66 // /**67 // * Die SessionId wird ueberprueft68 // *69 // * @return boolean70 // */71 // public boolean checkSessionId( String sessionId )72 // {73 // return true;74 // }75 76 // public String newSessionId()77 // {78 // return TKLib.fillInt( Long.toHexString( System.currentTimeMillis() / 1000 ), 8 ).substring(0,8)79 // + TKLib.fillInt( Integer.toHexString( newSession.hashCode() ), 8 ).substring(4,8)80 // + TKLib.fillInt( Integer.toHexString( sessionCount++ ), 4 ).substring(0,4);81 // }82 83 // /**84 // * 1. In dem uebergebenen Template-Objekt wird zusaetzlich 85 // * die sessionId gesetzt.86 // * 2. Die Methode prepTemplate() der Superklasse( TKHttpThread wird aufgerufen)87 // *88 // * @return ein vorpraeperiertes Template.89 // */90 // public TKHTMLTemplate prepTemplate( TKHTMLTemplate t )91 // {92 // //TKHttp.println( "prep session-id ="+params.get( TKForm.PARAM, "SID" ) );93 // t.set( "SID", params.get( TKForm.PARAM, "SID" ) );94 // return super.prepTemplate(t);95 // }96 97 // /**98 // * 1. Die Methode getParamsString der Superklasse (TKHttpThread)wird aufgerufen99 // * 2. Der String der parameter aus der URL wird um die sessionId erweitert100 // *101 // * @return result, Parameter des URL's102 // */103 // public String getParamsString()104 // {105 // String result = super.getParamsString();106 // // %%ANDI: Einfach nach SID zu suchen ist wohl etwas wenig !!!!!107 // if( result.indexOf( "SID" ) < 0 && params.defined( TKForm.PARAM, "SID" ) ) {108 // TKUrlConverter encoder = new TKUrlConverter();109 // String sid = params.get( TKForm.PARAM, "SID" );110 // byte[] encoded = new byte[ encoder.minByteSize( sid.length() ) ];111 // result += "&TK_PAR[SID]=" + new String( encoded, 0, 0, encoder.charsToBytes( sid.toCharArray(), encoded, 0, sid.length(), 0 ) );112 // }113 // return result;114 // }115 }116 117