Login
Вопросик из области Web-Programmierung, Java
5645 просмотров
Перейти к просмотру всей ветки
in Antwort MrSanders 08.09.15 11:52
В ответ на:
А как вы проверили?
А как вы проверили?
В сессии проверяется IP.
public class AuthenticationData
...
public void reset ()
{
...
if (Current- -Context.getC_local_ip() != null )
localIP = Current- -Context.getC_local_ip();
else
localIP = "";
}
public class LogonPanel
locUser = User.logon(m_efUserID.getText(), strEncrypt, strNewEncrypt, curMandant.getId(),
Current- -Context.getC_local_ip());
Ну, и т.д.
В ответ на:
лично я не знаю такой реализации Manager-а, который заставит томкат использовать одну и ту же сесстю для одного IP. Как у вас сконфигурирован Manager в Context-е?
лично я не знаю такой реализации Manager-а, который заставит томкат использовать одну и ту же сесстю для одного IP. Как у вас сконфигурирован Manager в Context-е?
public class Current- -Context
private static GeneralSaveInBufferManager c_saveInBuffer = null;
private Current- -Context()
{
c_saveInBuffer = GeneralSaveInBufferManager.getInstance();
}
public static void putSaveInBuffer- - (General- - obj) throws GeneralException
{
if (c_saveInBuffer == null)
{
c_saveInBuffer = GeneralSaveInBufferManager.getInstance();
}
c_saveInBuffer.addGeneralData- -(obj);
}
public static GeneralSaveInBufferManager getSaveInBufferManager()
{
if (c_saveInBuffer == null)
{
c_saveInBuffer = GeneralSaveInBufferManager.getInstance();
}
return (c_saveInBuffer);
}
public static String getC_local_ip() {
return c_local_ip;
}
public static void setC_local_ip(String c_local_ip) {
Current- -Context.c_local_ip = c_local_ip;
}
В ответ на:
Покажите код сервлета, который вызывается когда пользователь логинится. До логина апплет обращается к сервлету?
Покажите код сервлета, который вызывается когда пользователь логинится. До логина апплет обращается к сервлету?
public synchronized InputStream sendRequest(Serializable obj) throws Throwable
{
showInfo("Open connection to servlet: " + m_servlet.toString());
m_connection = m_servlet.openConnection();
// Prepare for both input and output
m_connection.setDoInput(true);
m_connection.setDoOutput(true);
// Turn off caching
m_connection.setUseCaches(false);
// Set the content type to be java-internal/classname
m_connection.setRequestProperty("Content-Type",
"java-internal/" + obj.getClass().getName());
// Write the serialized - - as post data
- -OutputStream out = new - -OutputStream(m_connection.getOutputStream());
out.write- -(obj);
out.flush();
out.close();
return m_connection.getInputStream();
}
public void prepareCommunicationAdapter() throws GeneralException
{
super.prepareCommunicationAdapter();
// set mappings for used client personalities dependent on current communication
if (ndController.isServletCommunication())
{
GeneralServerAdapter_Servlet.setDefaultServletClass(ndServlet.class);
MessageProcessingServerAdapter_Servlet msgProcessingServletAdapter = new MessageProcessingServerAdapter_Servlet();
ndDate.setServerForClass(ndDate.class, new ndDateServerAdapter_Servlet());
DccAccount.setServerForClass(DccAccount.class, new DccAccountServerAdapter_Servlet());
Settlement.setServerForClass(Settlement.class, new SettlementServerAdapter_Servlet());
DreCatiSettlement.setServerForClass(DreCatiSettlement.class, new DreCatiSettlementServerAdapter_Servlet());
DreCatiCurrencyManager.setServerForClass(DreCatiCurrencyManager.class, new DreCatiCurrencyManagerServerAdapter_Servlet());
DreCatiAccount.setServerForClass(DreCatiAccount.class, new DreCatiAccountServerAdapter_Servlet());
DreCatiAccount.setServerForClass(DreCatiTrancheControl.class, new DreCatiTrancheControlServerAdapter_Servlet());
DiAccount.setServerForClass(DiAccount.class, new DiAccountServerAdapter_Servlet());
ndAcknowledgement.setServerForClass(ndAcknowledgement.class, new AcknowledgementServerAdapter_Servlet());
ApplParameter.setServerForClass(ApplParameter.class, new ApplParameterServerAdapter_Servlet());
ClientApplParameter.setServerForClass(ClientApplParameter.class, new ClientApplParameterServerAdapter_Servlet());
ClientBackendParameter.setServerForClass(ClientBackendParameter.class, new ClientBackendParameterServerAdapter_Servlet());
Authentication.setServerForClass(Authentication.class, new AuthenticationServerAdapter_Servlet());
BackendAccess.setServerForClass(BackendAccess.class, new BackendAccessServerAdapter_Servlet());
Branch.setServerForClass(Branch.class, new BranchServerAdapter_Servlet());
Currency.setServerForClass(Currency.class, new CurrencyServerAdapter_Servlet());
CurrentState.setServerForClass(CurrentState.class, msgProcessingServletAdapter);
Customer.setServerForClass(Customer.class, new CustomerServerAdapter_Servlet());
DataManager.setServerForClass(DataManager.class, new DataManagerServerAdapter_Servlet());
EventLog.setServerForClass(EventLog.class, new EventLogServerAdapter_Servlet());
dccEventLog.setServerForClass(dccEventLog.class, new dccEventLogServerAdapter_Servlet());
History.setServerForClass(History.class, new HistoryServerAdapter_Servlet());
Holiday.setServerForClass(Holiday.class, new HolidayServerAdapter_Servlet());
InRoutingConfig.setServerForClass(InRoutingConfig.class, new InRoutingConfigServerAdapter_Servlet());
InvalidPassword.setServerForClass(InvalidPassword.class, new InvalidPasswordServerAdapter_Servlet());
Language.setServerForClass(Language.class, new LanguageServerAdapter_Servlet());
LocalUser.setServerForClass(LocalUser.class, new UserServerAdapter_Servlet());
Log.setServerForClass(Log.class, new LogServerAdapter_Servlet());
Mandant.setServerForClass(Mandant.class, new MandantServerAdapter_Servlet());
ndMandant.setServerForClass(ndMandant.class, new MandantServerAdapter_Servlet());
Message.setServerForClass(Message.class, new MessageServerAdapter_Servlet());
ndMessage.setServerForClass(ndMessage.class, new ndMessageServerAdapter_Servlet());
MessagePrefix.setServerForClass(MessagePrefix.class, new MessagePrefixServerAdapter_Servlet());
MissingState.setServerForClass(MissingState.class, msgProcessingServletAdapter);
MsgAccess.setServerForClass(MsgAccess.class, new MsgAccessServerAdapter_Servlet());
ndProcess- -.setServerForClass(ndProcess- -.class, new ndProcessServerAdapter_Servlet());
ProcessedState.setServerForClass(ProcessedState.class, msgProcessingServletAdapter);
Program.setServerForClass(Program.class, new ProgramServerAdapter_Servlet());
Reconciliation.setServerForClass(Reconciliation.class, new ReconciliationServerAdapter_Servlet());
Queue.setServerForClass(Queue.class, new QueueServerAdapter_Servlet());
SystemParameter.setServerForClass(SystemParameter.class, new SystemParameterServerAdapter_Servlet());
ndTargetApplication.setServerForClass(ndTargetApplication.class, new ndTargetApplicationServerAdapter_Servlet());
TextHandler.setServerForClass(TextHandler.class, new TextHandlerServerAdapter_Servlet());
TextResourceBundle.setServerForClass(TextResourceBundle.class, new TextHandlerServerAdapter_Servlet());
User.setServerForClass(User.class, new UserServerAdapter_Servlet());
UserGroup.setServerForClass(UserGroup.class, new UserGroupServerAdapter_Servlet());
ConcHistory.setServerForClass(ConcHistory.class, new ConcHistoryServerAdapter_Servlet());
Country.setServerForClass(Country.class, new CountryServerAdapter_Servlet());
SysRouteDelete.setServerForClass(SysRouteDelete.class, new SysRouteDeleteServerAdapter_Servlet());
Statistics.setServerForClass(Statistics.class, new StatisticsServerAdapter_Servlet());
Department.setServerForClass(Department.class, new DepartmentServerAdapter_Servlet());
OutsourcingControl.setServerForClass(OutsourcingControl.class, new OutsourcingControlServerAdapter_Servlet());
ndPricingRemittance.setServerForClass(ndPricingRemittance.class, new ndPricingRemittanceServerAdapter_Servlet());
Pricing.setServerForClass(Pricing.class, new PricingServerAdapter_Servlet());
AccountLength.setServerForClass(AccountLength.class, new AccountLengthServerAdapter_Servlet());
ReorganisationDB.setServerForClass(ReorganisationDB.class, new ReorganisationDBServerAdapter_Servlet());
IntdualcAccount.setServerForClass(IntdualcAccount.class, new IntdualcAccountServerAdapter_Servlet());
IntdualcSettlement.setServerForClass(IntdualcSettlement.class, new IntdualcSettlementServerAdapter_Servlet());
DiSettlement.setServerForClass(DiSettlement.class, new DiSettlementServerAdapter_Servlet());
OrgaDb.setServerForClass(OrgaDb.class, new OrgaDbServerAdapter_Servlet());
}
else ...
Придется опять постить большой кусок текста, который вызовет у Вас недобрые чуйства

public static void setGeneralParameters(J- - - -)
{
String temp;
// set product logo name if available
if ((temp = - -.getParameter("productLogo")) != null)
{
GeneralServerAdapter.setProductLogoForLogonPanel(temp);
Trace.traceInfo("productLogo:"
+ temp);
}
// set client name if available
if ((temp = - -.getParameter("productName")) != null)
{
GeneralServerAdapter.setProductNameForLogonPanel(temp);
Trace.traceInfo("productName:"
+ temp);
}
// trace on/off?
if ((temp = - -.getParameter("Trace")) != null)
Trace.setTraceLevel(Integer.parseInt(temp));
// Security: Is the connection over HTTPS?
if ((temp = - -.getParameter("Security")) != null)
{
GeneralServerAdapter.setSecurityLevel(Integer.parseInt(temp));
Trace.traceInfo("Security level:"
+ temp);
}
// get the https-Port of the server:
if ((temp = - -.getParameter("httpsPort")) != null)
{
GeneralServerAdapter.setSecurityPort(Integer.parseInt(temp));
Trace.traceInfo("https port:"
+ temp);
}
// get the http-Port of the server:
if ((temp = - -.getParameter("httpPort")) != null)
{
GeneralServerAdapter.setHttpPort(Integer.parseInt(temp));
Trace.traceInfo("http port:"
+ temp);
}
if ((temp = - -.getParameter("WriteOutfile")) != null)
{
if (Integer.parseInt(temp) > 0)
{
GeneralBasePanel.setAllowWriteToOutfile(true);
Trace.traceInfo("Write to outfile enabled.");
}
}
// get the http-Port of the server:
if ((temp = - -.getParameter("rmiPort")) != null)
{
GeneralServerAdapter.setRMIPort(Integer.parseInt(temp));
Trace.traceInfo("rmi port:"
+ temp);
}
// get the location of the server
if ((temp = - -.getParameter("HostName")) != null)
{
// if there is a port number in the hostname:
// dismember it and set the separate properties:
int indexOfColon = temp.indexOf(':');
if (indexOfColon >= 0)
{
int port = 0;
if (indexOfColon + 1 < temp.length())
{
port = Integer.parseInt(temp.substring(indexOfColon + 1));
}
// only set the normal http-Port if it isn't set wit "httpPort":
if (GeneralServerAdapter.getHttpPort() <= 0)
{
GeneralServerAdapter.setHttpPort(port);
GeneralServerAdapter.setRMIPort(port);
}
if (indexOfColon > 0)
{
temp = temp.substring(0, indexOfColon);
}
else
{
temp = "";
}
}
GeneralServerAdapter.setHostName(temp);
}
//get the prefix of the servername
if ((temp = - -.getParameter("Product")) != null)
{
GeneralServerAdapter.setProduct(temp);
String stringInstanceNr;
if ((stringInstanceNr = - -.getParameter("Instance")) != null) {
temp = temp + "_" + stringInstanceNr;
}
// this is client side so we can set it globally
GeneralServerAdapter.setGlobalServerNamePrefix(temp + ".");
}
if ((temp = - -.getParameter("Servlet")) != null)
{
c_fServlet = !(temp.equals("0"));
}
//gets the state for the polling mechanism, the default value is true (enabled)
if ((temp = - -.getParameter("Polling")) != null)
{
try
{
c_iPollingOn = (new Integer(temp)).intValue();
}
catch (Exception e)
{
Trace.traceInfo("Error: The defined polling delay is not of type integer !");
c_iPollingOn = 0;
}
}
//is the AccessControl enabled, the default is true!
if ((temp = - -.getParameter("AccessControl")) != null)
{
c_fAccessControllOn = !(temp.equals("0"));
}
//new for JRun 3.1
if ((temp = - -.getParameter("WebApplication")) != null)
GeneralServerAdapter.setWebApplicationMapping(temp);
// Get the ip from the calling client or local host (dev-enviroment)
String ip = "";
// Get IP A: First try over the network interfaces
try
{
Enumeration <NetworkInterface> n = NetworkInterface.getNetworkInterfaces();
outmost:
for (; n.hasMoreElements();)
{
NetworkInterface e = n.nextElement();
Enumeration<InetAddress> a = e.getInetAddresses();
for (; a.hasMoreElements();)
{
InetAddress addr = a.nextElement();
// Anzeige über Messagedialog für Debugging in Citrix-Umgebung (dort ist keine Java-Konsole aktiv)
//JOptionPane.showMessageDialog(null, "HostAddress: " +addr.getHostAddress() + " Hostname: " + addr.getHostName() + " CanonicalHostName: " +addr.getCanonicalHostName());
if (addr instanceof Inet6Address)
{
Trace.traceInfo("Found IP6 Address (IP: " + addr.getHostAddress() + "). Check it...");
// Anzeige über Messagedialog für Debugging in Citrix-Umgebung (dort ist keine Java-Konsole aktiv)
//JOptionPane.showMessageDialog(null, "Found IP6 Address (IP: " + addr.getHostAddress() + "). Check it...");
if (addr.isSiteLocalAddress())
{
Trace.traceInfo("IP6 Address (IP: " + addr.getHostAddress() + ") is a site local address. Search forward...");
// Anzeige über Messagedialog für Debugging in Citrix-Umgebung (dort ist keine Java-Konsole aktiv)
//JOptionPane.showMessageDialog(null, "IP6 Address (IP: " + addr.getHostAddress() + ") is a site local address. Search forward...");
}
else if (addr.isLoopbackAddress())
{
Trace.traceInfo("IP6 Address (IP: " + addr.getHostAddress() + ") is a loopback address. Search forward...");
// Anzeige über Messagedialog für Debugging in Citrix-Umgebung (dort ist keine Java-Konsole aktiv)
//JOptionPane.showMessageDialog(null, "IP6 Address (IP: " + addr.getHostAddress() + ") is a loopback address. Search forward...");
}
else if (addr.isLinkLocalAddress())
{
Trace.traceInfo("IP6 Address (IP: " + addr.getHostAddress() + ") is a link local address. Search forward...");
// Anzeige über Messagedialog für Debugging in Citrix-Umgebung (dort ist keine Java-Konsole aktiv)
//JOptionPane.showMessageDialog(null, "IP6 Address (IP: " + addr.getHostAddress() + ") is a link local address. Search forward...");
}
else
{
Trace.traceInfo("IP6 Address (IP: " + addr.getHostAddress() + " Host: " + addr.getHostName() + ") detected.");
// Anzeige über Messagedialog für Debugging in Citrix-Umgebung (dort ist keine Java-Konsole aktiv)
//JOptionPane.showMessageDialog(null, "IP6 Address (IP: " + addr.getHostAddress() + " Host: " + addr.getHostName() + ") detected.");
ip = addr.getHostAddress();
break outmost;
}
}
if (addr instanceof Inet4Address)
{
Trace.traceInfo("Found IP4 Address (IP: " + addr.getHostAddress() + "). Check it...");
// Anzeige über Messagedialog für Debugging in Citrix-Umgebung (dort ist keine Java-Konsole aktiv)
//JOptionPane.showMessageDialog(null, "Found IP4 Address (IP: " + addr.getHostAddress() + "). Check it...");
if (addr.isSiteLocalAddress())
{
Trace.traceInfo("IP4 Address (IP: " + addr.getHostAddress() + ") is a site local address. Search forward...");
// Anzeige über Messagedialog für Debugging in Citrix-Umgebung (dort ist keine Java-Konsole aktiv)
//JOptionPane.showMessageDialog(null, "IP4 Address (IP: " + addr.getHostAddress() + ") is a site local address. Search forward...");
}
else if (addr.isLoopbackAddress())
{
Trace.traceInfo("IP4 Address (IP: " + addr.getHostAddress() + ") is a loopback address. Search forward...");
// Anzeige über Messagedialog für Debugging in Citrix-Umgebung (dort ist keine Java-Konsole aktiv)
//JOptionPane.showMessageDialog(null, "IP4 Address (IP: " + addr.getHostAddress() + ") is a loopback address. Search forward...");
}
else if (addr.isLinkLocalAddress())
{
Trace.traceInfo("IP4 Address (IP: " + addr.getHostAddress() + ") is a link local address. Search forward...");
// Anzeige über Messagedialog für Debugging in Citrix-Umgebung (dort ist keine Java-Konsole aktiv)
//JOptionPane.showMessageDialog(null, "IP4 Address (IP: " + addr.getHostAddress() + ") is a link local address. Search forward...");
}
else
{
Trace.traceInfo("IP4 Address (IP: " + addr.getHostAddress() + " Host: " + addr.getHostName() + ") detected.");
// Anzeige über Messagedialog für Debugging in Citrix-Umgebung (dort ist keine Java-Konsole aktiv)
//JOptionPane.showMessageDialog(null, "IP4 Address (IP: " + addr.getHostAddress() + " Host: " + addr.getHostName() + ") detected.");
ip = addr.getHostAddress();
break outmost;
}
}
}
}
} catch (SocketException e) {
Trace.traceException(e);
Trace.traceStack();
}
// Get IP B: Second try over Socket
if ( ip.isEmpty() )
{
Socket socket = null;
int port = 0;
if(- -.getDocumentBase().getPort()!=-1)
{
port = - -.getDocumentBase().getPort();
}
else
{
port = 80;
}
try
{
socket = new Socket(- -.getDocumentBase().getHost(), port);
if (socket != null)
{
ip = socket.getLocalAddress().getHostAddress();
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
// Check ip - is loopback ip?
if ( ip.isEmpty() || "127.0.0.1".equals(ip) )
{
Trace.traceInfo("Cannot determine local IP address !");
ip = "0.0.0.0";
Trace.traceInfo("Use default ip: " + ip );
}
Current- -Context.setC_local_ip(ip);
// now we have to define the mapping between some client personality classes and their
// corresponding adapter classes (the ones which are used in this base class)
if (isServletCommunication())
{
Trace.traceInfo("Use Servlet Communication ...");
Authentication.setServerForClass(Authentication.class, new AuthenticationServerAdapter_Servlet());
}
else
{
Trace.traceInfo("Use RMI Communication ...");
Authentication.setServerForClass(Authentication.class, new AuthenticationServerAdapter_RMI());
}
if ((temp = - -.getParameter("DefaultTimeZone")) != null)
GeneralServerAdapter.setDefaultTimeZone(temp);
if ((temp = - -.getParameter("ShellTimezone")) != null)
{
CurrentDateSupport.setTimeSupport(temp);
}
Trace.traceInfo("set param ShellTimezone: "
+ CurrentDateSupport.getTimeSupport());
}
Эй, фуфло, готовься к шмону, ты на стрём поставлен у ворот...
Присоединяйтесь: https://t.me/kudy_vadis